🇺🇦 iOS Dev UA - спільнота iOS розробників
384 subscribers
398 photos
42 videos
9 files
957 links
Перша україномовна спільнота iOS розробників 🇺🇦

👨‍💻Цікаві матеріали зі світу розробки для продуктів Apple.
Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple.

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Про увагу до деталей від Apple

З кожним новим релізом macOS та iOS легендарна «увага до дрібниць» у Apple, здається, тане. Останній випуск із Liquid Glass лише погіршив ситуацію — як у загальному UX, так і за планкою якості. У статті — найпоказовіші приклади того, наскільки все просіло.

🇺🇦 iOSDevUA
💯3
💡Створення UIKit-застосунку зі стилем Liquid Glass

Більшість великих проєктів поки не переходять на нову стилістику, але деякі топ-апки (наприклад, Telegram) уже частково оновлюють ключові компоненти.

Якщо дизайн поки оновлювати не плануєте — нещодавно я писав, як вимкнути «скляний» стиль для ваших проєктів.

А от якщо ви готуєтеся адоптити можливості iOS 26, варто знати кілька порад.

Наприклад, щоб прибрати ефект скла для кнопок у навбарі, можна використати hidesSharedBackground

А щоб візуально розділити групи кнопок, додайте .fixedSpace().

📖 Ще більше корисних фіч — у цьому розборі:
https://appcircle.io/blog/wwdc25-build-a-uikit-app-with-the-new-liquid-glass-design.

Перехід у будь-якому разі буде не надто швидким (потрібно підтримувати і старі опції), але, як бачимо, для UIKit нові можливості цілком реально впроваджувати вже зараз.

🇺🇦 iOSDevUA
💡Як тестувати iOS-застосунки в Zed

Продовження серії про налаштування Zed для повноцінної iOS-розробки: цього разу — як конфігурувати запуск тестів для застосунків і Swift-пакетів.

Деталі та покрокові інструкції тут 👉 https://luxmentis.org/blog/test-xcode-apps-in-zed/.

🇺🇦 iOSDevUA
1
💡Передавання даних у SwiftUI: порівняння підходів

📖 Маттео Манфердіні ділиться базовими принципами збереження та передачі інформації всередині застосунку.
Він порівнює різні флоу обміну даними й підходи до властивостей — від сесії WWDC19 до варіанта Криса Ейдхофа, структуруючи матеріал у кілька великих розділів:

➡️ Архітектура та “джерела правди”: де має жити істинний стан застосунку
➡️ Передавання значень у View: пропси, environment, bindings
➡️ Створення та керування станом: @State, @StateObject, @ObservedObject, @EnvironmentObject
➡️ Обхід дерева View: коли підіймаємо стан вище та як уникати проп-ланцюгів

Зручний конспект для тих, хто хоче вибудувати прозорий data flow у SwiftUI без «магії» та зайвих залежностей.

🇺🇦 iOSDevUA
1
💡Нове розширення для фонового завантаження ресурсів в iOS 26.1

➡️ В iOS 26.1 у PhotoKit (поки що лише там, сподіваємось на розширення в майбутньому) з’явився новий тип розширень — Background Resource Upload.

Система сама керує передаванням файлів від імені вашого застосунку та обробляє їх у фоні — навіть якщо користувач переключився в іншу апку чи заблокував пристрій.

Бонуси: автоматичне керування мережею, енергозаощадженням і таймінгами — все, щоб забезпечити надійну доставку без вашого ручного мікроменеджменту.

📖 Приклад коду та офіційна документація.

🇺🇦 iOSDevUA
4👍2
💡Swift SDK для Android уже доступний

📖 Оголошено попередні (nightly) збірки Swift SDK для Android.

Вже доступні: гайд зі старту для запуску коду на Android-пристроях, репозиторій із прикладами, а також публічна дошка прогресу основних фіч.

🇺🇦 iOSDevUA
This media is not supported in your browser
VIEW IN TELEGRAM
💡Трансформація Glass Views за допомогою glassEffectID

Серед нових API для побудови інтерфейсів виділяється модифікатор glassEffectID.

З ним можна реалізувати плавні переходи між в’юшками — наприклад, «розділяти» одну кнопку на кілька і навпаки.
Як і завжди, є умови: зокрема, потрібно використовувати GlassEffectContainer.

📖 Зрозумілий приклад застосування
🛠 Код демо-проєкту.

Як застосувати Liquid Glass до кастомних в’юшок — дивіться в офіційній документації.

🇺🇦 iOSDevUA
2
📊 Які розміри шрифтів обирають користувачі

Команда застосунку Flighty, який має велику базу користувачів, поділилася цікавою аналітикою: які розміри системних шрифтів найчастіше обирають люди в налаштуваннях iOS.

Також наведено відсоток користувачів, що активно використовують accessibility-функції, пов’язані зі шрифтами — масштабування, динамічний текст та інші параметри доступності.

Корисна статистика для дизайнерів і розробників, які хочуть краще зрозуміти, як реально виглядають їхні інтерфейси у користувачів.

🇺🇦 iOSDevUA
1
💡Apple Dev таймлайн — усі зміни з WWDC

Ділюся сайтом, де зібрано, які фреймворки та користувацькі оновлення представили на кожному WWDC починаючи з 2015 року. Зручно простежити еволюцію платформ і швидко знаходити потрібні релізи.

Дивитися тут 👉 https://www.whatsnewinwwdc.com/

🇺🇦 iOSDevUA
3
💡Економіка self-hosted CI

GitHub дозволяє підключати self-hosted ранери для виконання GitHub Actions — тобто використовувати власні Mac mini або інші сервери замість хмарних.

У статті розбирається, наскільки це може бути вигідно: автор порівнює вартість оренди macOS-інстансів у хмарі з витратами на придбання й утримання власних пристроїв, а також ділиться покроковим гайдом із підключення таких раннерів до CI-пайплайнів.

Як результат — нижча вартість, швидші збірки й повний контроль над середовищем виконання.

🇺🇦 iOSDevUA
🔥1
💡Доповідь про Swift на Android

Swift на Android продовжує розвиватися та набирати популярність. Якщо ви не дуже стежили за темою, раджу переглянути якісний оглядовий виступ з нещодавньої NSSpain.

🇺🇦 iOSDevUA
💡Роадмапа роботи тайп-чекера в Swift і плани на його покращення

Нарешті в одному місці з’явилося детальне пояснення не лише поточних проблем, а й загалом того, як влаштований тайп-чекер у Swift.

📖 В офіційній документації вийшов великий пост від Слави Пєстова, де описано, що вже зроблено для оптимізації перевірки типів у компіляторі, що в роботі зараз і що планується далі.

Туди входять:
• зміни, реалізовані в Swift 6.2;
• те, що вже в main-гілці;
• завдання, заплановані для Swift 6.3;
• і навіть попередні довгострокові плани розвитку.

Йдеться про ту саму ситуацію, коли компілятор видає:
“The compiler is unable to type-check this expression in reasonable time.”


Слава розклав усе по категоріях і пояснив ключові аспекти:

➡️ Перевантаження — які взагалі типи перевантаження Swift дозволяє.
➡️ Розв’язування обмежень — як компілятор визначає типи під час компіляції.
➡️ Алгоритмічна складність — чому певні вирази можуть різко «зависати».
➡️ Що означає “reasonable time”.
➡️ Робота з некоректними виразами та діагностика.
➡️ Цілі й нецілі оновлень.
➡️ Поліпшення у Swift 6.2.
➡️ Що заплановано у Swift 6.3.
➡️ Майбутні покращення — оптимізація біндінгів, видалення старих хаків тощо.
➡️ Довгострокові плани.

Цей документ — must-read для тих, хто хоче зрозуміти, чому іноді компілятор “задумується” і як Swift рухається до більш стабільної та швидкої перевірки типів.

🇺🇦 iOSDevUA
2
🎬 Доповіді з конференції Swift Connection 2025

У відкритому доступі з’явився список виступів із цьогорічної паризької конференції. Серед найцікавіших:

📺 Що насправді відбувається з вашим iOS-застосунком під час компіляції
У сесії розглядають файли .xcarchive та .ipa, показуючи, що саме Xcode робить із вихідним кодом. Також пояснюють процес компіляції, роботу з Mach-O, Info.plist, метаданими Obj-C/Swift та іншими компонентами.

📺 Покращена обробка помилок у Swift: від Obj-C Legacy до Swift 6
Автор ділиться тим, чому навіть LocalizedError не завжди є надійним рішенням, і як виглядає справді нативна обробка помилок у Swift.

📺 Дивовижний світ приватних API
У доповіді пояснюють не лише, як працюють приватні API, а й як їх шукати та використовувати в Objective-C (і навіть пробувати у Swift).

📺 Створення iOS-застосунків без Xcode за допомогою Cursor + Claude
У лекції розповідають про Cursor, Claude Code та показують, як налаштувати проєкт для збірки поза межами Xcode.

🇺🇦 iOSDevUA
📺 Нове інтерв’ю з Крісом Латтнером — від Swift до Mojo

Особливо сподобався момент, де Кріс розповів:
«До Swift я намагався писати пет-проєкти на Objective-C, але мене дратували квадратні дужки, і я постійно боровся з указівниками та крашами. Мені навіть здавалося, що я недостатньо хороший, щоб створювати застосунки.»
https://youtu.be/Fxp3131i1yE?t=2470


І тоді він просто створив власну мову програмування. 💪
Оце я розумію спосіб вирішити проблему! Красиво, Кріс, без зайвих слів.

Серед цікавих тем інтерв’ю:

➡️ Компілятори початку 2000-х
➡️ Чому Латтнер створив LLVM
➡️ Як створюють мови програмування
➡️ Swift Playgrounds — як зробити програмування доступним кожному
➡️ Які проблеми вирішив Swift і який технічний борг з’явився
➡️ Недоліки компілятора Swift
➡️ Що можна винести з вивчення компіляторів

Це інтерв’ю — не просто історія Swift, а чудовий екскурс у мислення людини, яка стоїть за LLVM, Swift і тепер Mojo.

🇺🇦 iOSDevUA
💡Статус переходу SwiftPM на Swift Build

На початку року Apple відкрила код Swift Build — власної системи складання, метою якої є повна міграція Swift Package Manager на цю платформу.

Наразі основні функції SwiftPM уже підтримуються, і ви можете протестувати нову систему, передавши під час складання флаг: --build-system swiftbuild

Подальші плани

Apple планує завершити перехід до кінця наступного року, після чого стару систему складання буде повністю видалено. Це має забезпечити єдиний, узгоджений інструмент збірки для всіх проєктів на Swift, з кращою швидкодією, масштабованістю та інтеграцією з Xcode і серверними середовищами.

🇺🇦 iOSDevUA
2
📦 AnyLanguageModel — використання будь-яких LLM у ваших застосунках

Mattt, автор легендарного NSHipster, представив нову бібліотеку AnyLanguageModel. Вона повністю сумісна за API з FoundationModels від Apple, але дозволяє працювати з будь-якою великою мовною моделлю (LLM).

Все максимально просто: достатньо лише замінити import FoundationModels на import AnyLanguageModel, і ваш код миттєво зможе використовувати альтернативні моделі — від OpenAI до локальних варіантів.

🚀 Ідеальне рішення для тих, хто хоче гнучко експериментувати з AI у Swift-застосунках, не переписуючи логіку під кожного провайдера.

🇺🇦 iOSDevUA
📦 spmgraph — візуалізація графа залежностей SwiftPM

spmgraph — це CLI-інструмент для розробників, який дозволяє:
візуалізувати граф залежностей Swift Package Manager,
• запускати тести на основі impact-аналізу,
• виконувати архітектурний лінтинг для контролю структури проєкту.

Ідеальний тул для великих кодових баз, де важливо бачити, як модулі взаємопов’язані, і швидко знаходити потенційні проблеми ще до збірки.

🇺🇦 iOSDevUA
💡Що нового у Swift — новий розділ на swift.org

На сайті swift.org з’явився новий щомісячний розділ, у якому публікують дайджести про все, що відбувається у світі Swift. Тут не лише новини про мову, а й думки, аналітика та точки зору представників спільноти й екосистеми.

У жовтневому випуску висвітлюються головні підсумки Server-Side Swift Conference, релізи основних пакетів та останні пропозиції Swift Evolution.

Серед цікавих матеріалів — доповідь Бена Коена:
📺 Юзабіліті та продуктивність у Swift
У ній він розповідає, як розвивається мова, і як сучасний Swift дозволяє досягати максимальної продуктивності навіть попри всі зміни, що відбуваються в екосистемі.

📖 Повністю дайджест можна прочитати тут:
https://www.swift.org/blog/whats-new-in-swift-october-2025/

🇺🇦 iOSDevUA
👍1
💡Проєктування та створення кастомних лейаутів у SwiftUI

📖 В офіційній документації Apple є чудовий приклад із детальними поясненнями різних інструментів проєктування кастомних лейаутів

🛠 У демо застосунку реалізовані кнопки для голосування за певний тип домашнього улюбленця, показується кількість голосів і відносний рейтинг у лідерборді. Також присутня візуалізація аватарів тварин, розташованих відповідно до їхньої позиції в рейтингу.

Крім цього, у матеріалі детально розбираються:

➡️ Робота ViewThatFits
Як вибирати в’юшку, яка найкраще підходить під доступний простір.

➡️ Підвищення ефективності лейауту за допомогою кешування
Як зменшити кількість перерахунків і підвищити продуктивність.

➡️ Анімація переходів між різними лейаутами
Як створювати плавні зміни між конфігураціями розміщення елементів.

Корисний та наочно структурований ресурс для тих, хто хоче навчитися створювати власні адаптивні, ефективні та красиво анімовані лейаути в SwiftUI.

🇺🇦 iOSDevUA
💡Оновлення App Store Review Process

Apple внесла кілька важливих змін у процес публікації та маркетингу застосунків:

👉 Тепер можна надсилати нові версії застосунку на рев’ю, навіть якщо попередня ще не пройшла перевірку.
Наприклад, поки рецензують мажорний апдейт, ви можете залити хотфікс критичного бага.

👉 Ліміт кастомних сторінок у App Store збільшили удвічі — до 70.
Кожній сторінці тепер можна задавати власні ключові слова для пошуку.

👉 Промокоди поступово відключать у 2026 році.
Їх замінять offer codes, які працюють і з внутрішніми покупками, і з підписками.

Ці зміни значно спрощують роботу з релізами та дають більше можливостей для гнучкого маркетингу в App Store.

🇺🇦 iOSDevUA
👍2
💡Порада щодо продуктивності для List + ForEach у SwiftUI

Якщо ваш список помітно підлагує, можна скористатися корисним параметром -LogForEachSlowPath, про який згадує автор тут:
https://x.com/KyleSwifter/status/1979849200222531959.

Установивши його в YES, SwiftUI почне логувати попередження про «повільні місця» у ForEach — наприклад, такі, як у цьому прикладі:
https://x.com/KyleSwifter/status/1979926926039896387.

🛠 Увімкнути параметр можна й через UserDefaults, як це зроблено в IceCubesApp — ось приклад PR:
https://github.com/Dimillian/IceCubesApp/pull/2350.

Цей підхід допомагає швидко знайти проблеми з ідентифікаторами, переформуванням в’юшок або неефективними моделями даних у ваших списках.

🇺🇦 iOSDevUA
3