Telegram Web Link
Please open Telegram to view this post
VIEW IN TELEGRAM
iOS Dev
Разыгрываю премиум только для самых крутых читателей канала

Условия невероятно сложны и хардкорны:

1️⃣ Читать iOS Dev.
2️⃣ На этом всё 🫡

🙂 Всем удачи!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание переиспользуемых компонентов в SwiftUI

Доклад с iOSDevUK в виде интерактивного обучения (с помощью DocC) поможет разобраться в следующем:

1️⃣ Основные и более сложные методы создания вьюх.

2️⃣ Как сделать SwiftUI-view кастомизируемыми.

3️⃣ Как добавить больше интерактивности с использованием action handlers.

4️⃣ Использование API для создания стилей, например, в Button или Toggle.

Реализация всех частей не должна занять больше двух с половиной часов, так что можно сохранить себе, если хочется детальнее познакомиться со SwiftUI.

😃 iOS Dev
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Вчера был представлен Humane Ai Pin — девайс, призванный заменить смартфоны

📖 Более подробно можно прочитать тут и тут.

Конечно, многие смотрят на него скептически, как и в случае с анонсом iPhone в 2007 (слишком дорого и кому вообще нужно).

Но вот два фактора, почему нужно внимательнее отнестись к девайсу:

1️⃣ Глава разработки - Кен Косиенда (подробнее о его огромной роли в Apple вот тут и тут).

2️⃣ Девайс предполагает тесную интеграцию с Open AI. А значит - сам процесс взаимодействия не просто очередной голосовой помощник.

Он дорогой.

🚩 Стартовая цена 699 долларов (и подписка за 24 доллара в месяц 😮).

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Базовая информация о самых популярных архитектурах для iOS-приложений

📺 Знакомство с архитектурой MVVM (90 секунд).

📺 Знакомство с архитектурой MVP (90 секунд).

📺 Знакомство с архитектурой VIPER (10 минут 30 секунд).

Бонус (с примером создания и работы): Паттерн Coordinator.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🏘 Финалисты App Store Award 2023

Редакция App Store отмечает лучшие приложения и игры ежегодно более десяти лет.

В этот раз представлено 40 разработчиков приложений и игр в 10 различных категориях — за их превосходство, изобретательность и технические достижения в приложениях и играх.

Например, для iPhone в этот раз в главной категории: AllTrails, Duolingo и Flighty.

А для мака: Linearity Curve, Photomator и Portal (другой🍰).

🔗 Все номинации доступны по ссылке.

😃 iOS Dev
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
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Анимация изменения чисел с помощью модификатора Content Transition

➡️ Content Transition можно использовать для создания анимированных переходов.

Например, в случаях, когда есть значение, которое изменяется с течением времени (время на таймере или курс валют).

📖 В этом примере показано, как реализовать такой эффект при нажатии кнопки (как говорится, от прошлого к сложному).

😃 iOS Dev
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-стиля (или просто так чувствует).

📖 А вот здесь больше инфы про отступы в разных языках (и не только).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа в Swift с UIViewRepresentable (как избежать лишних warnings и зацикливания)

При работе со SwiftUI иногда (ладно, на самом деле куда чаще) необходима поддержка UIKit, используя UIViewRepresentable, NSViewRepresentable или UIViewControllerRepresentable.

Документация по этим протоколам все еще довольно скудна, и заставить всё это работать бывает непросто).

👩‍🎓 Chris Eidhof попытался сформулировать некоторые правила и шаблоны их использования.

📖 В этой статье есть полезные советы по коммуникации между SwiftUI и UIKit/AppKit (когда и при каких условиях необходимо выполнять обновление, и какие подводные камни могут ожидать).

😃 iOS Dev
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

Мы можем использовать эту возможность для реагирования на изменения (в том числе, например, и в виджетах в той же App Group) и задач пакетной обработки.

ℹ️ Уведомления о подписке и объединение транзакций будут автоматически обрабатываться SwiftData.

Но в некоторых случаях может пригодиться ручная обработка для большей гибкости.

📖 В этой статье на примерах объяснено, как наблюдать за нужными изменениями данных с помощью Persistent History Tracking в SwiftData.

➡️ Кстати, ранее я делился масштабным материалом по работе со SwiftData и некоторыми вопросами по использованию.

😃 iOS Dev
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 actions в систему (например, в Shortcuts, Siri и Spotlight).

Одно из преимуществ использования AppIntents — простота создания прототипов.

📖 В этой статье разработчик делится своим опытом и рассказывает, как создать app action для приложения Shortcuts.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Работа с UIGestureRecognizer: создание, обработка состояний и работа с несколькими одновременно

🗒 Обработка жестов в приложениях на iOS — важнейшая часть разработки.

Касания, повороты или вращения, безусловно, предоставляют важнейший опыт взаимодействия с нашими продуктами для пользователей.

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

Но для всех сколь угодно сложных случаев (которых у нас обычно 99% при реализации) поможет UIGestureRecognizer.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Импорт макросов Swift без использования Swift Package Manager

➡️ Макросы Swift, которые появились в Swift 5.9 — отличный способ сократить количество бойлерплейт-кода.

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

Например, когда макросы требуются в либах CocoaPods или нужно обфусцировать сорсы приложения (хотя это бывает редко).

📖 Как раз для таких случаев существует опция импорта макросов в проект Xcode в виде бинарника.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Оператор guard в Swift, примеры кода и варианты использования

При написании кода мы постоянно задаем различные условия, необходимые для продолжения работы того или иного метода.

⭐️ Необходимыми условиями могут быть либо булево значение (и проверка его на true), либо работа с опциональными значениями (они не должны быть nil).

И конечно, для этого нам всегда поможет guard, однако у нас в арсенале существует и if let.

📖 В этой статье разбираются такие ситуации и даётся ответ, когда без guard не обойтись.

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

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/02/23 21:25:11
Back to Top
HTML Embed Code: