💡Досвід AI-скептика: перший серйозний контакт із LLM
Це — особистий погляд автора, який тривалий час скептично ставився до ШІ-асистентів і великих мовних моделей. У статті він ділиться своїм першим “повноцінним” досвідом взаємодії з AI — без гучних висновків, просто чесне занурення в тему.
Якщо ви самі ще сумніваєтесь у користі або доцільності AI у щоденній розробці, можливо, вам буде цікаво прочитати цю історію від людини, яка мала подібні сумніви.
👍 Неформально, але щиро — хороша нагода подивитись на тему з іншого кута.
🇺🇦 iOSDevUA
Це — особистий погляд автора, який тривалий час скептично ставився до ШІ-асистентів і великих мовних моделей. У статті він ділиться своїм першим “повноцінним” досвідом взаємодії з AI — без гучних висновків, просто чесне занурення в тему.
Якщо ви самі ще сумніваєтесь у користі або доцільності AI у щоденній розробці, можливо, вам буде цікаво прочитати цю історію від людини, яка мала подібні сумніви.
👍 Неформально, але щиро — хороша нагода подивитись на тему з іншого кута.
🇺🇦 iOSDevUA
💡Типобезпечна й зручна обробка помилок у Swift 6
У Swift 6 зʼявилась нова потужна можливість — typed throws
Завдяки їй можна чітко вказати, які саме типи помилок може викидати функція.
На перший погляд — незначне оновлення, але насправді воно відкриває шлях до чистішого, контрольованого й безпечного коду.
📖 У цьому дописі показано:
— приклад створення власного протоколу для помилок
— два практичні кейси використання
Typed throws — це ще один крок до передбачуваної обробки помилок і кращої інтеграції зі статичним аналізом. Варто ознайомитися, якщо хочете оновити свій підхід до помилок на більш сучасний.
🇺🇦 iOSDevUA
У Swift 6 зʼявилась нова потужна можливість — typed throws
Завдяки їй можна чітко вказати, які саме типи помилок може викидати функція.
На перший погляд — незначне оновлення, але насправді воно відкриває шлях до чистішого, контрольованого й безпечного коду.
📖 У цьому дописі показано:
— приклад створення власного протоколу для помилок
— два практичні кейси використання
throws(ErrorType) у Swift 6Typed throws — це ще один крок до передбачуваної обробки помилок і кращої інтеграції зі статичним аналізом. Варто ознайомитися, якщо хочете оновити свій підхід до помилок на більш сучасний.
🇺🇦 iOSDevUA
GitHub
swift-evolution/proposals/0413-typed-throws.md at main · swiftlang/swift-evolution
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swiftlang/swift-evolution
🎬Перші враження від «вайб-кодингу» в Xcode 26 — варто спробувати?
У Xcode 26 зʼявилась нова функція, яку жартома (а тепер і всерйоз) називають вайб-кодингом — інтеграція AI-помічника безпосередньо в редактор, із контекстною підтримкою та підказками в режимі реального часу.
Автор статті ділиться першими враженнями, демонструє, як усе працює, та пропонує власні висновки:
чи справді це корисно, наскільки розумно працює AI і чи варто переходити на такий формат прямо зараз.
👍 Усе з прикладами й відео — можна подивитися й оцінити самостійно.
🇺🇦 iOSDevUA
У Xcode 26 зʼявилась нова функція, яку жартома (а тепер і всерйоз) називають вайб-кодингом — інтеграція AI-помічника безпосередньо в редактор, із контекстною підтримкою та підказками в режимі реального часу.
Автор статті ділиться першими враженнями, демонструє, як усе працює, та пропонує власні висновки:
чи справді це корисно, наскільки розумно працює AI і чи варто переходити на такий формат прямо зараз.
👍 Усе з прикладами й відео — можна подивитися й оцінити самостійно.
🇺🇦 iOSDevUA
Swift with Vincent
Vibe coding in Xcode 26: is it good? — Swift with Vincent
You’re more of a video kind of person? I’ve got you covered! Here’s a video with the same content than this article 🍿
💡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
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
Swift Package Registry — це функція в SwiftPM, яка дозволяє підняти власний сервер для розповсюдження Swift‑пакетів.
🔗 Офіційна документація
Це особливо корисно, якщо:
👉 Ви хочете прискорити CI/CD-процеси, уникнувши постійного клонування Git-репозиторіїв
👉 Вас хвилюють supply chain атаки і ви хочете мати контроль над залежностями
👉 Ви не хочете залежати від зовнішніх пакетів, які можуть раптом зникнути або видалитися
У статті докладно описано, як автор налаштував власний реєстр Swift‑пакетів на базі JFrog Artifactory, які виникли труднощі та як їх вдалося вирішити.
🛠 Чудовий матеріал для команд, які прагнуть більшої стабільності, безпеки й автономії у своїй інфраструктурі.
🇺🇦 iOSDevUA
Alberto De Bortoli
How to setup a Swift Package Registry in Artifactory
A quick guide to setting up a Swift Package Registry with Artifactory to speed up builds and streamline dependency management.
💡GM Shaders — добірка матеріалів для вивчення шейдерів: від новачка до профі
Я люблю занурюватись у складні теми — алгоритми, анімації, неочевидні техніки — і часто ділюсь у каналі цікавими прикладами.
Цього разу натрапив на дуже корисний ресурс для всіх, хто хоче вивчити шейдери або прокачати поточні знання.
🔹 На сайті зібрані:
— основи математики для шейдерів
— приклади функцій, як-от tanh
— типові помилки при роботі з шейдерами — і як їх уникати
🧩 Матеріали структуровані за рівнем підготовки:
🔰 Для новачків
⚙️ Для тих, хто вже трохи в темі
🧠 І для досвідчених розробників
Ідеально підходить для самонавчання або як база перед створенням кастомної графіки у SwiftUI, Metal, Unity чи WebGL.
🇺🇦 iOSDevUA
Я люблю занурюватись у складні теми — алгоритми, анімації, неочевидні техніки — і часто ділюсь у каналі цікавими прикладами.
Цього разу натрапив на дуже корисний ресурс для всіх, хто хоче вивчити шейдери або прокачати поточні знання.
🔹 На сайті зібрані:
— основи математики для шейдерів
— приклади функцій, як-от tanh
— типові помилки при роботі з шейдерами — і як їх уникати
🧩 Матеріали структуровані за рівнем підготовки:
🔰 Для новачків
⚙️ Для тих, хто вже трохи в темі
🧠 І для досвідчених розробників
Ідеально підходить для самонавчання або як база перед створенням кастомної графіки у SwiftUI, Metal, Unity чи WebGL.
🇺🇦 iOSDevUA
🔥5
🖥 Історія системних налаштувань Mac — інтерактивний сайт про Control Panel та еволюцію інтерфейсів
На мій погляд, дуже цікаво простежити, як формувались знайомі нам сьогодні UI-рішення, як вони виглядали на початку й як змінювались з часом.
💡 Знали, що існує сайт Infinite Mac, де зібрано велику колекцію історичних версій macOS та NeXT, доступних прямо в браузері?
На цьому тижні вийшла глибока стаття про Control Panel — з прикладами, скріншотами й інтерактивною візуалізацією, яка дозволяє відстежити всю еволюцію системних налаштувань — від перших ідей до 2004 року.
Особливо рекомендую до перегляду дизайнерам, але не тільки.
Це історія про те, як усе починалося під тиском технічних обмежень, за умов відсутності багатозадачності, і ще й потрібно було навчити користувача з цим працювати.
📖 Весь огляд — тут: Aresluna — Frame of Preference
Чудова мандрівка для тих, хто цінує глибину у деталях інтерфейсного дизайну.
🇺🇦 iOSDevUA
На мій погляд, дуже цікаво простежити, як формувались знайомі нам сьогодні 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
🆕 Разом із релізом 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
З виходом 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
У 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
Один із ключових анонсів WWDC — це Container — інструмент від Apple, що дозволяє збирати Linux-контейнери прямо на macOS без сторонніх рішень.
У статті покроково розбирається:
— як зібрати контейнер з Vapor‑застосунком
— як залити його в віддалений реєстр
— і як швидко задеплоїти у production
🛠 Ідеальне рішення для тих, хто хоче запускати серверні Swift-застосунки в ізольованому середовищі, не виходячи з екосистеми Apple.
Відмінна точка входу у сучасний DevOps для Swift-розробників.
🇺🇦 iOSDevUA
www.swifttoolkit.dev
The New Container Tool: Docker-free Swift on Linux?
WWDC 2025 brings news also outside Apple platforms
🔥1
💡Що нового в тестуванні у Swift 6.2 — детальний огляд
Продовжуємо серію глибоких розборів усіх новинок у бета-релізах Xcode, iOS та Swift — цього разу фокус на Swift Testing, XCTest і автоматизоване тестування.
У статті висвітлено:
🔹 що змінилося в інфраструктурі тестів у Swift 6.2
🔹 нові API та можливості, пов’язані з автотестами
🔹 майбутнє XCTest і напрямок розвитку Swift Testing
Матеріал буде особливо корисним для тих, хто регулярно працює з тестами або планує міграцію на новий підхід у Swift Testing.
🇺🇦 iOSDevUA
Продовжуємо серію глибоких розборів усіх новинок у бета-релізах Xcode, iOS та Swift — цього разу фокус на Swift Testing, XCTest і автоматизоване тестування.
У статті висвітлено:
🔹 що змінилося в інфраструктурі тестів у Swift 6.2
🔹 нові API та можливості, пов’язані з автотестами
🔹 майбутнє XCTest і напрямок розвитку Swift Testing
Матеріал буде особливо корисним для тих, хто регулярно працює з тестами або планує міграцію на новий підхід у Swift Testing.
🇺🇦 iOSDevUA
Rachelbrindle
What's new in Testing, 2025 Edition
Software Engineer. Maker. Pilot.
💡Approachable Concurrency в Xcode 26 — що це і навіщо воно вам
У Xcode 26 зʼявилась можливість увімкнути набір функцій із Swift 6.2 під спільною назвою Approachable Concurrency — тобто “доступна/зрозуміла конкурентність”.
У статті детально пояснюється, що входить до цього набору, чому це важливо, і як це полегшує життя розробникам, які тільки починають працювати з
🧠 Коротко: це ініціатива, яка робить паралелізм у Swift безпечнішим, передбачуванішим і легшим у розумінні — без потреби глибоко занурюватися в актори та низькорівневу синхронізацію.
Чудове введення для тих, хто хоче поступово освоїти сучасну конкурентність у Swift.
🇺🇦 iOSDevUA
У Xcode 26 зʼявилась можливість увімкнути набір функцій із Swift 6.2 під спільною назвою Approachable Concurrency — тобто “доступна/зрозуміла конкурентність”.
У статті детально пояснюється, що входить до цього набору, чому це важливо, і як це полегшує життя розробникам, які тільки починають працювати з
async/await у Swift.🧠 Коротко: це ініціатива, яка робить паралелізм у Swift безпечнішим, передбачуванішим і легшим у розумінні — без потреби глибоко занурюватися в актори та низькорівневу синхронізацію.
Чудове введення для тих, хто хоче поступово освоїти сучасну конкурентність у Swift.
🇺🇦 iOSDevUA
Donny Wals
What is Approachable Concurrency in Xcode 26? – Donny Wals
Xcode 26 allows developers to opt-in to several of Swift 6.2’s features that will make concurrency more approachable to developers through a compiler setting called “Approachable Concurrency” or .
❤1
💡Чому Gmail важить 700 МБ — розбір від Emerge Tools
За останній рік застосунок Gmail додав ще +100 МБ і тепер важить близько 700 МБ.
На перший погляд це дивно — адже у застосунку, здається, лише кілька базових екранів.
Команда Emerge Tools вирішила розібратись, звідки береться така вага, і показала, що саме «роздуває» застосунок:
📦 сторонні SDK
🎨 важкі ассети
🧱 дубльовані залежності
🛠 невидимі на перший погляд фреймворки
Це ще раз доводить, що навіть прості ззовні застосунки можуть приховувати складну й об’ємну архітектуру всередині.
Корисне нагадування для всіх розробників — слідкуйте за розміром вашого застосунку!
🇺🇦 iOSDevUA
За останній рік застосунок Gmail додав ще +100 МБ і тепер важить близько 700 МБ.
На перший погляд це дивно — адже у застосунку, здається, лише кілька базових екранів.
Команда Emerge Tools вирішила розібратись, звідки береться така вага, і показала, що саме «роздуває» застосунок:
📦 сторонні SDK
🎨 важкі ассети
🧱 дубльовані залежності
🛠 невидимі на перший погляд фреймворки
Це ще раз доводить, що навіть прості ззовні застосунки можуть приховувати складну й об’ємну архітектуру всередині.
Корисне нагадування для всіх розробників — слідкуйте за розміром вашого застосунку!
🇺🇦 iOSDevUA
X (formerly Twitter)
Emerge Tools (@emergetools) on X
Exactly 1 year ago today, we had our biggest tweet ever about @gmail's iOS app size
And funny enough, Gmail's size is making the rounds again
🧵 Looking at why Gmail is ~700 MB (+ why it's increased by 100 MB in the last year)
And funny enough, Gmail's size is making the rounds again
🧵 Looking at why Gmail is ~700 MB (+ why it's increased by 100 MB in the last year)
🔥Apple презентувала новий Retention Messaging API — інструмент для утримання підписників
Apple представила Retention Messaging API — новий інструмент, який дозволяє розробникам впливати на рішення користувача в момент, коли той переглядає підписку та може її скасувати.
🔧 Це особливо корисно як для інді‑розробників, так і для компаній, чий бізнес повністю тримається на підписках.
Тепер можна кастомізувати, яке повідомлення показати, залежно від:
— продукту
— мови/регіону
— ситуації користувача
Доступні 4 формати повідомлень:
1. Текст
2. Текст + зображення
3. Пропозиція перейти на інший план (текст + нова підписка)
4. Промо‑офер з текстом та знижкою або альтернативним рівнем підписки
📖 Детальна документація вже доступна за посиланням:
👉 developer.apple.com/documentation/retentionmessaging
Це перший крок до більш гнучкого керування втратою користувачів — прямо в межах екосистеми Apple.
🇺🇦 iOSDevUA
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
Apple виклала свіжі дизайн-ресурси для iOS та iPadOS 26 — з актуальними компонентами, стилями та гайдлайнами.
🛠 UIKit доступний для Figma та Sketch — ідеально підходить для створення макетів із урахуванням нових системних патернів, включаючи Liquid Glass та оновлену типографіку.
Обов’язково до перегляду для дизайнерів і розробників, які хочуть тримати інтерфейси в актуальному вигляді під iOS 26.
🇺🇦 iOSDevUA
👍1🔥1
💡Нерозкрита можливість: як одночасно зробити скруглення і тінь у UIKit
У UIKit це — відома проблема: неможливо легко поєднати скруглені кути та тінь без трюків. Але, як виявилось, є один секретний спосіб, хоч і з недокументованого API (тобто використовувати — на власний ризик).
🔍 CALayer має приховані властивості, які дозволяють керувати так званим “rim” — обводкою (але не
✨ На відміну від стандартного
— розміщувати ефект поза межами вʼю
— поєднувати скруглення + тінь без артефактів
— змінювати ширину, колір і прозорість обводки
⚠️ Зверніть увагу: властивість не документована, тому існує ризик, що вона перестане працювати в майбутніх версіях iOS. Але якщо потрібен акуратний результат уже зараз — цей метод точно вартий уваги.
🇺🇦 iOSDevUA
У 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
💡Як загорнути Haskell-бібліотеку у Swift-фреймворк (і чому це не так складно, як здається)
Продовжуючи тему взаємодії між мовами, цього разу — дещо незвичний кейс: інтеграція Haskell у Swift‑застосунок. Так, ви не помилились 🙂
У статті крок за кроком пояснюється, як:
🔹 зібрати Haskell-бібліотеку
🔹 обгорнути її у
🔹 підключити до Swift‑проєкту
🔹 викликати функції через C-інтерфейс
І все це — доволі просто, без великих жертв із боку продуктивності чи стабільності.
Ідеальний матеріал для ентузіастів, які хочуть поєднати функціональну чистоту Haskell з мобільною розробкою на Swift.
🇺🇦 iOSDevUA
Продовжуючи тему взаємодії між мовами, цього разу — дещо незвичний кейс: інтеграція Haskell у Swift‑застосунок. Так, ви не помилились 🙂
У статті крок за кроком пояснюється, як:
🔹 зібрати Haskell-бібліотеку
🔹 обгорнути її у
.xcframework🔹 підключити до Swift‑проєкту
🔹 викликати функції через C-інтерфейс
І все це — доволі просто, без великих жертв із боку продуктивності чи стабільності.
Ідеальний матеріал для ентузіастів, які хочуть поєднати функціональну чистоту Haskell з мобільною розробкою на Swift.
🇺🇦 iOSDevUA
alt-romes.github.io
Automatically Packaging a Haskell Library as a Swift Binary XCFramework
Announcing <code>xcframework</code> or: the happy path for wiring a Haskell dependency to your Swift app
🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
😳 Макбук як ваги — незвичайний macOS-застосунок на GitHub
Не зміг пройти повз цей репозиторій!
TrackWeight — це застосунок, який перетворює MacBook у справжні ваги, використовуючи датчики тиску Force Touch.
Під капотом — бібліотека OpenMultitouchSupport від Такуто Накамури, що дозволяє отримувати приватний доступ до всіх подій трекпада та миші на macOS.
💡 Чому це працює: трекпад MacBook — це не звичайна сенсорна панель, а датчик сили натиску з тактильним зворотним зв’язком, тому ви відчуваєте “клік”, хоча він не механічний. І саме це дає змогу відслідковувати навіть зміну ваги.
🛠 GitHub-репозиторій — вже понад 5 000 зірочок
Саме заради таких експериментів ми й любимо розробку, правда ж? 🚀
🇺🇦 iOSDevUA
Не зміг пройти повз цей репозиторій!
TrackWeight — це застосунок, який перетворює MacBook у справжні ваги, використовуючи датчики тиску Force Touch.
Під капотом — бібліотека OpenMultitouchSupport від Такуто Накамури, що дозволяє отримувати приватний доступ до всіх подій трекпада та миші на macOS.
💡 Чому це працює: трекпад MacBook — це не звичайна сенсорна панель, а датчик сили натиску з тактильним зворотним зв’язком, тому ви відчуваєте “клік”, хоча він не механічний. І саме це дає змогу відслідковувати навіть зміну ваги.
🛠 GitHub-репозиторій — вже понад 5 000 зірочок
Саме заради таких експериментів ми й любимо розробку, правда ж? 🚀
🇺🇦 iOSDevUA
👍6
💡Як дати Claude Code доступ для роботи зі SwiftUI
Claude Code — один із найпотужніших AI-агентів для програмування на сьогодні. Його інтерфейс — мінімалістична консольна обгортка, що напряму спілкується з моделями Anthropic і підтримує MCP та інші CLI‑інструменти.
💡 Але агент стає справді ефективним, коли має доступ не лише до коду, а й до результатів його виконання.
У статті показано, як використання снепшот‑тестів (snapshot tests) дозволяє Claude Code:
— бачити, як виглядає SwiftUI‑інтерфейс
— оцінювати візуальний результат
— і ітеративно вдосконалювати UI до бажаного вигляду
Це дає змогу агенту не просто писати код за промптом, а працювати з візуальним контекстом — тобто “бачити”, як змінюється інтерфейс, і краще адаптувати його до ваших потреб.
🇺🇦 iOSDevUA
Claude Code — один із найпотужніших AI-агентів для програмування на сьогодні. Його інтерфейс — мінімалістична консольна обгортка, що напряму спілкується з моделями Anthropic і підтримує MCP та інші CLI‑інструменти.
💡 Але агент стає справді ефективним, коли має доступ не лише до коду, а й до результатів його виконання.
У статті показано, як використання снепшот‑тестів (snapshot tests) дозволяє Claude Code:
— бачити, як виглядає SwiftUI‑інтерфейс
— оцінювати візуальний результат
— і ітеративно вдосконалювати UI до бажаного вигляду
Це дає змогу агенту не просто писати код за промптом, а працювати з візуальним контекстом — тобто “бачити”, як змінюється інтерфейс, і краще адаптувати його до ваших потреб.
🇺🇦 iOSDevUA
Twocentstudios
Giving Claude Code Eyes to See Your SwiftUI Views
❤1
💡Java-інтероп у Swift 6.2 — як це працює на практиці
Як ви, напевно, пам’ятаєте, наприкінці минулого року Apple анонсувала нативну взаємодію Swift із Java. Це важливий крок як для самої Apple (яка починає писати нові високонавантажені сервіси на Swift), так і для спільноти, яка дедалі більше цікавиться Server-side Swift.
У статті розглядається:
🔹 Як влаштовано Java-інтероп у Swift 6.2
🔹 Як правильно налаштувати середовище, щоб усе працювало
🔹 Що потрібно для виклику Java-класів із Swift та навпаки
🔹 Які є обмеження та підводні камені
Це чудовий вступ для тих, хто хоче інтегрувати Swift у проєкти з Java або просто тримає руку на пульсі розвитку серверного Swift.
🇺🇦 iOSDevUA
Як ви, напевно, пам’ятаєте, наприкінці минулого року Apple анонсувала нативну взаємодію Swift із Java. Це важливий крок як для самої Apple (яка починає писати нові високонавантажені сервіси на Swift), так і для спільноти, яка дедалі більше цікавиться Server-side Swift.
У статті розглядається:
🔹 Як влаштовано Java-інтероп у Swift 6.2
🔹 Як правильно налаштувати середовище, щоб усе працювало
🔹 Що потрібно для виклику Java-класів із Swift та навпаки
🔹 Які є обмеження та підводні камені
Це чудовий вступ для тих, хто хоче інтегрувати Swift у проєкти з Java або просто тримає руку на пульсі розвитку серверного Swift.
🇺🇦 iOSDevUA
Artur Gruchała
Swift 6.2 Java interoperability in practice
If you’ve ever tried straddling two worlds—one foot in the elegant, type-safe realm of Swift and the other in the sprawling ecosystem of Java—you know the pain of keeping them in sync. Swift 6.2 introduces a first-class Swift–Java interoperability layer via…
❤1