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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Нове розширення для фонового завантаження ресурсів в 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
💡Swift на FreeBSD

Важко сказати, наскільки це затребувано сьогодні (ймовірно, є ще певна кількість серверів, які так і не переїхали на Linux), але новина все ж цікава: вийшла бета-версія підтримки Swift-тулчейна для FreeBSD.

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

🇺🇦 iOSDevUA
👍3
💡Нова партнерська програма App Store Mini Apps

📖 Apple анонсувала партнерську програму Mini Apps — застосунків, створених, зокрема, на HTML5 і JavaScript.

Розробникам пропонують знижену комісію 15% від продажів усередині таких міні-додатків.

Втім, щоб отримати цю знижку, потрібно використовувати Declared Age Range API та Advanced Commerce API.

➡️ Повний перелік вимог, критерії доступу та Q&A доступні тут:
https://developer.apple.com/programs/mini-apps-partner/

🇺🇦 iOSDevUA
💡Як знайти SwiftUI-в’ю, які оновлюються найчастіше

У Xcode 26 в Instruments з’явилася нова корисна можливість — профайлер, який вимірює частоту оновлення SwiftUI-в’юшок, а також час, який витрачається на кожне оновлення.

Ще цікавіше те, що інструмент показує граф викликів, який демонструє, що саме спричинило оновлення. Це дозволяє швидко знайти проблемні місця: надмірні state-зміни, зайві перерахунки layout’у або неочевидні побічні ефекти.

Ідеальний спосіб оптимізувати продуктивність, коли інтерфейс починає «тягнути», а причина неочевидна на перший погляд.

🇺🇦 iOSDevUA
2
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Прокачано автодоповнення коду в Swift

Проєкт, представлений Ахмедом Ельрефаї в межах Google Summer of Code, розширює можливості протоколу LSP для мов Swift та C.

Тепер у підказках автодоповнення буде показуватися повна документація, а не лише короткий опис, — разом із усіма аргументами, доступними під час виклику методу.

Виграють усі редактори, що підтримують LSP: VS Code, Neovim, IntelliJ IDEA, Vim та інші.

📖 Ця робота вже інтегрована в SourceKit-LSP і буде включена в майбутні версії Swift-тулчейна:
https://www.swift.org/blog/gsoc-2025-showcase-code-completion/

🇺🇦 iOSDevUA