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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
💡Оновили офіційний сайт Swift

Напередодні WWDC починають з’являтися перші оновлення в екосистемі — отримав редизайн головний сайт swift.org. Додали анімації, освіжили вигляд і структуру.

Поділіться, чи є у вас очікування від цьогорічної конференції? Чекаєте на якісь вау-фічі? 🤩

🇺🇦 iOSDevUA
💡Notepad.exe — редактор коду для Swift

Notepad.exe — це мінімалістичний нативний редактор, спеціально створений для роботи зі Swift. Він орієнтований на зручну роботу з невеликими фрагментами коду, а також підтримує кілька корисних фіч.

🔹 Платна ліцензія, але є безкоштовна версія з обмеженим функціоналом
🔹 Зберігання кодових сніпетів у власній бібліотеці
🔹 Вбудований блокнот для заміток
🔹 Інтеграція зі Swift Package Manager
🔹 Підтримка AI на локальних моделях — без хмар і зовнішніх сервісів

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

🇺🇦 iOSDevUA
🔥1
💡Феромагнетизм за допомогою SwiftUI + Metal

📖 Ділюсь справді захопливим матеріалом — посилання тут. Ідеально підійде всім, хто захоплюється складними графічними ефектами та експериментами з рендерингом.

У статті розглядаються техніки SDF (Signed Distance Functions), або простіше — самоподібні геометрії, які дозволяють створювати візуальну рекурсію з «нескінченним масштабом» у реальному часі.

На базі цих принципів автор реалізував анімацію, натхненну явищем феромагнетизму — фізичного ефекту, при якому матеріали утримують намагніченість навіть без зовнішнього поля.
🔗 Про феромагнетизм у Wikipedia

Складно, красиво, технічно — і надихає на власні експерименти з Metal + SwiftUI.

🇺🇦 iOSDevUA
🔥Усі головні анонси з WWDC

Apple зібрала зручну сторінку з усіма ключовими новинами WWDC — розділено за темами з посиланнями на відповідні сесії.

Ось кілька особливо цікавих хайлайтів:

👉 Огляд нової дизайн-системи Liquid Glass — глибока інтеграція прозорості, світла й анімацій
👉 Усі оновлення SwiftUI — нові компоненти, покращена продуктивність та розширена підтримка адаптивного інтерфейсу
👉 Icon Composer — інструмент для створення іконок згідно з новими гайдлайнами
👉 Що нового в Xcode — нові можливості редактора, AI-асистенти та інструменти для роботи в команді
👉 Новий фреймворк для інтеграції локальних LLM — можливість запуску моделей прямо на пристрої

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

🇺🇦 iOSDevUA
🔥1
💡Річний звіт від Swift Server Workgroup

Swift Server Workgroup — команда, яка просуває Swift у серверній розробці — поділилася результатами за рік:

🔹 Сприяли ширшому впровадженню structured concurrency, опублікувавши гайдлайни з найкращими практиками та порадами з міграції
🔹 Значно розширилась екосистема пакетів — зокрема, відзначили Swift Memcache client, над яким працює комʼюніті
🔹 Провели кілька мітапів з прикладами успішного використання Swift у продакшн-серверних проєктах

🔮 Плани на наступний рік:

▪️ Продовжити розробку спільного HTTP-сервера
▪️ Сфокусуватися на observability — підготувати гіди з логування та моніторингу
▪️ Розвивати ініціативу Swift на Windows, щоб серверні застосунки працювали і на Windows-серверах
▪️ Покращити онбординг для новачків
▪️ Підтримати спільноту в розвитку клієнтів для Memcache та Redis

Swift дедалі впевненіше почувається в серверному середовищі — і це тільки початок.

🇺🇦 iOSDevUA
🔥1
💡Swift в Apple: як переписали службу моніторингу паролів із Java

Ні для кого не секрет, що Swift в Apple активно використовується не лише на клієнтських пристроях, а й для створення хмарних сервісів. Один із таких прикладів — служба Password Monitoring, яка щодня обробляє мільярди запитів з усього світу.

Нещодавно цю систему повністю переписали зі старого Java-коду на Swift, і результати вражають:
🚀 помітне зростання продуктивності
📉 зменшення обсягу кодової бази на 85%

📖 У цій статті детально розповідається, як саме відбувався перехід, які оптимізації вдалося реалізувати та що це означає для майбутнього Swift на бекенді.

🇺🇦 iOSDevUA
👍1
💡Якщо у вашому застосунку є підписки, то ви, сподіваюся, вже знайомі з поняттям billing grace period — періоду, протягом якого користувач може продовжити користування сервісом навіть після проблем з оплатою.

Проте ось детальний матеріал, який пояснює, як саме працює цей механізм, що враховує Apple, як це впливає на доступ до контенту та які є нюанси при реалізації.

Можливо, ви дізнаєтесь щось нове — навіть якщо вже стикалися з цією функціональністю.

👉 https://www.avanderlee.com/optimization/billing-grace-period-explained/

🇺🇦 iOSDevUA
3
💡The Browser Company: новий етап замість Arc і плани на майбутнє

Пам’ятаєте The Browser Company — ту саму команду, яка створювала кросплатформенний браузер Arc на Swift і була одним з найбільших адептів TCA (The Composable Architecture)?

Так от, вже певний час розробка Arc поставлена на паузу, а команда переключилася на новий браузерний продукт.

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

Очевидно, нас чекає новий виток розвитку кросплатформенних рішень на Swift.

🇺🇦 iOSDevUA
💡Огляд змін у concurrency в Swift 6.2

Багато нових підходів до паралелізму в Swift 6.2 суттєво відрізняються від того, до чого розробники звикли під час роботи з GCD.

Донні Волш спробував розібратися в цих змінах і у своєму матеріалі фокусується на двох важливих моментах:

1️⃣ Новий флаг nonisolated(nonsending) — для більш точного контролю над ізоляцією в акторах.
2️⃣ Запуск коду в MainActor за замовчуванням за допомогою параметра defaultIsolation.

Додатково він посилається на офіційний документ від Apple:
📄 Swift Evolution — Approachable Concurrency

Матеріал буде корисний тим, хто вже працює з async/await і хоче залишатися на гребені хвилі останніх оновлень у Swift.

🇺🇦 iOSDevUA
❗️Xcode 26 — інтеграція з ChatGPT: тепер «вайб-кодинг» уже не жарт

У Xcode 26 зʼявилась вбудована підтримка ChatGPT — розробники можуть використовувати як локальні моделі, так і API‑ключі сторонніх провайдерів.

І найцікавіше:
🔹 Доступ до AI‑асистента прямо в Xcode — без обов’язкової реєстрації
🔹 Користувачі з підпискою можуть підключити свій акаунт і отримати більше запитів
🔹 Інструменти інтегровані безпосередньо в редактор і доступні в будь-якому місці коду

😎 Нарешті справжнє amazing!

Нові можливості дають змогу:
— автоматично створювати Preview
— налаштовувати Playground
виправляти баги через дії, запропоновані AI
— і навіть обробляти довільні промпти прямо в IDE

Майбутнє розробки — вже в редакторі.

🇺🇦 iOSDevUA
👍21
⚡️ Усі нові фреймворки в iOS 26 — короткий огляд

Зібрав в одному пості всі нові фреймворки, анонсовані Apple разом з iOS 26 — коротко про кожен із них:

🛠 AlarmKit — створення кастомних будильників і таймерів у застосунках.

🛠 AVRouting — підтримка зовнішніх пристроїв і протоколів у AVRoutePickerView.

🛠 DeclaredAgeRange — запит вікового діапазону в застосунках.

🛠 EnergyKit — моніторинг і оптимізація споживання електроенергії (поки що лише для США).

🛠 FinanceKitUI — готові UI‑компоненти для роботи з FinanceKit та FinanceStore.

🛠 FoundationModels — доступ до великої мовної моделі Apple, яка лежить в основі Apple Intelligence.

🛠 GameSave — зберігання і синхронізація ігрового прогресу через iCloud.

🛠 GeoToolbox — створення геооб’єктів (PlaceDescriptor) і взаємодія з Apple Maps та сторонніми картографічними API.

🛠 IdentityDocumentServices — обмін цифровими документами через API мобільних посвідчень.

🛠 IdentityDocumentServicesUI — інтерфейсні компоненти для роботи з цифровими документами.

🛠 ImmersiveMediaSupport — створення кастомних процесів для обробки Apple Immersive Video (AIV).

🛠 PermissionKit — керування обліковими правилами в iCloud.

🛠 RelevanceKit — контекстна персоналізація вмісту (в т.ч. для покращення видимості на Apple Watch).

🛠 TelephonyMessagingKit — надсилання й отримання повідомлень через стільникову мережу.

🛠 TouchControls — сенсорне керування для ігор на базі Metal.

🛠 VisualIntelligence — підвищення видимості вмісту застосунку в результатах пошуку.

🛠 WiFiAware — безпечне виявлення і взаємодія між пристроями поблизу без потреби в інтернеті або Wi-Fi-точці.

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

📖 Для зручного перегляду, фільтрації й пошуку фреймворків рекомендую цей ресурс:
👉 marcoeidinger.github.io/appleframeworks

🇺🇦 iOSDevUA
4🔥2
@Observable в UIKit — тепер і без SwiftUI!

У новій iOS UIKit навчився автоматично відстежувати зміни в даних і оновлювати інтерфейс за допомогою макроса @Observable. Це означає, що реактивна логіка тепер доступна навіть без SwiftUI.
import Observation

@Observable
class Counter {
var count: Int = 0
}

У самому UIViewController значення можна зчитувати, наприклад, у viewWillLayoutSubviews, і UIKit самостійно стежитиме за оновленням:
class TestViewController: UIViewController {
let counter = Counter()
private let label = UILabel()

override func viewWillLayoutSubviews() {
super.viewWillLayoutSubviews()
label.text = "Read example for iOS Dev: \(counter.count)"
}

@objc private func incrementCounter() {
counter.count += 1
}
}

🧠 Це працює завдяки тому, що counter.count прочитується в layout-фазі. UIKit під капотом підключає трекінг автоматично.

📺 Тут є ще приклад з використанням у UICollectionViewCell

Підтримка навіть з iOS 18

Хоча фіча вмикається автоматично в iOS 26, її можна активувати і в iOS 18+, додавши до Info.plist ключ:
UIObservationTrackingEnabled = YES

🔗 Докладніше — у відео

Інші новинки:

🛠 З’явився новий метод updateProperties() — викликається перед layoutSubviews, але дозволяє інвалідовувати властивості окремо від layout’у. Працює і з UIView, і з UIViewController.

🔴 Тепер офіційно можна додавати badge на UIBarButtonItem, без сторонніх рішень.

📣 І важливе попередження:
Починаючи з наступного після iOS 26 релізу, усі нові UIKit‑застосунки, зібрані з останнім SDK, повинні використовувати UIScene. Без цього застосунок не запуститься.

📺 Повна сесія доступна тут:
Переглянути на Apple Developer

🇺🇦 iOSDevUA
👍5🔥1
💡Що під капотом у новому дизайні UITabBar?

🤩 Seb Vidal вже встиг заглянути всередину і зʼясував, що для реалізації нового ефекту в UITabBar Apple використовує приватне вью під назвою _UILiquidLensView.

Цей компонент складається з безлічі вкладених subviews, серед яких помітні знайомі елементи, як-от:
🔸 _UIPortalView
🔸 CABackdropLayer
🔸 CAFilter

Зокрема, для досягнення ефекту “скляної лінзи” Apple, ймовірно, використовує кілька CAFilter, серед яких — opacityPair і displacementMap, що відповідають за плавні візуальні викривлення та глибину.

Новий дизайн — це не просто UI-освіження, а ще й складна система графічних шарів, яка активно задіює потужності Core Animation.

🇺🇦 iOSDevUA
5
This media is not supported in your browser
VIEW IN TELEGRAM
💡Автоматична генерація Playground у Xcode 26

🤩 У Xcode 26 тепер можна автоматично створювати Playground для перегляду й тестування ваших компонентів — причому навіть тестові дані підставляються автоматично.

Щоб спробувати це самостійно, вам знадобиться бета-версія macOS Tahoe.
Чудовий інструмент для швидкої перевірки UI та логіки без зайвого кодування!

🇺🇦 iOSDevUA
5
⭐️ Apple готує “Обговорення” — новий формат живої комунікації з розробниками

Пол Хадсон поділився скріншотом із закритого демо, де видно нову функцію — “Discussions”, яка дозволить розробникам спілкуватися з командами Apple в реальному часі. І це справжній крок до відкритості.

На тлі останніх змін у спільноті Swift — появи нових робочих груп, як-от Testing Workgroup, та Ecosystem Steering Group, — ця ініціатива виглядає дуже логічно.

Особливо тішить, що ці зміни йдуть поруч з активним розвитком опенсорс‑частини екосистеми (майбутнє Foundation).

Очікуємо більше прозорості, живого зворотного зв’язку та справжнього діалогу між Apple і розробниками.

🇺🇦 iOSDevUA
3
💡Тепер при завантаженні білда в App Store можна повторно використати той самий номер — навіть після помилки!

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

Також з’явилася можливість переглядати детальні повідомлення про помилки прямо на сайті App Store Connect.

📺 У тій самій сесії WWDC є ще багато цікавого:

➡️ Фонові ресурси від Apple (до 200 ГБ) — можна використовувати apple-hosted background assets
➡️ Зворотний зв’язок у TestFlight — користувачі можуть надсилати фідбек напряму, сповіщення доступні в App Store Connect на iOS
➡️ Теги в App Store — генеруються автоматично, але можна буде керувати ними вручну, розробник може вмикати/вимикати
➡️ Offer Codes — тепер доступні для всіх типів вбудованих покупок, до 10 активних на тип і до 1 000 000 кодів на застосунок
➡️ Автоматичний Summary за відгуками — буде видно на сторінці застосунку, оновлюється регулярно. Розробник може подати заперечення у разі незгоди.
➡️ Більше 100 нових аналітичних метрик — новий дизайн, розширений функціонал для моніторингу підписок і монетизації.

🔎 Реліз справді насичений — рекомендую подивитись всю сесію!
🎥 Дивитись на developer.apple.com

🇺🇦 iOSDevUA
🔥1
💡Кілька слів про новий фреймворк Containerization від Apple

По-перше, цей реліз — не для iOS-розробників.

Apple представила нову утиліту container, яка дозволяє створювати та запускати Linux-контейнери — по суті, це легкі віртуальні машини.

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

Це справді стане в пригоді тим, хто раніше змушений був розгортати повноцінну Linux‑віртуалку — альтернатив просто не було
🔗 Коментарі спільноти — simonwillison.net

📺 Якщо не працюєте з інфраструктурою або Linux‑оточенням — сесію можна сміливо пропустити

P.S. Хочеться вірити, що наші підписники вже можуть дозволити собі розширену підписку на AI‑асистента, щоб розібратись у подібних речах 😉
(Або як завжди — просто видалять пост 😄)

🇺🇦 iOSDevUA
💡Використання памʼяті у Swift 6.2 та нові можливості для підвищення продуктивності

📺 Одна з найпрактичніших сесій на WWDC25 — переглянути відео. У ній детально розглядаються інструменти, техніки та нові можливості Swift для ефективної роботи з памʼяттю.

Ось ключові моменти:

➡️ QOI-парсер
Приклад створення парсера для формату зображень QOI (Quite OK Image), який запропонував Домінік Шаблевскі — надзвичайно простий і швидкий для обробки.

➡️ Профілювання памʼяті
Робота з Allocations і Time Profiler показує, як аналізувати розподіл памʼяті та знаходити “вузькі місця” у продуктивності.

➡️ Стек проти купи + InlineArray
Огляд тут — новий тип InlineArray дозволяє зберігати масиви без алокації в купі, покращуючи кешування та швидкість.

➡️ Небезпечні вказівники (unsafe pointers)
Детальний розбір — у чому їхня потужність і які ризики вони приховують.

➡️ Новий тип Span у Swift 6.2
Огляд — Span дозволяє працювати з послідовностями в памʼяті більш безпечно, ніж через вказівники. Це суттєво спрощує оптимізовану низькорівневу роботу без втрати безпеки.



🎉 One more thing:
Apple виклала у відкритий доступ Swift Binary Parsing — бібліотеку для створення швидких і безпечних бінарних парсерів на Swift.

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

🇺🇦 iOSDevUA
🔥2
💡Новий інструмент для оптимізації SwiftUI-застосунків — WWDC25

На WWDC25 Джед з команди Instruments та Стівен з Apple Music представили оновлений підхід до профілювання SwiftUI-проєктів, який дозволяє ефективно знаходити та усувати вузькі місця в продуктивності.

🛠 За допомогою нових інструментів можна легко виявити проблеми на кшталт:
— зайвих або тривалих оновлень в’юшок
— анімацій, які лагують
— затримок при скролінгу
— підвисань або навіть крашів

📺 У цій сесії на прикладі реального застосунку демонструється, як використовувати нові можливості SwiftUI Instrument, а також Time Profiler, Hangs і Hitches, щоб покращити стабільність та швидкодію.

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


📚 Додаткові ресурси:
• Analyze hangs with Instruments (WWDC23)
Optimize CPU performance (WWDC25)

Цей набір точно варто мати в арсеналі кожного SwiftUI-розробника.

🇺🇦 iOSDevUA
💡Міграція з XCTest на Swift Testing за допомогою Claude Code

Claude Code — популярний AI-агент для розробників від Anthropic.
Пітер Штайнберґер, якого багато хто пам’ятає за його глибоку інженерну експертизу в PSPDFKit, поділився досвідом, як перевів понад 700 юніт‑тестів зі старого XCTest на нову систему Swift Testing.

Перша спроба «в лоб» була не надто вдалою, але після того, як він підготував чіткі гайдлайни для агента — усе запрацювало чудово.

Реальний приклад того, як AI може допомогти з технічною міграцією навіть у складних кодових базах.

🇺🇦 iOSDevUA
1
💡Новини зі Swift Package Index

По-перше, найбільшому реєстру Swift‑пакетів виповнилося 5 років!
У блозі розповідають, як екосистема виросла з 2 500 до 9 000 бібліотек, і що це лише початок.

По-друге, до переліку платформ, сумісність з якими тестується автоматично, додали Wasm і Android.
Офіційне оголошення

Зі згаданих 9 000 пакетів:
🔹 19% вже підтримують Wasm
🔹 28% сумісні з Android

Swift продовжує активно виходити за межі Apple-платформ — і це чудова новина для розробників, які хочуть писати кросплатформено.

🇺🇦 iOSDevUA