iOS Dev
Разыгрываю премиум только для самых крутых читателей канала
Условия невероятно сложны и хардкорны:
1️⃣ Читать iOS Dev.
2️⃣ На этом всё 🫡
🙂 Всем удачи!
😃 iOS Dev
Условия невероятно сложны и хардкорны:
1️⃣ Читать iOS Dev.
2️⃣ На этом всё 🫡
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание переиспользуемых компонентов в SwiftUI
Доклад с iOSDevUK в виде интерактивного обучения (с помощью DocC) поможет разобраться в следующем:
1️⃣ Основные и более сложные методы создания вьюх.
2️⃣ Как сделать SwiftUI-view кастомизируемыми.
3️⃣ Как добавить больше интерактивности с использованием
4️⃣ Использование API для создания стилей, например, в
Реализация всех частей не должна занять больше двух с половиной часов, так что можно сохранить себе, если хочется детальнее познакомиться со SwiftUI.
😃 iOS Dev
Доклад с iOSDevUK в виде интерактивного обучения (с помощью DocC) поможет разобраться в следующем:
1️⃣ Основные и более сложные методы создания вьюх.
2️⃣ Как сделать SwiftUI-view кастомизируемыми.
3️⃣ Как добавить больше интерактивности с использованием
action handlers
.4️⃣ Использование API для создания стилей, например, в
Button
или Toggle
.Реализация всех частей не должна занять больше двух с половиной часов, так что можно сохранить себе, если хочется детальнее познакомиться со SwiftUI.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Расчет анимации стрелок часов с помощью Swift
🧑💻 Задача расчета угла поворота минутной и часовой стрелок часов периодически может встречаться даже в спортивном программировании в том или ином виде.
Но и без сложных расчётов в анимации могут возникнуть трудности.
В этом материале автор рассказывает о том, как пришёл к реализации часов с нужной плавностью и с какими сложностями столкнулся в iOS 17.
😃 iOS Dev
Но и без сложных расчётов в анимации могут возникнуть трудности.
В этом материале автор рассказывает о том, как пришёл к реализации часов с нужной плавностью и с какими сложностями столкнулся в iOS 17.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера был представлен Humane Ai Pin — девайс, призванный заменить смартфоны
📖 Более подробно можно прочитать тут и тут.
Конечно, многие смотрят на него скептически, как и в случае с анонсом iPhone в 2007 (слишком дорого и кому вообще нужно).
Но вот два фактора, почему нужно внимательнее отнестись к девайсу:
1️⃣ Глава разработки - Кен Косиенда (подробнее о его огромной роли в Apple вот тут и тут).
2️⃣ Девайс предполагает тесную интеграцию с Open AI. А значит - сам процесс взаимодействия не просто очередной голосовой помощник.
Он дорогой.
🚩 Стартовая цена 699 долларов (и подписка за 24 доллара в месяц 😮 ).
Насколько именно он геймчейнджер индустрии, покажет ближайшее время, но совершенно точно можно сказать одно — инновации и попытки переосмыслить современные устройства это правильный путь.
😃 iOS Dev
📖 Более подробно можно прочитать тут и тут.
Конечно, многие смотрят на него скептически, как и в случае с анонсом iPhone в 2007 (слишком дорого и кому вообще нужно).
Но вот два фактора, почему нужно внимательнее отнестись к девайсу:
1️⃣ Глава разработки - Кен Косиенда (подробнее о его огромной роли в Apple вот тут и тут).
2️⃣ Девайс предполагает тесную интеграцию с Open AI. А значит - сам процесс взаимодействия не просто очередной голосовой помощник.
Он дорогой.
Насколько именно он геймчейнджер индустрии, покажет ближайшее время, но совершенно точно можно сказать одно — инновации и попытки переосмыслить современные устройства это правильный путь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Базовая информация о самых популярных архитектурах для iOS-приложений
📺 Знакомство с архитектурой MVVM (90 секунд).
📺 Знакомство с архитектурой MVP (90 секунд).
📺 Знакомство с архитектурой VIPER (10 минут 30 секунд).
Бонус (с примером создания и работы): Паттерн Coordinator.
😃 iOS Dev
📺 Знакомство с архитектурой MVVM (90 секунд).
📺 Знакомство с архитектурой MVP (90 секунд).
📺 Знакомство с архитектурой VIPER (10 минут 30 секунд).
Бонус (с примером создания и работы): Паттерн Coordinator.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Редакция App Store отмечает лучшие приложения и игры ежегодно более десяти лет.
В этот раз представлено 40 разработчиков приложений и игр в 10 различных категориях — за их превосходство, изобретательность и технические достижения в приложениях и играх.
Например, для iPhone в этот раз в главной категории: AllTrails, Duolingo и Flighty.
А для мака: Linearity Curve, Photomator и Portal (другой🍰).
Please open Telegram to view this post
VIEW IN TELEGRAM
Эффективные способы управления памятью при работе с замыканиями в Swift
👨💻 Одной из важнейших областей, где нам нужно уделять особое внимание при разработке, являются замыкания.
При неправильном использовании могут возникать утечки памяти.
В свою очередь, это часто приводит к крашам и проблемам с производительностью.
📖 В этой статье рассмотрены несколько методов управления памятью при использовании замыканий.
😃 iOS Dev
При неправильном использовании могут возникать утечки памяти.
В свою очередь, это часто приводит к крашам и проблемам с производительностью.
📖 В этой статье рассмотрены несколько методов управления памятью при использовании замыканий.
Please open Telegram to view this post
VIEW IN TELEGRAM
Develop in Swift: новая серия уроков от Apple
🧑💻 Вышла новая часть для обучения, с помощью которой можно ближе познакомиться с Xcode и Swift.
Среди проектов, которые вы сможете создать за 5 часов (невероятно, но факт):
1️⃣ Прототип приложения для обмена сообщениями.
2️⃣ Прототип погодного приложения.
3️⃣ Работа с онбордингом.
4️⃣ Добавление кнопок и реализация взаимосвязи внутри приложений.
5️⃣ Работа с Lists и text fields.
😃 iOS Dev
Среди проектов, которые вы сможете создать за 5 часов (невероятно, но факт):
1️⃣ Прототип приложения для обмена сообщениями.
2️⃣ Прототип погодного приложения.
3️⃣ Работа с онбордингом.
4️⃣ Добавление кнопок и реализация взаимосвязи внутри приложений.
5️⃣ Работа с Lists и text fields.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация изменения чисел с помощью модификатора Content Transition
➡️
Например, в случаях, когда есть значение, которое изменяется с течением времени (время на таймере или курс валют).
📖 В этом примере показано, как реализовать такой эффект при нажатии кнопки (как говорится, от прошлого к сложному).
😃 iOS Dev
Content Transition
можно использовать для создания анимированных переходов. Например, в случаях, когда есть значение, которое изменяется с течением времени (время на таймере или курс валют).
📖 В этом примере показано, как реализовать такой эффект при нажатии кнопки (как говорится, от прошлого к сложному).
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Dev
Photo
Какой стиль кода вы используете?
Anonymous Poll
3%
Allman
3%
GNU
1%
Whitesmiths
90%
Kernighan & Ritchie
2%
Ratliff
0%
Horstmann
0%
Pico
2%
Lisp
iOS Dev
Какой стиль кода вы используете?
Зато теперь вы в курсе, что если вдруг кто-то не следует не по стайл-гайду в самом начале своего пути, то возможно он просто приверженец Lisp-стиля (или просто так чувствует).
📖 А вот здесь больше инфы про отступы в разных языках (и не только).
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа в Swift с UIViewRepresentable (как избежать лишних warnings и зацикливания)
При работе со SwiftUI иногда (ладно, на самом деле куда чаще) необходима поддержка
Документация по этим протоколам все еще довольно скудна, и заставить всё это работать бывает непросто).
👩🎓 Chris Eidhof попытался сформулировать некоторые правила и шаблоны их использования.
📖 В этой статье есть полезные советы по коммуникации между SwiftUI и UIKit/AppKit (когда и при каких условиях необходимо выполнять обновление, и какие подводные камни могут ожидать).
😃 iOS Dev
При работе со SwiftUI иногда (ладно, на самом деле куда чаще) необходима поддержка
UIKit
, используя UIViewRepresentable
, NSViewRepresentable
или UIViewControllerRepresentable
. Документация по этим протоколам все еще довольно скудна, и заставить всё это работать бывает непросто).
📖 В этой статье есть полезные советы по коммуникации между SwiftUI и UIKit/AppKit (когда и при каких условиях необходимо выполнять обновление, и какие подводные камни могут ожидать).
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация перетаскивания ячеек с помощью lazy grids и stacks
Автор взял за основу этот вариант и добавил возможность кастомного превью.
📖 Целиком решение с кодом можно посмотреть вот в этом посте.
🧑💻 А в нашем канале можно прочитать о решении такой задачи в UIKit.
😃 iOS Dev
Автор взял за основу этот вариант и добавил возможность кастомного превью.
📖 Целиком решение с кодом можно посмотреть вот в этом посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Отслеживание изменений данных в SwiftData с помощью Persistent History Tracking
Мы можем использовать эту возможность для реагирования на изменения (в том числе, например, и в виджетах в той же
ℹ️ Уведомления о подписке и объединение транзакций будут автоматически обрабатываться SwiftData.
Но в некоторых случаях может пригодиться ручная обработка для большей гибкости.
📖 В этой статье на примерах объяснено, как наблюдать за нужными изменениями данных с помощью
➡️ Кстати, ранее я делился масштабным материалом по работе со SwiftData и некоторыми вопросами по использованию.
😃 iOS Dev
Мы можем использовать эту возможность для реагирования на изменения (в том числе, например, и в виджетах в той же
App Group
) и задач пакетной обработки. ℹ️ Уведомления о подписке и объединение транзакций будут автоматически обрабатываться SwiftData.
Но в некоторых случаях может пригодиться ручная обработка для большей гибкости.
📖 В этой статье на примерах объяснено, как наблюдать за нужными изменениями данных с помощью
Persistent History Tracking
в SwiftData
.Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Использование фреймворка AppIntents: создание первого шортката
В iOS 16 был добавлен фреймворк
Одно из преимуществ использования AppIntents — простота создания прототипов.
📖 В этой статье разработчик делится своим опытом и рассказывает, как создать app action для приложения Shortcuts.
😃 iOS Dev
В iOS 16 был добавлен фреймворк
AppIntents
, позволяющий нам интегрировать app actions в систему (например, в Shortcuts, Siri и Spotlight). Одно из преимуществ использования AppIntents — простота создания прототипов.
📖 В этой статье разработчик делится своим опытом и рассказывает, как создать app action для приложения Shortcuts.
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа с UIGestureRecognizer: создание, обработка состояний и работа с несколькими одновременно
🗒 Обработка жестов в приложениях на iOS — важнейшая часть разработки.
Касания, повороты или вращения, безусловно, предоставляют важнейший опыт взаимодействия с нашими продуктами для пользователей.
Конечно, иногда нам достаточно только нажатий кнопок (без каких-то размышлений, что распознавать и без учета потенциальных конфликтов).
Но для всех сколь угодно сложных случаев (которых у нас обычно 99% при реализации) поможет
📖 В этом вводном материале можно познакомиться с наиболее частыми ситуациями, касающихся(как вам такая игра слов) обработки жестов пользователей.
😃 iOS Dev
Касания, повороты или вращения, безусловно, предоставляют важнейший опыт взаимодействия с нашими продуктами для пользователей.
Конечно, иногда нам достаточно только нажатий кнопок (без каких-то размышлений, что распознавать и без учета потенциальных конфликтов).
Но для всех сколь угодно сложных случаев (которых у нас обычно 99% при реализации) поможет
UIGestureRecognizer
.📖 В этом вводном материале можно познакомиться с наиболее частыми ситуациями, касающихся
Please open Telegram to view this post
VIEW IN TELEGRAM
Импорт макросов Swift без использования Swift Package Manager
➡️ Макросы Swift, которые появились в Swift 5.9 — отличный способ сократить количество бойлерплейт-кода.
В подавляющем большинстве случаев для поддержки макросов используется SPM, но существуют и другие сценарии.
Например, когда макросы требуются в либах CocoaPods или нужно обфусцировать сорсы приложения (хотя это бывает редко).
📖 Как раз для таких случаев существует опция импорта макросов в проект Xcode в виде бинарника.
😃 iOS Dev
В подавляющем большинстве случаев для поддержки макросов используется SPM, но существуют и другие сценарии.
Например, когда макросы требуются в либах CocoaPods или нужно обфусцировать сорсы приложения (хотя это бывает редко).
📖 Как раз для таких случаев существует опция импорта макросов в проект Xcode в виде бинарника.
Please open Telegram to view this post
VIEW IN TELEGRAM
Оператор guard в Swift, примеры кода и варианты использования
При написании кода мы постоянно задаем различные условия, необходимые для продолжения работы того или иного метода.
⭐️ Необходимыми условиями могут быть либо булево значение (и проверка его на
И конечно, для этого нам всегда поможет
📖 В этой статье разбираются такие ситуации и даётся ответ, когда без guard не обойтись.
Кстати, в обновлении телеги появились кастомные реакции у канала, и если вы хотите увидеть какие-то необычные, то вы знаете, как помочь .
😃 iOS Dev
При написании кода мы постоянно задаем различные условия, необходимые для продолжения работы того или иного метода.
true
), либо работа с опциональными значениями (они не должны быть nil
). И конечно, для этого нам всегда поможет
guard
, однако у нас в арсенале существует и if let
. 📖 В этой статье разбираются такие ситуации и даётся ответ, когда без guard не обойтись.
Please open Telegram to view this post
VIEW IN TELEGRAM