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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Про макрос #playground з останнього WWDC — новий спосіб запускати код у Canvas

📖 У статті пояснюється, як працює новий макрос #playground, представлений на WWDC.

Це сучасна альтернатива старим Playground-файлам:
— дозволяє запускати фрагменти коду прямо в Xcode Canvas
— працює не лише з UI, а й із будь-якою логікою
— ідеально підходить для швидкого тестування функцій, форматтерів, алгоритмів тощо

Макрос працює напряму у Swift-файлі й не потребує окремого проєкту чи Playgrounds-оточення.
Зручний, мінімалістичний і повністю інтегрований у Xcode 26. Рекомендується для всіх, хто часто експериментує з кодом.

🇺🇦 iOSDevUA
🔥4
💡Що варто знати про Foundation Model від Apple

Головне, що потрібно розуміти про локальну LLM, яку Apple інтегрувала в iOS, — вона компактна й обмежена за сучасними мірками.
🔹 Об’єм контекстного вікна — лише 4096 токенів.
Тобто не варто сприймати її як “похідну версію ChatGPT у кишені”.

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

Ідеально підходить для використання прямо на пристрої — швидко, приватно й без інтернету. Але не замінить хмарні LLM у складних сценаріях.

🇺🇦 iOSDevUA
💡Трохи бенчмарків AI‑асистентів: хто краще виправляє баги в iOS?

У цьому матеріалі порівнюють, як популярні AI‑інструменти справляються з діагностикою та виправленням крашів у мобільних застосунках.

Учасники тесту:
🛠 SmartResolve
🛠 Copilot
🛠 Claude Code
🛠 Cursor

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

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

🇺🇦 iOSDevUA
💡Як Claude допоміг переписати легасі-застосунок на Swift

У цьому матеріалі автор ділиться досвідом, як за допомогою Claude Code (AI-агент від Anthropic) переписав 12‑річний застосунок на Objective‑C, створений ще під iOS 6, — на сучасний Swift + SwiftUI. І все це — лише за $20!

Стаття написана у форматі щоденника: покроково, із рефлексією, технічними нюансами, спробами, помилками й висновками.
🔍 Вийшло дуже практично й чесно — особливо корисно тим, хто хоче спробувати використовувати AI для міграції легасі-коду.

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

🇺🇦 iOSDevUA
💡Досвід AI-скептика: перший серйозний контакт із LLM

Це — особистий погляд автора, який тривалий час скептично ставився до ШІ-асистентів і великих мовних моделей. У статті він ділиться своїм першим “повноцінним” досвідом взаємодії з AI — без гучних висновків, просто чесне занурення в тему.

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

👍 Неформально, але щиро — хороша нагода подивитись на тему з іншого кута.

🇺🇦 iOSDevUA
💡Типобезпечна й зручна обробка помилок у Swift 6

У Swift 6 зʼявилась нова потужна можливість — typed throws

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

📖 У цьому дописі показано:
— приклад створення власного протоколу для помилок
— два практичні кейси використання throws(ErrorType) у Swift 6

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

🇺🇦 iOSDevUA
🎬Перші враження від «вайб-кодингу» в Xcode 26 — варто спробувати?

У Xcode 26 зʼявилась нова функція, яку жартома (а тепер і всерйоз) називають вайб-кодингом — інтеграція AI-помічника безпосередньо в редактор, із контекстною підтримкою та підказками в режимі реального часу.

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

👍 Усе з прикладами й відео — можна подивитися й оцінити самостійно.

🇺🇦 iOSDevUA
💡Reaper — фреймворк для виявлення невикористаного коду під час рантайму

Reaper — це опенсорсний інструмент від Emerge Tools (також відомих за FaultOrdering), який допомагає знайти й видалити непотрібний код, що більше не використовується в застосунку.

📉 Один із прикладів — Duolingo, де після запуску Reaper змогли скоротити кодову базу на 1% або понад 10 000 рядків
🔗 Офіційний кейс

Що підтримується:

усі класи на Objective-C
більшість не-генерик класів Swift
частково — структури та enum-и Swift

🔍 Принцип роботи:
1. Reaper відстежує, які типи дійсно викликаються під час виконання застосунку.
2. Скрипти з репозиторію на GitHub допомагають зібрати повний список усіх типів у проєкті.
3. Порівнюючи обидва списки, можна виявити мертвий код, який не використовувався жодного разу.

📊 Про вплив на продуктивність читайте у документації — загальне навантаження мінімальне, а розмір додатку збільшується менш ніж на 20 КБ.

📖 Повна стаття з прикладами використання Reaper — для iOS і Android.

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

🇺🇦 iOSDevUA
2👍1
💡Досвід роботи зі Swift Package Registry — як розгорнути власний реєстр у Artifactory

Swift Package Registry — це функція в SwiftPM, яка дозволяє підняти власний сервер для розповсюдження Swift‑пакетів.
🔗 Офіційна документація

Це особливо корисно, якщо:

👉 Ви хочете прискорити CI/CD-процеси, уникнувши постійного клонування Git-репозиторіїв
👉 Вас хвилюють supply chain атаки і ви хочете мати контроль над залежностями
👉 Ви не хочете залежати від зовнішніх пакетів, які можуть раптом зникнути або видалитися

У статті докладно описано, як автор налаштував власний реєстр Swift‑пакетів на базі JFrog Artifactory, які виникли труднощі та як їх вдалося вирішити.

🛠 Чудовий матеріал для команд, які прагнуть більшої стабільності, безпеки й автономії у своїй інфраструктурі.

🇺🇦 iOSDevUA
💡GM Shaders — добірка матеріалів для вивчення шейдерів: від новачка до профі

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

🔹 На сайті зібрані:
основи математики для шейдерів
приклади функцій, як-от tanh
типові помилки при роботі з шейдерами — і як їх уникати

🧩 Матеріали структуровані за рівнем підготовки:
🔰 Для новачків
⚙️ Для тих, хто вже трохи в темі
🧠 І для досвідчених розробників

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

🇺🇦 iOSDevUA
🔥5
🖥 Історія системних налаштувань Mac — інтерактивний сайт про Control Panel та еволюцію інтерфейсів

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

💡 Знали, що існує сайт Infinite Mac, де зібрано велику колекцію історичних версій macOS та NeXT, доступних прямо в браузері?

На цьому тижні вийшла глибока стаття про Control Panel — з прикладами, скріншотами й інтерактивною візуалізацією, яка дозволяє відстежити всю еволюцію системних налаштувань — від перших ідей до 2004 року.

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

📖 Весь огляд — тут: Aresluna — Frame of Preference
Чудова мандрівка для тих, хто цінує глибину у деталях інтерфейсного дизайну.

🇺🇦 iOSDevUA
🔥1
💡Коротко про Icon Composer — новий інструмент у Xcode 26 з WWDC

🆕 Разом із релізом Xcode 26 Apple представила Icon Composer — інструмент, що дозволяє швидко створювати іконки за новою дизайн-системою.

📖 У цiй статті пояснюється, як працює новий формат, як додати такі іконки до проєкту, та які переваги він дає розробникам.

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

Особливо корисно для тих, хто хоче бути в тренді з оновленим гайдлайном Apple для iOS 26.

🇺🇦 iOSDevUA
2
💡Сумісність Swift і C++ на практиці: досвід використання та інтеграції

З виходом Swift 5.9 мова отримала повноцінну підтримку взаємодії з C++, що дало змогу напряму використовувати API, написані на C++, зі Swift — і навпаки.

📖 У детальному гайді Artur Gruchała показує, як викликати C++‑функції, обгортати класи та передавати складні типи даних між Swift і C++. Автор наводить реальні приклади, які чудово підійдуть для тих, хто хоче об’єднати обидві мови в одному проєкті.

Також у статті:

🔹 Налаштування збірки: як працювати з картами модулів, заголовками та SwiftPM/Xcode
🔹 Поради щодо безпечного управління пам’яттю
🔹 Робота з обробкою помилок у змішаних проектах
🔹 Відмінності між прямою інтеграцією та через bridge wrappers

📚 А повну документацію з усіма можливостями C++ interoperability можна знайти на офіційному сайті Swift

Це корисне джерело для розробників, які хочуть використовувати Swift у проєктах з існуючою кодовою базою на C++.

🇺🇦 iOSDevUA
3
💡Як підключити Google Gemini до Xcode — інструкція з обхідними рішеннями

У Xcode 26 зʼявилась підтримка сторонніх LLM — тепер ви можете підключити будь-яку AI‑модель, якщо маєте API‑ключ. Але з Google Gemini є нюанс: їхня URL-схема не відповідає очікуванням Xcode, через що інтеграція “з коробки” не працює.

І це прикро, адже моделі Gemini мають низку переваг:
🔹 величезне вікно контексту
🔹 низька вартість запитів
🔹 висока точність у розробницьких бенчмарках

🛠 У статті показано, як за допомогою кількох обхідних рішень (хитрих костилів) усе ж таки змусити Xcode працювати з Gemini — і використовувати ці моделі як асистента в IDE.

Корисно для тих, хто хоче отримати максимум від AI‑помічників у Xcode без обмеження лише на ChatGPT.

🇺🇦 iOSDevUA
1
💡Знайомимось із Container — новим інструментом для запуску Linux-контейнерів на macOS

Один із ключових анонсів WWDC — це Container — інструмент від Apple, що дозволяє збирати Linux-контейнери прямо на macOS без сторонніх рішень.

У статті покроково розбирається:
— як зібрати контейнер з Vapor‑застосунком
— як залити його в віддалений реєстр
— і як швидко задеплоїти у production

🛠 Ідеальне рішення для тих, хто хоче запускати серверні Swift-застосунки в ізольованому середовищі, не виходячи з екосистеми Apple.

Відмінна точка входу у сучасний DevOps для Swift-розробників.

🇺🇦 iOSDevUA
🔥1
💡Що нового в тестуванні у Swift 6.2 — детальний огляд

Продовжуємо серію глибоких розборів усіх новинок у бета-релізах Xcode, iOS та Swift — цього разу фокус на Swift Testing, XCTest і автоматизоване тестування.

У статті висвітлено:

🔹 що змінилося в інфраструктурі тестів у Swift 6.2
🔹 нові API та можливості, пов’язані з автотестами
🔹 майбутнє XCTest і напрямок розвитку Swift Testing

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

🇺🇦 iOSDevUA
💡Approachable Concurrency в Xcode 26 — що це і навіщо воно вам

У Xcode 26 зʼявилась можливість увімкнути набір функцій із Swift 6.2 під спільною назвою Approachable Concurrency — тобто “доступна/зрозуміла конкурентність”.

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

🧠 Коротко: це ініціатива, яка робить паралелізм у Swift безпечнішим, передбачуванішим і легшим у розумінні — без потреби глибоко занурюватися в актори та низькорівневу синхронізацію.

Чудове введення для тих, хто хоче поступово освоїти сучасну конкурентність у Swift.

🇺🇦 iOSDevUA
1
💡Чому Gmail важить 700 МБ — розбір від Emerge Tools

За останній рік застосунок Gmail додав ще +100 МБ і тепер важить близько 700 МБ.
На перший погляд це дивно — адже у застосунку, здається, лише кілька базових екранів.

Команда Emerge Tools вирішила розібратись, звідки береться така вага, і показала, що саме «роздуває» застосунок:
📦 сторонні SDK
🎨 важкі ассети
🧱 дубльовані залежності
🛠 невидимі на перший погляд фреймворки

Це ще раз доводить, що навіть прості ззовні застосунки можуть приховувати складну й об’ємну архітектуру всередині.
Корисне нагадування для всіх розробників — слідкуйте за розміром вашого застосунку!

🇺🇦 iOSDevUA
🔥Apple презентувала новий Retention Messaging API — інструмент для утримання підписників

Apple представила Retention Messaging API — новий інструмент, який дозволяє розробникам впливати на рішення користувача в момент, коли той переглядає підписку та може її скасувати.

🔧 Це особливо корисно як для інді‑розробників, так і для компаній, чий бізнес повністю тримається на підписках.

Тепер можна кастомізувати, яке повідомлення показати, залежно від:
— продукту
— мови/регіону
— ситуації користувача

Доступні 4 формати повідомлень:
1. Текст
2. Текст + зображення
3. Пропозиція перейти на інший план (текст + нова підписка)
4. Промо‑офер з текстом та знижкою або альтернативним рівнем підписки

📖 Детальна документація вже доступна за посиланням:
👉 developer.apple.com/documentation/retentionmessaging

Це перший крок до більш гнучкого керування втратою користувачів — прямо в межах екосистеми Apple.

🇺🇦 iOSDevUA
👍3🔥1
💡Оновлений UIKit для iOS 26 — вже доступний у Figma та Sketch

Apple виклала свіжі дизайн-ресурси для iOS та iPadOS 26 — з актуальними компонентами, стилями та гайдлайнами.

🛠 UIKit доступний для Figma та Sketch — ідеально підходить для створення макетів із урахуванням нових системних патернів, включаючи Liquid Glass та оновлену типографіку.

Обов’язково до перегляду для дизайнерів і розробників, які хочуть тримати інтерфейси в актуальному вигляді під iOS 26.

🇺🇦 iOSDevUA
👍1🔥1
💡Нерозкрита можливість: як одночасно зробити скруглення і тінь у UIKit

У UIKit це — відома проблема: неможливо легко поєднати скруглені кути та тінь без трюків. Але, як виявилось, є один секретний спосіб, хоч і з недокументованого API (тобто використовувати — на власний ризик).

🔍 CALayer має приховані властивості, які дозволяють керувати так званим “rim” — обводкою (але не border, яка малюється всередині в’ю). Це зовнішній ефект, який виглядає як м’яка тінь або світловий контур.
view.layer.setValue(true, forKey: "softRim")
view.layer.setValue(20, forKey: "rimWidth")
view.layer.setValue(UIColor.yellow.cgColor, forKey: "rimColor")
view.layer.setValue(1.0, forKey: "rimOpacity")

На відміну від стандартного border, цей метод дозволяє:
— розміщувати ефект поза межами вʼю
— поєднувати скруглення + тінь без артефактів
— змінювати ширину, колір і прозорість обводки

⚠️ Зверніть увагу: властивість не документована, тому існує ризик, що вона перестане працювати в майбутніх версіях iOS. Але якщо потрібен акуратний результат уже зараз — цей метод точно вартий уваги.

🇺🇦 iOSDevUA
👍4