iOS Такой 🍏
3.38K subscribers
423 photos
10 videos
2 files
303 links
IT | Подкасты | Apple | iOS Материалы | Swift

Реклама: @new_repository

Тёплый чат: https://t.me/+tzWmsOMTPpFjMzAy

Бусти: boosty.to/dimov_ios
Download Telegram
Полезные iOS-инструменты для дебаггинга

Существует множество инструментов, которые помогут быстро и эффективно диагностировать, а также устранять проблемы. В этой статье подробно рассматриваются нативные и сторонние инструменты, доступные для отладки iOS-приложений, как использовать эти инструменты для диагностики и устранения распространенных проблем. Со всеми инструментами по отлавливанию ошибок советую разобраться в данной статье.

#digest #дебаггинг
👍7🔥21👎1
XCFramework - это новый формат фреймворков, представленный Apple в Xcode 11.0.

Он представляет собой архив, который содержит скомпилированный код и ресурсы для разных платформ (например, iOS, macOS, tvOS и т. д.). XCFramework позволяет упаковывать код и ресурсы в единый файл, который может быть использован на разных платформах без необходимости создания отдельных фреймворков для каждой платформы.

Основная цель XCFramework - облегчить распространение и использование фреймворков для разработчиков, которые создают приложения для разных платформ Apple. Ранее, для каждой платформы требовалось создавать отдельный фреймворк, что могло быть неудобно и затратно по времени. XCFramework позволяет объединить код и ресурсы для всех платформ в один файл, что упрощает его использование и распространение.

Преимущества использования XCFramework включают:

1. Упрощение процесса сборки и распространения: XCFramework позволяет упаковать код и ресурсы для разных платформ в один файл, что упрощает процесс создания и распространения фреймворков.

2. Удобство использования: Разработчики могут использовать XCFramework на разных платформах без необходимости создания и подключения отдельных фреймворков для каждой платформы. Это делает процесс разработки и поддержки приложений для разных платформ более эффективным.

3. Поддержка динамических и статических библиотек: XCFramework поддерживает как динамические, так и статические библиотеки. Это позволяет разработчикам выбирать наиболее подходящий тип библиотеки для своих потребностей.

4. Поддержка биткода: XCFramework поддерживает биткод, что позволяет оптимизировать код при сборке и автоматически адаптироваться к разным платформам.

В целом, XCFramework является удобным и эффективным инструментом для разработчиков, позволяющим упростить создание, распространение и использование фреймворков на разных платформах Apple.

iOS Такой подготовил для вас маленький выпуск о том, как внедрить XCFrameworks к себе в проект.

#digest #доклад
👍9🔥54👎1
Что нового в SwiftUI для iOS 17?

SwiftUI продолжает быстро развиваться, и в этом году мы видим огромное количество улучшений в прокрутке, интересные новые эффекты SF Symbols, продвинутую поддержку шейдеров Metal и многое другое.

Некоторые обновления в этом релизе из числа тех, которые автор предлагал лично. Среди них - добавление шейдеров Metal, улучшение работы Color с Codable, добавление замыкания по завершении для анимаций, которое дает нам возможность анимировать градиенты. Теперь мы ещё можем скруглять углы прямоугольника по своему усмотрению. Только благодаря первой бета-версии автор закрыл как минимум дюжину своих предложений!

- Набор обновлений для ScrollView
- Улучшение прорисовки и анимаций
- Интеграция встроенных покупок (in-app purchases) в SwiftUI
- Новый модификатор inspector()
- Новый модификатор onKeyPress()
- Управление отображением колонок NavigationSplitView в компактных макетах
- Добавление тактильных эффектов с использованием сенсорной обратной связи
- Уведомление пользователя о недоступности контента
- Одновременная заливка и обводка фигур
- Новый API для работы со spring анимациями

Прочие изменения
- Модификатор foregroundColor() теперь считается устаревшим и его заменил новый - foregroundStyle()

- Изменение цветов с использованием градиента будет происходить с анимацией

- Spring анимация теперь является дефолтной в SwiftUI и содержит гораздо больше встроенных параметров, таких как .bouncy и .snappy, а сами анимации теперь создаются с помощью гораздо более простого API

- Появилась возможность скруглять только определенные углы прямоугольника, а не все сразу

- Упрощен синтаксис для заливки и обрезки фигур: .rect, .capsule и т.д.

- При создании табличных представлений вместо ForEach(users, content: TableRow.init) можно писать просто ForEach(users)


#digest #swiftui
👍105🔥2💩1
Всем привет!

Сегодня хотим поделиться с вами интересной темой - реактивное программирование.

Что такое реактивное программирование? Кратко.
Реактивное программирование - это особый подход к разработке программного обеспечения, который направлен на создание эффективных и отзывчивых систем. Он основан на принципах асинхронного и отслеживаемого потока данных между компонентами приложения. Вся архитектура строится вокруг потоков данных, которые могут изменяться и реагировать на события в реальном времени.

iOS Такой подготовил для зрителей доклад по реактивному программированию, где даже новичку будет понятно, что это за подход. Гость - Никита Веремейчик.

В нашем докладе:
- Мы подробно рассмотрим основные принципы реактивного программирования и покажем, каким образом он может быть полезен в разработке современных приложений на основе RxSwift и RxCocoa

- Мы разберемся с понятиями потоков данных, реактивных стримов и операторами, которые позволяют обрабатывать данные эффективно и гибко.

#digest #доклад
👍21🔥83🤮1
Диспетчеризация методов iOS

Диспетчеризацией методов называют процесс поиска адреса инструкций, которые нужно выполнить CPU при вызове определенного метода.

Другими словами, цель диспетчеризации методов состоит в том, чтобы программа сообщала процессору, где он может найти исполняемый код конкретного метода в памяти.

В этой статье будут рассмотрены понятие диспетчеризации, его виды, преимущества и недостатки, а также приведены небольшие задачи для укрепления знаний

#digest #диспетчеризация
👍17🔥73🤡1
UICollectionViewCompositionalLayout

В этой статье вы познакомитесь с UICollectionViewCompositionalLayout и с его помощью создатите UICollectionView с прокручивающимися секциями, а затем еще немного более их кастомизируете. Суть статьи показать как просто с помощью UICollectionViewCompositionalLayout вы можете создавать UICollectionView, которые выглядят именно так как нам необходимо. В статье вы увидите примеры кода, которые будут вам полезны при изучении данной технологии.

NSCollectionLayoutSize: Размеры ширины и высоты относятся к типу NSCollectionLayoutDimension, которые могут быть определены путем установки доли ширины/высоты макета (в процентах по отношению к его контейнеру) или путем установки абсолютных или расчетных размеров.

NSCollectionLayoutItem: Это ячейка нашего макета, которая отображается на экране в зависимости от размера.

NSCollectionLayoutGroup: содержит NSCollectionLayoutItem в горизонтальной, вертикальной или пользовательской формах.

NSCollectionLayoutSection: используется для инициализации секции путем передачи NSCollectionLayoutGroup. Секции в конечном итоге составляют СompositionalLayout.

Sections и items в СompositionalLayout соответствуют Sections и items класического СollectionViewDataSource. Группы, однако, не имеют эквивалента в СollectionViewDataSource и не отображают содержимое в виде элементов / ячеек. Они используются исключительно для описания расположения наших Items в рамках Section.

#digest
👍12🔥5🎉2💩1
Привет, друзья!

Мы рады поделиться с вами последними новостями о нашем канале. На данный момент мы активно работаем над несколькими увлекательными выпусками, которые, мы уверены, будут вам интересны.

- Git. (Командная разработка)
- Тестирование и почему это важнее, чем вы думаете
- Пишем проект с ChatGPT и без
- SwiftUI (продвинутый уровень)
- Английский язык. Эффективные методики обучения.


И, наконец, мы хотели бы провести мок собеседование на нашем канале. Мы пригласили опытного iOS Разработчика/Team Lead, который проведет интересное и познавательное собеседование. Если вы хотите проверить свои знания и навыки, а также получить ценные советы от профессионала, пиши мне @new_repository или ставь + в комментариях.

Мы всегда открыты для ваших предложений и идей. Расскажите нам, что вы хотели бы видеть на нашем канале. Что вас интересует? Какие темы вам было бы интересно изучить? Мы с нетерпением ждем ваших комментариев и предложений.

Спасибо, что остаетесь с нами, и до скорой встречи на нашем канале!

#iOS #разработка #новости
🔥27👍115🤬1
Всем привет! Очередной выпуск! На этот раз читаем и смотрим про Git.

Git - это распределенная система управления версиями, которая позволяет разработчикам эффективно работать с кодом и отслеживать все изменения, вносимые в проект. Он позволяет сохранять историю изменений, создавать ветки для параллельной разработки, объединять изменения, а также откатываться к предыдущим версиям кода.

GitFlow - это методология разработки программного обеспечения, основанная на Git. Она предлагает стратегию ветвления и слияния в Git, которая помогает организовать работу команды разработчиков и упростить процесс слияния кода. GitFlow определяет набор веток, которые используются для разработки новых функций, исправления ошибок и выпуска стабильных версий.

Команда iOS Такой подготовила доклад на YouTube, посвященный GitFlow. В докладе они рассказывают о преимуществах использования GitFlow при разработке iOS-приложений и демонстрируют практические примеры работы с ветками, слиянием кода и управлением версиями. Этот доклад может быть полезен для iOS-разработчиков начинающего уровня, и тех которые хотят улучшить свои навыки работы с Git и эффективно организовать процесс разработки.

#digest #доклад #Git
👍103🔥2👎1
Что нового в UIKit

iOS 17 принёс немало изменений в UIKit. Новые удобные фичи сделают ваше приложение красивее и функциональнее.

Анимация символов, превью контроллеров прямо в Xcode, авто-вибранси для лейблов — это и многое другое ждёт вас в новой версии. Читайте подробности в обзоре и сделайте свои приложения ещё круче!

#digest #uikit
👍18🔥53👎1
Тестирование и почему это важнее, чем вы думаете

Тестирование в iOS - это процесс проверки функциональности, надежности и качества приложений, разработанных для устройств Apple. Оно включает в себя создание и выполнение тестовых сценариев, проверку работоспособности приложения в различных условиях и обнаружение и исправление ошибок.

Тестирование в iOS является важным этапом разработки, поскольку позволяет выявить и исправить ошибки и проблемы до того, как приложение будет выпущено в продакшн. Оно помогает гарантировать, что приложение работает правильно, соответствует требованиям пользователей и предоставляет хороший пользовательский опыт.

iOS Такой подготовил доклад с лайфкодингом по тестированию проекта. В этом докладе демонстрируется практический пример тестирования iOS-приложений, объясняют различные подходы и инструменты для тестирования, а также делятся советами и лучшими практиками. Этот доклад может быть полезен разработчикам iOS, которые хотят научиться эффективно тестировать свои проекты и повысить качество своего кода. А так же поговорим за плюсы и минусы тестирования. Приятного просмотра.

Ресурсы на гостя - Даниила.

#digest #доклад #тестирование
🔥134👍4❤‍🔥1👎1
Глубокое погружение в Swift Regex

Обработка строк для извлечения, манипулирования или поиска данных - это основной навык, который необходимо приобрести большинству инженеров-программистов. Регулярные выражения, или regex, являются почтенным титаном обработки строк. Регулярные выражения являются неотъемлемой частью многих инструментов командной строки, используемых в Unix, поисковых системах, текстовых процессорах и текстовых редакторах. Недостатком регулярных выражений является то, что их может быть сложно создавать, читать и отлаживать. Большинство языков программирования поддерживают ту или иную форму регулярных выражений — и теперь Swift тоже поддерживает Swift Regex.

Захватывающий и новый конструктор регулярных выражений в Swift Regex предоставляет нам программный способ создания регулярных выражений. Этот инновационный подход к созданию зачастую сложных регулярных выражений наверняка сразу же понравится как новичкам, так и поклонникам регулярных выражений. Мы углубимся в Regex Builder, чтобы открыть для себя его широкие возможности.

Swift Regex обеспечивает первоклассную поддержку регулярных выражений в языке Swift и нацелен на смягчение или полное устранение многих недостатков регулярных выражений. Компилятор Swift изначально поддерживает синтаксис регулярных выражений, что приводит к ошибкам во время компиляции, подсветке синтаксиса и строго типизированным захватам. Синтаксис регулярных выражений в Swift совместим с Perl, Python, Ruby, Java, NSRegularExpression и многими другими.

В этой статье подробно разбирается то, как работают регулярные выражения в Swift и где они могут пригодиться.

#digest
👍104🔥3👎1
С вами команда iOS Такой. Нам нужна обратная связь!

Мы выпустили уже достаточное количество выпусков, и какие еще ожидаются:
- Пишем проект с ChatGPT и без
- SwiftUI (продвинутый уровень)
- Английский язык. Эффективные методики обучения.
- Диспетчеризация на практике
- Моковое собеседование iOS
- Важность one to one


Так же недавно вошли в релиз выпуски:
- Тестирование проекта на практике
- Git и командная работа
- Реактивное программирование на основе RxSwift и RxCocoa
- Как использовать XCFrameworks на практике

Нам нужна обратная связь, о том, какие выпуски вы бы хотели видеть! И что не нравится в наших выпусках/канале. Пишите все, что думаете. Мы не боимся делать ошибок - мы растем!
🔥184👍3👎1
Дорогие друзья!

Я хотел бы выразить свою искреннюю благодарность и признательность определенным лицам, которые оказали существенную помощь и приняли активное участие в моем становлении как разработчика. Ваша поддержка и дружеское отношения значат для меня очень много, и я не могу не упомянуть это в моем посте.

@NSOwl, спасибо тебе за твою бесценную помощь и наставничество в начале моего пути. Твои советы и знания в iOS помогли мне развиться и попасть на свою первую работу. Я до сих пор это ценю.

@MaxAnokhin и @gellert_kirill
Ваши советы и обратная связь помогали мне преодолевать трудности и развиваться в своих умениях. Без вас я бы не смог достичь таких результатов. За это время вы не просто стали для меня знакомыми, а целыми друзьями - отношениями которыми, я очень сильно дорожу.

@Dmitriy_Soloshenko
Вам я хочу выразить благодарность за то, что вы всегда были готовы поделиться своим опытом и знаниями. Спасибо Вам!

Я также очень благодарен окружению, которое меня окружает. Ваша поддержка и понимание помогают мне продолжать расти и развиваться. Я ценю каждый момент, проведенный с вами, и я счастлив быть тем, кем я являюсь сейчас.

P.S Скоро много новых выпусков ✌️
25🥰3👍2👎1
Создаем дефолтные аватары пользователей в SwiftUI

Мы часто сталкиваемся с необходимостью отображения аватаров пользователей в наших приложениях. Однако работа с аватарами по умолчанию для пользователей, не имеющих фотографий профиля, может быть утомительной и повторяющейся. В этой статье мы рассмотрим простое и эффективное решение этой проблемы с помощью SwiftUI и расширений Swift.

К концу этой статьи у вас будет чистый и персонализированный генератор дефолтных аватаров, который добавит нотку уникальности пользовательскому интерфейсу вашего приложения.

Содержание статьи с примерами кода

1. Настройка модели пользователя
2. Создание расширения для строк
3. Кастомный View дефолтного аватара
4. Реализация генератора аватаров


#digest #swiftui
👍9🔥52👎1🤮1
ChatGPT в Swift на практике

Привет, друзья!

В это воскресенье у нас в гостях была Екатерина Батеева - iOS разработчик из Одноклассников.

Катя показала нам на примере, как оседлать ChatGPT и как строить с ним диалог, что бы корректно донести до него то, чего мы хотим. Так же мы увидим небольшой пример использования нейросети Kandinsky от Сбера для иконок приложения и, самое интересное, - как превратить дизайн из Figma в готовый экран на SwiftUI буквально в пару кликов!

Это был великолепный доклад, который мы советуем вам просмотреть.

Приятного просмотра! Увидимся в следующее воскресенье :)

#digest #доклад #ChatGPT
👍17🔥116👎1
Сравнение декларативных фреймворков

В этой статье автор покажем вам, как написать один и тот же код на трех популярных декларативных фреймворках — Jetpack Compose, SwiftUI и Flutter.

Таким образом, вы сможете сравнить, как они работают и чем отличаются при создании интерфейсов.

#ios #android #flutter
👍9🔥51👎1
Что такое память?

Основной единицей информации является бит, который равен 1 или 0. Традиционно мы организовываем биты в группы по восемь, называемые байтами. Память  —  это просто длинная последовательность байтов, один за другим уходящих в даль. Но они расположены в определенном порядке. Каждый байт получает число, называемое его адресом.

В этих ресурсах рассматриваются принципы работы памяти в Swift и разбираются, как Swift располагает байты в памяти, как управляет памятью, и что из себя представляет жизненный цикл объектов.

Cтатья для прочтения
Видео для закрепления материала

#digest #arc #память
👍113🔥2💩1
📢 Внимание, в это воскресенье у нас запланирован SwiftUI! 🎉

Мы приглашаем вас на прямую трансляцию, где Мишин Денис проведет детальный разбор одного из самых инновационных фреймворков разработки пользовательского интерфейса - SwiftUI! 🚀

SwiftUI - это мощный инструмент, который позволяет создавать потрясающие и современные пользовательские интерфейсы для ваших приложений на платформах iOS, macOS, watchOS и tvOS. В этом разборе мы рассмотрим все основные возможности и функции, которые делают SwiftUI таким классным и интуитивно понятным для разработчиков.

Вы узнаете, как использовать декларативный подход для создания интерфейса, как использовать различные компоненты и контролы, а также как обрабатывать пользовательские события и добавлять анимации. Мы также покажем вам практические примеры, чтобы вы могли сразу применить полученные знания в своих проектах.

Присоединяйтесь к нам в это воскресенье, чтобы получить полезную информацию и вдохновение от нашего разбора SwiftUI! Не забудьте подписаться на наш YouTube-канал, чтобы получать уведомления о новых видео и быть в курсе всех наших интересных мероприятий. Увидимся в воскресенье в 19:30 по МСК! 🎥

#digest #доклад
12👍42🔥2🥴2
Как работает диспетчеризация в iOS на практике + ЛАЙФКОДИНГ

Диспетчеризация - это важный аспект разработки приложений для iOS, который позволяет эффективно управлять вызовами методов и функций. Она определяет, какой код будет выполнен в ответ на вызов определенной функции или метода.

iOS Такой подготовил доклад на YouTube, в котором подробно рассказывают о диспетчеризации в iOS и демонстрируют живой кодинг. В этом видео вы узнаете, что такое диспетчеризация и как она работает в iOS, а также увидите практические примеры использования.

Диспетчеризация в iOS имеет два основных вида: статическую и динамическую. Статическая диспетчеризация происходит во время компиляции и определяет, какой код будет вызван на основе типа переменной или константы. Динамическая диспетчеризация, напротив, происходит во время выполнения и позволяет выбирать код на основе реального типа объекта.

В нашем докладе, гость подробно объясняет различия между статической и динамической диспетчеризацией, а также рассказывает о механизмах, которые Swift использует для реализации динамической диспетчеризации. Вы узнаете, как использовать диспетчеризацию для создания полиморфных и наследуемых структур в ваших приложениях и многое другое.

#ios #digest #доклад #диспетчеризация
🔥15💩43👍3🤡1🖕1
💰 Обзор зарплат: сколько сейчас зарабатывают айтишники

Разберемся, что происходит с зарплатами в айти в последние годы и сколько зарабатывают IT-специалисты сейчас. Ориентируясь на данные Хабр Карьеры, то за ≈1,5 года зарплата в IT выросла примерно на 11,94%.

#digest #рынок
👍4👎3🔥21😱1
🌍 ЭФФЕКТИВНОЕ ИЗУЧЕНИЕ ИНОСТРАННЫХ ЯЗЫКОВ: ГОСТЬ, СОФЬЯ, ИНТЕРЕСЫ И СЕКРЕТЫ 🗣️

Привет, друзья! У нас сегодня на канале особенный выпуск, посвященный эффективному изучению иностранных языков. И у нас есть замечательная гостья - Софья, репетитор по английскому языку, которая не только преподает его, но и увлечена миром социальных медиа и продвижением!

В этом выпуске Соня поделится с нами своими ценными советами и секретами, которые помогут вам сделать процесс изучения языка более эффективным и увлекательным. Она знает, как найти подход к каждому ученику и сделать уроки интересными, а также применить современные методы в обучении.

Но это еще не все! Соня также увлекается областью социальных медиа и продвижением. Она понимает, как важно использовать современные инструменты для расширения своих знаний и навыков. Если вам интересна эта область или вы хотите узнать больше о том, как использовать социальные медиа для продвижения своего бизнеса или личного бренда, то Соня с радостью поделится своими идеями и опытом!

Выпуск получился достаточно полезным, информативным и интересным. Приятного просмотра😊

#digest #иностранныеязыки
👍12🔥74👎1