🇺🇦 iOS Dev UA - спільнота iOS розробників
Open in Telegram
Перша україномовна спільнота iOS розробників 🇺🇦 👨💻Цікаві матеріали зі світу розробки для продуктів Apple. Статті по розробці на Swift та SwiftUI. Огляд нових технологій в розробці від Apple. чат: @iOSDevsUAChat Ідеї та пропозиції: @SergeyZhuravel
Show more383
Subscribers
-124 hours
-17 days
+830 days
Posts Archive
💡Як дати Claude Code доступ для роботи зі SwiftUI
Claude Code — один із найпотужніших AI-агентів для програмування на сьогодні. Його інтерфейс — мінімалістична консольна обгортка, що напряму спілкується з моделями Anthropic і підтримує MCP та інші CLI‑інструменти.
💡 Але агент стає справді ефективним, коли має доступ не лише до коду, а й до результатів його виконання.
У статті показано, як використання снепшот‑тестів (snapshot tests) дозволяє Claude Code:
— бачити, як виглядає SwiftUI‑інтерфейс
— оцінювати візуальний результат
— і ітеративно вдосконалювати UI до бажаного вигляду
Це дає змогу агенту не просто писати код за промптом, а працювати з візуальним контекстом — тобто “бачити”, як змінюється інтерфейс, і краще адаптувати його до ваших потреб.
🇺🇦 iOSDevUA
😳 Макбук як ваги — незвичайний macOS-застосунок на GitHub
Не зміг пройти повз цей репозиторій!
TrackWeight — це застосунок, який перетворює MacBook у справжні ваги, використовуючи датчики тиску Force Touch.
Під капотом — бібліотека OpenMultitouchSupport від Такуто Накамури, що дозволяє отримувати приватний доступ до всіх подій трекпада та миші на macOS.
💡 Чому це працює: трекпад MacBook — це не звичайна сенсорна панель, а датчик сили натиску з тактильним зворотним зв’язком, тому ви відчуваєте “клік”, хоча він не механічний. І саме це дає змогу відслідковувати навіть зміну ваги.
🛠 GitHub-репозиторій — вже понад 5 000 зірочок
Саме заради таких експериментів ми й любимо розробку, правда ж? 🚀
🇺🇦 iOSDevUA
💡Як загорнути Haskell-бібліотеку у Swift-фреймворк (і чому це не так складно, як здається)
Продовжуючи тему взаємодії між мовами, цього разу — дещо незвичний кейс: інтеграція Haskell у Swift‑застосунок. Так, ви не помилились 🙂
У статті крок за кроком пояснюється, як:
🔹 зібрати Haskell-бібліотеку
🔹 обгорнути її у
.xcframework
🔹 підключити до Swift‑проєкту
🔹 викликати функції через C-інтерфейс
І все це — доволі просто, без великих жертв із боку продуктивності чи стабільності.
Ідеальний матеріал для ентузіастів, які хочуть поєднати функціональну чистоту Haskell з мобільною розробкою на Swift.
🇺🇦 iOSDevUA💡Нерозкрита можливість: як одночасно зробити скруглення і тінь у 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💡Оновлений UIKit для iOS 26 — вже доступний у Figma та Sketch
Apple виклала свіжі дизайн-ресурси для iOS та iPadOS 26 — з актуальними компонентами, стилями та гайдлайнами.
🛠 UIKit доступний для Figma та Sketch — ідеально підходить для створення макетів із урахуванням нових системних патернів, включаючи Liquid Glass та оновлену типографіку.
Обов’язково до перегляду для дизайнерів і розробників, які хочуть тримати інтерфейси в актуальному вигляді під iOS 26.
🇺🇦 iOSDevUA
🔥Apple презентувала новий Retention Messaging API — інструмент для утримання підписників
Apple представила Retention Messaging API — новий інструмент, який дозволяє розробникам впливати на рішення користувача в момент, коли той переглядає підписку та може її скасувати.
🔧 Це особливо корисно як для інді‑розробників, так і для компаній, чий бізнес повністю тримається на підписках.
Тепер можна кастомізувати, яке повідомлення показати, залежно від:
— продукту
— мови/регіону
— ситуації користувача
Доступні 4 формати повідомлень:
1. Текст
2. Текст + зображення
3. Пропозиція перейти на інший план (текст + нова підписка)
4. Промо‑офер з текстом та знижкою або альтернативним рівнем підписки
📖 Детальна документація вже доступна за посиланням:
👉 developer.apple.com/documentation/retentionmessaging
Це перший крок до більш гнучкого керування втратою користувачів — прямо в межах екосистеми Apple.
🇺🇦 iOSDevUA
💡Чому Gmail важить 700 МБ — розбір від Emerge Tools
За останній рік застосунок Gmail додав ще +100 МБ і тепер важить близько 700 МБ.
На перший погляд це дивно — адже у застосунку, здається, лише кілька базових екранів.
Команда Emerge Tools вирішила розібратись, звідки береться така вага, і показала, що саме «роздуває» застосунок:
📦 сторонні SDK
🎨 важкі ассети
🧱 дубльовані залежності
🛠 невидимі на перший погляд фреймворки
Це ще раз доводить, що навіть прості ззовні застосунки можуть приховувати складну й об’ємну архітектуру всередині.
Корисне нагадування для всіх розробників — слідкуйте за розміром вашого застосунку!
🇺🇦 iOSDevUA
💡Approachable Concurrency в Xcode 26 — що це і навіщо воно вам
У Xcode 26 зʼявилась можливість увімкнути набір функцій із Swift 6.2 під спільною назвою Approachable Concurrency — тобто “доступна/зрозуміла конкурентність”.
У статті детально пояснюється, що входить до цього набору, чому це важливо, і як це полегшує життя розробникам, які тільки починають працювати з
async/await у Swift.
🧠 Коротко: це ініціатива, яка робить паралелізм у Swift безпечнішим, передбачуванішим і легшим у розумінні — без потреби глибоко занурюватися в актори та низькорівневу синхронізацію.
Чудове введення для тих, хто хоче поступово освоїти сучасну конкурентність у Swift.
🇺🇦 iOSDevUA💡Що нового в тестуванні у Swift 6.2 — детальний огляд
Продовжуємо серію глибоких розборів усіх новинок у бета-релізах Xcode, iOS та Swift — цього разу фокус на Swift Testing, XCTest і автоматизоване тестування.
У статті висвітлено:
🔹 що змінилося в інфраструктурі тестів у Swift 6.2
🔹 нові API та можливості, пов’язані з автотестами
🔹 майбутнє XCTest і напрямок розвитку Swift Testing
Матеріал буде особливо корисним для тих, хто регулярно працює з тестами або планує міграцію на новий підхід у Swift Testing.
🇺🇦 iOSDevUA
💡Знайомимось із Container — новим інструментом для запуску Linux-контейнерів на macOS
Один із ключових анонсів WWDC — це Container — інструмент від Apple, що дозволяє збирати Linux-контейнери прямо на macOS без сторонніх рішень.
У статті покроково розбирається:
— як зібрати контейнер з Vapor‑застосунком
— як залити його в віддалений реєстр
— і як швидко задеплоїти у production
🛠 Ідеальне рішення для тих, хто хоче запускати серверні Swift-застосунки в ізольованому середовищі, не виходячи з екосистеми Apple.
Відмінна точка входу у сучасний DevOps для Swift-розробників.
🇺🇦 iOSDevUA
💡Як підключити Google Gemini до Xcode — інструкція з обхідними рішеннями
У Xcode 26 зʼявилась підтримка сторонніх LLM — тепер ви можете підключити будь-яку AI‑модель, якщо маєте API‑ключ. Але з Google Gemini є нюанс: їхня URL-схема не відповідає очікуванням Xcode, через що інтеграція “з коробки” не працює.
І це прикро, адже моделі Gemini мають низку переваг:
🔹 величезне вікно контексту
🔹 низька вартість запитів
🔹 висока точність у розробницьких бенчмарках
🛠 У статті показано, як за допомогою кількох обхідних рішень (хитрих костилів) усе ж таки змусити Xcode працювати з Gemini — і використовувати ці моделі як асистента в IDE.
Корисно для тих, хто хоче отримати максимум від AI‑помічників у Xcode без обмеження лише на ChatGPT.
🇺🇦 iOSDevUA
💡Сумісність 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
💡Коротко про Icon Composer — новий інструмент у Xcode 26 з WWDC
🆕 Разом із релізом Xcode 26 Apple представила Icon Composer — інструмент, що дозволяє швидко створювати іконки за новою дизайн-системою.
📖 У цiй статті пояснюється, як працює новий формат, як додати такі іконки до проєкту, та які переваги він дає розробникам.
Це чудовий спосіб інтегрувати візуально узгоджені, масштабовані іконки в застосунки — без ручної підготовки десятків розмірів.
Особливо корисно для тих, хто хоче бути в тренді з оновленим гайдлайном Apple для iOS 26.
🇺🇦 iOSDevUA
🖥 Історія системних налаштувань Mac — інтерактивний сайт про Control Panel та еволюцію інтерфейсів
На мій погляд, дуже цікаво простежити, як формувались знайомі нам сьогодні UI-рішення, як вони виглядали на початку й як змінювались з часом.
💡 Знали, що існує сайт Infinite Mac, де зібрано велику колекцію історичних версій macOS та NeXT, доступних прямо в браузері?
На цьому тижні вийшла глибока стаття про Control Panel — з прикладами, скріншотами й інтерактивною візуалізацією, яка дозволяє відстежити всю еволюцію системних налаштувань — від перших ідей до 2004 року.
Особливо рекомендую до перегляду дизайнерам, але не тільки.
Це історія про те, як усе починалося під тиском технічних обмежень, за умов відсутності багатозадачності, і ще й потрібно було навчити користувача з цим працювати.
📖 Весь огляд — тут: Aresluna — Frame of Preference
Чудова мандрівка для тих, хто цінує глибину у деталях інтерфейсного дизайну.
🇺🇦 iOSDevUA
💡GM Shaders — добірка матеріалів для вивчення шейдерів: від новачка до профі
Я люблю занурюватись у складні теми — алгоритми, анімації, неочевидні техніки — і часто ділюсь у каналі цікавими прикладами.
Цього разу натрапив на дуже корисний ресурс для всіх, хто хоче вивчити шейдери або прокачати поточні знання.
🔹 На сайті зібрані:
— основи математики для шейдерів
— приклади функцій, як-от tanh
— типові помилки при роботі з шейдерами — і як їх уникати
🧩 Матеріали структуровані за рівнем підготовки:
🔰 Для новачків
⚙️ Для тих, хто вже трохи в темі
🧠 І для досвідчених розробників
Ідеально підходить для самонавчання або як база перед створенням кастомної графіки у SwiftUI, Metal, Unity чи WebGL.
🇺🇦 iOSDevUA
💡Досвід роботи зі Swift Package Registry — як розгорнути власний реєстр у Artifactory
Swift Package Registry — це функція в SwiftPM, яка дозволяє підняти власний сервер для розповсюдження Swift‑пакетів.
🔗 Офіційна документація
Це особливо корисно, якщо:
👉 Ви хочете прискорити CI/CD-процеси, уникнувши постійного клонування Git-репозиторіїв
👉 Вас хвилюють supply chain атаки і ви хочете мати контроль над залежностями
👉 Ви не хочете залежати від зовнішніх пакетів, які можуть раптом зникнути або видалитися
У статті докладно описано, як автор налаштував власний реєстр Swift‑пакетів на базі JFrog Artifactory, які виникли труднощі та як їх вдалося вирішити.
🛠 Чудовий матеріал для команд, які прагнуть більшої стабільності, безпеки й автономії у своїй інфраструктурі.
🇺🇦 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
🎬Перші враження від «вайб-кодингу» в Xcode 26 — варто спробувати?
У Xcode 26 зʼявилась нова функція, яку жартома (а тепер і всерйоз) називають вайб-кодингом — інтеграція AI-помічника безпосередньо в редактор, із контекстною підтримкою та підказками в режимі реального часу.
Автор статті ділиться першими враженнями, демонструє, як усе працює, та пропонує власні висновки:
чи справді це корисно, наскільки розумно працює AI і чи варто переходити на такий формат прямо зараз.
👍 Усе з прикладами й відео — можна подивитися й оцінити самостійно.
🇺🇦 iOSDevUA
💡Типобезпечна й зручна обробка помилок у Swift 6
У Swift 6 зʼявилась нова потужна можливість — typed throws
Завдяки їй можна чітко вказати, які саме типи помилок може викидати функція.
На перший погляд — незначне оновлення, але насправді воно відкриває шлях до чистішого, контрольованого й безпечного коду.
📖 У цьому дописі показано:
— приклад створення власного протоколу для помилок
— два практичні кейси використання
throws(ErrorType) у Swift 6
Typed throws — це ще один крок до передбачуваної обробки помилок і кращої інтеграції зі статичним аналізом. Варто ознайомитися, якщо хочете оновити свій підхід до помилок на більш сучасний.
🇺🇦 iOSDevUA💡Досвід AI-скептика: перший серйозний контакт із LLM
Це — особистий погляд автора, який тривалий час скептично ставився до ШІ-асистентів і великих мовних моделей. У статті він ділиться своїм першим “повноцінним” досвідом взаємодії з AI — без гучних висновків, просто чесне занурення в тему.
Якщо ви самі ще сумніваєтесь у користі або доцільності AI у щоденній розробці, можливо, вам буде цікаво прочитати цю історію від людини, яка мала подібні сумніви.
👍 Неформально, але щиро — хороша нагода подивитись на тему з іншого кута.
🇺🇦 iOSDevUA
Available now! Telegram Research 2025 — the year's key insights 
