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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
📦 xcsift — оптимізація логів Xcode для AI

Контекст — водночас найкорисніший і найдорожчий ресурс у роботі з AI-агентами: надто великий контекст погіршує якість відповіді й підвищує вартість кожного запиту до LLM.

xcsift — це CLI-утиліта, що перетворює логи xcodebuild на короткий, зрозумілий JSON із усією ключовою інформацією. Менше шуму → менше токенів → дешевші й точніші AI-ітерації.

🇺🇦 iOSDevUA
2
💡Приклади використання Foundation Models Framework

Нещодавно я ділився прикладом з улюбленого застосунку рецептів, де Foundation Models допомагають структурувати контент. А Apple підготувала свою добірку кейсів: від спрощеного логування силових тренувань до підбору музики за вмістом відео — все прямо на пристрої з повагою до приватності.

🇺🇦 iOSDevUA
💡Swift Transformers 1.0

Бібліотека swift-transformers від Hugging Face, що спрощує роботу з локальними LLM на Swift, отримала перший стабільний реліз. Окрім базових примітивів для інференсу й керування моделями, з її допомогою можна завантажувати та піднімати в пам’яті будь-які моделі з Hugging Face.

🇺🇦 iOSDevUA
💡Memory Integrity Enforcement — нова технологія безпеки від Apple

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

Багато команд проходять регулярні аудити безпеки й перевіряють джейлбрейк чи наявність підозрілих процесів. Нещодавно в Xcode з’явилася опція Enhanced Security (її можна увімкнути в проєкті), що допомагає прибрати чимало поширених ризиків.

Тепер Apple представила Memory Integrity Enforcement (MIE) — підхід, який не лише підсилює захист, а й допомагає виявляти складні для діагностики помилки роботи з пам’яттю та усувати їх у коді.

📺 Переглянути сесію можна на сайті Apple або на YouTube.
📖 Додатковий розбір.

🇺🇦 iOSDevUA
💡Про увагу до деталей від 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