This media is not supported in your browser
VIEW IN TELEGRAM
💡Додаток для тренувань на watchOS із HealthKit + SwiftUI
Той, хто бодай раз писав застосунок для Apple Watch, знає, скільки проблем може виникнути вже на етапі з’єднання: затяжні синхронізації, копіювання символів, випадкові втрати attach, обмеження фіч тощо.
Я добре з цим знайомий: постійно створюю віджети й stand‑alone‑рішення для годинника й навіть консультував стартап під час розробки власного протоколу. Тож кожен завершений (або хоча б доведений до робочої точки) приклад — справді цінний.
Нині Strava майже монополіст серед фітнес‑трекерів, але альтернативи є. Один із них — відкритий проєкт від 0Itsuki0, де автор ділиться досвідом роботи з воркаутами:
1. SwiftUI: простий додаток для тренувань із HealthKit (частина 1)
2. SwiftUI: читання даних із HealthKit
3. SwiftUI: поділ тренування на під‑активності
🛠 Увесь код доступний на GitHub: https://github.com/0Itsuki0/SwiftUI_SimpleWorkoutApp
🇺🇦 iOSDevUA
Той, хто бодай раз писав застосунок для Apple Watch, знає, скільки проблем може виникнути вже на етапі з’єднання: затяжні синхронізації, копіювання символів, випадкові втрати attach, обмеження фіч тощо.
Я добре з цим знайомий: постійно створюю віджети й stand‑alone‑рішення для годинника й навіть консультував стартап під час розробки власного протоколу. Тож кожен завершений (або хоча б доведений до робочої точки) приклад — справді цінний.
Нині Strava майже монополіст серед фітнес‑трекерів, але альтернативи є. Один із них — відкритий проєкт від 0Itsuki0, де автор ділиться досвідом роботи з воркаутами:
1. SwiftUI: простий додаток для тренувань із HealthKit (частина 1)
2. SwiftUI: читання даних із HealthKit
3. SwiftUI: поділ тренування на під‑активності
🛠 Увесь код доступний на GitHub: https://github.com/0Itsuki0/SwiftUI_SimpleWorkoutApp
🇺🇦 iOSDevUA
👍3❤1
💡Чому написати калькулятор — насправді складно
Для багатьох із нас калькулятор був чи не першим додатком, написаним ще на Basic чи Pascal. Здається, усе просто: базові математичні операції вже визначені. Та варто зануритися глибше, і з’ясовується, що обчислення з плаваючою точкою, порядок виконання, межі точності й різні алгоритми округлення роблять «звичайний» калькулятор справжнім викликом.
У цій розповіді пояснюють, чому математика не така очевидна, як здається, й чому калькулятор на Android частіше дає коректні результати, ніж стандартний на iOS.
🇺🇦 iOSDevUA
Для багатьох із нас калькулятор був чи не першим додатком, написаним ще на Basic чи Pascal. Здається, усе просто: базові математичні операції вже визначені. Та варто зануритися глибше, і з’ясовується, що обчислення з плаваючою точкою, порядок виконання, межі точності й різні алгоритми округлення роблять «звичайний» калькулятор справжнім викликом.
У цій розповіді пояснюють, чому математика не така очевидна, як здається, й чому калькулятор на Android частіше дає коректні результати, ніж стандартний на iOS.
🇺🇦 iOSDevUA
💡Актори у Swift — навіщо вони потрібні?
Актор — це посилальний тип, подібний до класу, призначений для безпечного керування змінним станом у багатопотоковому середовищі.
Запроваджені у Swift 5.5, актори допомагають розробникам писати потокобезпечний і, що важливо, передбачуваний код під час роботи з асинхронними задачами.
📖 У цьому матеріалі пояснюється, чим актори відрізняються від класів, як і коли їх застосовувати, а також наведено приклади — зокрема, просту реалізацію чат-сервера.
🇺🇦 iOSDevUA
Актор — це посилальний тип, подібний до класу, призначений для безпечного керування змінним станом у багатопотоковому середовищі.
Запроваджені у Swift 5.5, актори допомагають розробникам писати потокобезпечний і, що важливо, передбачуваний код під час роботи з асинхронними задачами.
📖 У цьому матеріалі пояснюється, чим актори відрізняються від класів, як і коли їх застосовувати, а також наведено приклади — зокрема, просту реалізацію чат-сервера.
🇺🇦 iOSDevUA
Medium
Swift Actors: What Are They For?
What are Actors in Swift, Why should we care about them?
💡Безкоштовні моделі OpenAI у Cursor та Windsurf
Якщо ви ще не встигли спробувати нове покоління AI‑редакторів коду, зараз — саме час. OpenAI нещодавно випустила кілька нових моделей, спеціально оптимізованих для розробки, а сервіси Cursor та Windsurf відкрили до них безкоштовний доступ.
Ідеальна можливість познайомитися з AI‑асистентами прямо у вашому редакторі.
🇺🇦 iOSDevUA
Якщо ви ще не встигли спробувати нове покоління AI‑редакторів коду, зараз — саме час. OpenAI нещодавно випустила кілька нових моделей, спеціально оптимізованих для розробки, а сервіси Cursor та Windsurf відкрили до них безкоштовний доступ.
Ідеальна можливість познайомитися з AI‑асистентами прямо у вашому редакторі.
🇺🇦 iOSDevUA
Cursor
Cursor: AI coding agent
Built to make you extraordinarily productive, Cursor is the best AI coding agent.
💡Swift Play Experimental — новий проєкт від Apple
🛠 У репозиторії Apple зʼявився новий експериментальний інструмент, який можна використовувати для навчання, тренувань або тестування Swift‑коду.
Прототип містить:
• Макрос
• Команда
• Playgrounds API — дає змогу будь-якому інструменту чи IDE реалізувати підтримку запуску блоків із
📖 Опис і приклади використання
ℹ️ Проєкт наразі має статус експериментального, тому не рекомендований для продакшену — але автори закликають спробувати.
🇺🇦 iOSDevUA
🛠 У репозиторії Apple зʼявився новий експериментальний інструмент, який можна використовувати для навчання, тренувань або тестування Swift‑коду.
Прототип містить:
• Макрос
#Playground — дозволяє визначати виконувані блоки коду прямо в будь-якому Swift‑файлі.• Команда
swift play — автоматично перезапускає виконання коду після будь-яких змін.• Playgrounds API — дає змогу будь-якому інструменту чи IDE реалізувати підтримку запуску блоків із
#Playground (як це реалізовано для swift play).📖 Опис і приклади використання
ℹ️ Проєкт наразі має статус експериментального, тому не рекомендований для продакшену — але автори закликають спробувати.
🇺🇦 iOSDevUA
🔥2
💡Міграція на Bazel і прискорення збірок у 3 рази
Ще одна історія успішного переходу на Bazel — цього разу з трьохкратним прискоренням збірок як на CI, так і на локальних машинах розробників. У статті детально розглянуто ключові етапи:
👉 Досягнення повної сумісності з Xcode через rules_xcodeproj
👉 Проблеми, з якими зіткнулися: code coverage, конфігурація наборів правил і збільшення розміру бінарників
👉 Покроковий план міграції для команд, які планують повторити цей шлях
Корисний досвід для тих, хто прагне стабільних і швидких збірок у великих iOS-проєктах.
🇺🇦 iOSDevUA
Ще одна історія успішного переходу на Bazel — цього разу з трьохкратним прискоренням збірок як на CI, так і на локальних машинах розробників. У статті детально розглянуто ключові етапи:
👉 Досягнення повної сумісності з Xcode через rules_xcodeproj
👉 Проблеми, з якими зіткнулися: code coverage, конфігурація наборів правил і збільшення розміру бінарників
👉 Покроковий план міграції для команд, які планують повторити цей шлях
Корисний досвід для тих, хто прагне стабільних і швидких збірок у великих iOS-проєктах.
🇺🇦 iOSDevUA
💡Що нового у SwiftWasm
Підтримка WebAssembly у Swift розвивається дуже стрімко. Починаючи зі Swift 6.1, для збірки Wasm більше не потрібен кастомний патчений тулчейн — достатньо офіційного!
Тож якщо ви ще не експериментували зі створенням веб‑застосунків на Swift, саме час почати.
🇺🇦 iOSDevUA
Підтримка WebAssembly у Swift розвивається дуже стрімко. Починаючи зі Swift 6.1, для збірки Wasm більше не потрібен кастомний патчений тулчейн — достатньо офіційного!
Тож якщо ви ще не експериментували зі створенням веб‑застосунків на Swift, саме час почати.
🇺🇦 iOSDevUA
fatbobman.com
Building WASM Applications with Swift
Swift 6.1 now supports official WebAssembly builds via SwiftWasm—no patches needed. Use JavaScriptKit for seamless Swift–JavaScript interaction in WASM apps.
💡Навчальний матеріал про одну з найменш інтуїтивних (у порівнянні з
Детальне й зрозуміле пояснення того, як працює reduce, коли його варто використовувати та чим він корисний у реальних задачах. 👍
👉 https://www.avanderlee.com/swift/swift-reduce-combining-elements-into-a-single-value/
🇺🇦 iOSDevUA
map, compactMap тощо) функцій для роботи з колекціями — reduceДетальне й зрозуміле пояснення того, як працює reduce, коли його варто використовувати та чим він корисний у реальних задачах. 👍
👉 https://www.avanderlee.com/swift/swift-reduce-combining-elements-into-a-single-value/
🇺🇦 iOSDevUA
SwiftLee
Swift Reduce: Combining elements into a single value
Learn how to use the swift reduce method to convert collections into single values like arrays into dictionaries.
💡Колекція корисних макросів для Swift
Я вже ділився цим репозиторієм два роки тому, але з того часу він суттєво розширився. Ось кілька цікавих новинок:
👉 CloakedString — макрос для обфускації рядків, що допомагає приховати чутливі дані у білді.
👉 MemoizMacro — реалізація мемоізації функцій через макроси.
👉 SwiftNet — зручний інструмент для мережевих запитів із підтримкою пінінгу сертифікатів, колбеків та інших фічей.
Корисна добірка для тих, хто хоче витиснути максимум зі Swift‑макросів.
🇺🇦 iOSDevUA
Я вже ділився цим репозиторієм два роки тому, але з того часу він суттєво розширився. Ось кілька цікавих новинок:
👉 CloakedString — макрос для обфускації рядків, що допомагає приховати чутливі дані у білді.
👉 MemoizMacro — реалізація мемоізації функцій через макроси.
👉 SwiftNet — зручний інструмент для мережевих запитів із підтримкою пінінгу сертифікатів, колбеків та інших фічей.
Корисна добірка для тих, хто хоче витиснути максимум зі Swift‑макросів.
🇺🇦 iOSDevUA
GitHub
GitHub - krzysztofzablocki/Swift-Macros: A curated list of awesome Swift Macros
A curated list of awesome Swift Macros. Contribute to krzysztofzablocki/Swift-Macros development by creating an account on GitHub.
🎬Доповіді з конференції try! Swift Tokyo 2025
Буквально тиждень тому завершилася одна з наймасштабніших iOS-конференцій — і виступи вже доступні онлайн.
📺 Understanding Render Loop to optimise SwiftUI
Розбір рендер-циклу SwiftUI та його впливу на продуктивність. Пояснюється, як працює інтерфейс “під капотом”, і які техніки допоможуть усунути лаги.
📺 Special effects with SwiftUI Text
Демонстрація можливостей TextRenderer у SwiftUI — як додати ефектів до тексту й зробити UI більш динамічним.
📺 Rendering beautiful text using MSDFs and Metal
Реалізація високоякісного тексту в реальному часі на нескінченному канвасі за допомогою Metal і техніки MSDF.
📺 Raymarching Shaders with SwiftUI
Як поєднати SwiftUI та raymarching для створення потужних шейдерів у нативному середовищі.
📺 SwiftSyntax: for good and evil
SwiftSyntax — це бібліотека від Apple, яка може бути використана як для аналізу й форматування коду, так і для його генерації. У доповіді розглянуто нетипові сценарії її застосування.
📺 Повний плейлист усіх виступів:
Дивитися всі доповіді
🇺🇦 iOSDevUA
Буквально тиждень тому завершилася одна з наймасштабніших iOS-конференцій — і виступи вже доступні онлайн.
📺 Understanding Render Loop to optimise SwiftUI
Розбір рендер-циклу SwiftUI та його впливу на продуктивність. Пояснюється, як працює інтерфейс “під капотом”, і які техніки допоможуть усунути лаги.
📺 Special effects with SwiftUI Text
Демонстрація можливостей TextRenderer у SwiftUI — як додати ефектів до тексту й зробити UI більш динамічним.
📺 Rendering beautiful text using MSDFs and Metal
Реалізація високоякісного тексту в реальному часі на нескінченному канвасі за допомогою Metal і техніки MSDF.
📺 Raymarching Shaders with SwiftUI
Як поєднати SwiftUI та raymarching для створення потужних шейдерів у нативному середовищі.
📺 SwiftSyntax: for good and evil
SwiftSyntax — це бібліотека від Apple, яка може бути використана як для аналізу й форматування коду, так і для його генерації. У доповіді розглянуто нетипові сценарії її застосування.
📺 Повний плейлист усіх виступів:
Дивитися всі доповіді
🇺🇦 iOSDevUA
❤4
🔥Apple більше не зможе блокувати зовнішні способи оплати в США
Суд у США остаточно заборонив Apple перешкоджати розміщенню посилань на сторонні платіжні сервіси. Відтепер розробники iOS-додатків можуть вільно перенаправляти користувачів на оплату через веб — без комісії в 15–30%, яку раніше стягувала Apple.
Це рішення фактично прирівнює США до Європейського Союзу, де подібні правила вже діють завдяки регуляції DMA (Digital Markets Act).
Apple оновила правила App Store, офіційно дозволивши вбудовувати сторонні платіжні системи для користувачів у США. Тепер розробники можуть інтегрувати власні еквайринги без порушення політик — усе чітко прописано в оновлених гайдлайнах.
🇺🇦 iOSDevUA
Суд у США остаточно заборонив Apple перешкоджати розміщенню посилань на сторонні платіжні сервіси. Відтепер розробники iOS-додатків можуть вільно перенаправляти користувачів на оплату через веб — без комісії в 15–30%, яку раніше стягувала Apple.
Це рішення фактично прирівнює США до Європейського Союзу, де подібні правила вже діють завдяки регуляції DMA (Digital Markets Act).
Apple оновила правила App Store, офіційно дозволивши вбудовувати сторонні платіжні системи для користувачів у США. Тепер розробники можуть інтегрувати власні еквайринги без порушення політик — усе чітко прописано в оновлених гайдлайнах.
🇺🇦 iOSDevUA
👍1
💡Плагін для iOS‑розробки у VS Code
Якщо ви використовуєте VS Code і займаєтеся iOS‑розробкою — зверніть увагу на цікавий плагін SweetPad. Його мета — відтворити більшість ключових можливостей Xcode прямо у VS Code.
На поточному етапі плагін уже вміє:
👉 Автодоповнювати Swift‑код
👉 Збирати та запускати застосунки
👉 Форматувати код
👉 Керувати симуляторами та підключеними пристроями
👉 Запускати дебаггер і юніт‑тести
Цікавий варіант для тих, хто хоче спростити робоче середовище або відмовитися від Xcode для повсякденних задач.
🇺🇦 iOSDevUA
Якщо ви використовуєте VS Code і займаєтеся iOS‑розробкою — зверніть увагу на цікавий плагін SweetPad. Його мета — відтворити більшість ключових можливостей Xcode прямо у VS Code.
На поточному етапі плагін уже вміє:
👉 Автодоповнювати Swift‑код
👉 Збирати та запускати застосунки
👉 Форматувати код
👉 Керувати симуляторами та підключеними пристроями
👉 Запускати дебаггер і юніт‑тести
Цікавий варіант для тих, хто хоче спростити робоче середовище або відмовитися від Xcode для повсякденних задач.
🇺🇦 iOSDevUA
GitHub
GitHub - sweetpad-dev/sweetpad: Develop Swift/iOS projects using VSCode
Develop Swift/iOS projects using VSCode. Contribute to sweetpad-dev/sweetpad development by creating an account on GitHub.
❤3
💡Для зовсім новачків: як працює ForEach у SwiftUI
👉 https://www.avanderlee.com/swiftui/swiftui-foreach-loop-index/
🇺🇦 iOSDevUA
👉 https://www.avanderlee.com/swiftui/swiftui-foreach-loop-index/
🇺🇦 iOSDevUA
SwiftLee
SwiftUI ForEach Explained with Code Examples
Use the SwiftUI ForEach view to loop over items and generate a dynamic list of SwiftUI Views. Learn how to use index-based iterations.
💡Як працювати з Measurement у Swift
У Swift передбачено спеціальний тип —
✅ Легке перетворення величин між різними одиницями
✅ Автоматична адаптація до вибраної локалі (наприклад, метрична чи імперська система)
✅ Коректне форматування назв одиниць за допомогою
Усе це робить
🇺🇦 iOSDevUA
У Swift передбачено спеціальний тип —
Measurement, який значно спрощує роботу з різними одиницями вимірювання.✅ Легке перетворення величин між різними одиницями
✅ Автоматична адаптація до вибраної локалі (наприклад, метрична чи імперська система)
✅ Коректне форматування назв одиниць за допомогою
NumberFormatterУсе це робить
Measurement зручним інструментом для побудови інтерфейсів, що враховують локалізацію та типи величин.🇺🇦 iOSDevUA
❤3
💡Нещодавно з’явилися матеріали про зміни в Swift 6.1, з особливим акцентом на Concurrency.
А тепер — оновлення для Swift 6.2, знову ж — із фокусом на паралелізм.
Усе пояснено доступно, з якісними прикладами — варто переглянути! 👍
👉 https://www.avanderlee.com/concurrency/swift-6-2-concurrency-changes/
🇺🇦 iOSDevUA
А тепер — оновлення для Swift 6.2, знову ж — із фокусом на паралелізм.
Усе пояснено доступно, з якісними прикладами — варто переглянути! 👍
👉 https://www.avanderlee.com/concurrency/swift-6-2-concurrency-changes/
🇺🇦 iOSDevUA
SwiftLee
Swift 6.2: A first look at how it's changing Concurrency
Swift 6.2 will introduce several changes to Swift Concurrency that will make writing asynchronous code more approachble.
❤2
💡Нещодавно я вже ділився матеріалом про відлагодження SwiftUI‑застосунків за допомогою Instruments та інших інструментів.
Ось ще один корисний ресурс на цю ж тему — з поясненнями та відео, якщо зручніше дивитися у форматі 📽
👉 https://www.donnywals.com/using-instruments-to-profile-a-swiftui-app/
🇺🇦 iOSDevUA
Ось ще один корисний ресурс на цю ж тему — з поясненнями та відео, якщо зручніше дивитися у форматі 📽
👉 https://www.donnywals.com/using-instruments-to-profile-a-swiftui-app/
🇺🇦 iOSDevUA
Donny Wals
Using Instruments to profile a SwiftUI app – Donny Wals
A key skill for every app developer is being able to profile your app’s performance. Your app might look great on the surface, but if it doesn’t perform well, it’s going to feel off—sometimes subtly…
❤2
💡Детальний матеріал про те, як керувати залежностями в бінарних Swift‑пакетах.
Якщо не хочете заглиблюватися в технічні подробиці — на початку є коротка відповідь на головне запитання, а далі вже розбір нюансів для тих, хто хоче зрозуміти все до кінця.
👉 https://danielsaidi.com/blog/2025/05/02/adding-dependencies-to-binary-swift-packages
🇺🇦 iOSDevUA
Якщо не хочете заглиблюватися в технічні подробиці — на початку є коротка відповідь на головне запитання, а далі вже розбір нюансів для тих, хто хоче зрозуміти все до кінця.
👉 https://danielsaidi.com/blog/2025/05/02/adding-dependencies-to-binary-swift-packages
🇺🇦 iOSDevUA
Danielsaidi
Adding dependencies to binary Swift packages
While regular Swift package targets can define dependencies, binary targets can’t. But there is a way to define dependencies for a binary...
💡Перші приклади попереджень про зовнішні покупки в iOS‑застосунках
Після нещодавнього судового рішення, у якому Apple програла, застосункам у США дозволили використовувати зовнішні способи оплати.
І ось — у App Store вже почали зʼявлятися перші додатки з новим механізмом.
Тепер користувач бачить:
👉 Спеціальну позначку біля кнопки завантаження
👉 Тег external purchases
👉 Попередження доступне як на iOS, так і у веб‑версії стору
Це новий етап у зміні політик App Store, який відкриває більше свободи для розробників.
🇺🇦 iOSDevUA
Після нещодавнього судового рішення, у якому Apple програла, застосункам у США дозволили використовувати зовнішні способи оплати.
І ось — у App Store вже почали зʼявлятися перші додатки з новим механізмом.
Тепер користувач бачить:
👉 Спеціальну позначку біля кнопки завантаження
👉 Тег external purchases
👉 Попередження доступне як на iOS, так і у веб‑версії стору
Це новий етап у зміні політик App Store, який відкриває більше свободи для розробників.
🇺🇦 iOSDevUA
❤2
💡Sentry придбали Emerge Tools
На випадок, якщо ви забули — Emerge Tools це крутий стартап, який розробляє інструменти для аналізу розміру застосунків та їхньої продуктивності.
Стало відомо, що продукт і команда переходять до Sentry — компанії, яка вже створює, мабуть, найкраще рішення на ринку для аналізу крешів. Завдяки цій угоді Sentry має всі шанси стати універсальним стандартом для моніторингу та покращення нефункціональної якості мобільних застосунків.
🇺🇦 iOSDevUA
На випадок, якщо ви забули — Emerge Tools це крутий стартап, який розробляє інструменти для аналізу розміру застосунків та їхньої продуктивності.
Стало відомо, що продукт і команда переходять до Sentry — компанії, яка вже створює, мабуть, найкраще рішення на ринку для аналізу крешів. Завдяки цій угоді Sentry має всі шанси стати універсальним стандартом для моніторингу та покращення нефункціональної якості мобільних застосунків.
🇺🇦 iOSDevUA
Emergetools
Emerge Tools Blog | Emerge Tools is joining Sentry
Emerge Tools is joining Sentry to build the best mobile tooling in the world.
💡Swift Regex — інструмент для перевірки регулярних виразів
Корисний проєкт від Кішікави Кацуми нещодавно отримав круте оновлення — тепер у ньому з’явився дебаггер, який дозволяє покроково стежити за тим, як працює пошук по regex.
🛠 Спробувати можна тут: swiftregex.com
💻 Або заглянути в репозиторій на GitHub — і, за бажання, зробити свій вклад у розвиток.
До речі, на нещодавній конференції в Токіо автор розповідав, як створити власний mini-regex engine у Swift — з фокусом лише на трьох базових операціях: конкатенація, чергування, повторення.
📋 Слайди презентації
💡 Код прикладу — теж у відкритому доступі.
🇺🇦 iOSDevUA
Корисний проєкт від Кішікави Кацуми нещодавно отримав круте оновлення — тепер у ньому з’явився дебаггер, який дозволяє покроково стежити за тим, як працює пошук по regex.
🛠 Спробувати можна тут: swiftregex.com
💻 Або заглянути в репозиторій на GitHub — і, за бажання, зробити свій вклад у розвиток.
До речі, на нещодавній конференції в Токіо автор розповідав, як створити власний mini-regex engine у Swift — з фокусом лише на трьох базових операціях: конкатенація, чергування, повторення.
📋 Слайди презентації
💡 Код прикладу — теж у відкритому доступі.
🇺🇦 iOSDevUA
Swift Regex: Learn, build and test Swift Regex and Regex Builder.
Swift Regex: Learn, build and test Swift Regex
Regular Expression Tester with highlighting for Swift Regex. Quickly test and debug your regex and Regex Builder.
💡Партнерство Apple та Anthropic
Ця новина пройшла майже непоміченою: за чутками, Apple співпрацює з Anthropic — творцями одного з найкращих LLM для програмування — над інтеграцією AI у Xcode.
Що саме це означає, поки не ясно: це може бути як просто підтримка Claude як додаткової моделі, так і глибша інтеграція на рівні дефолтного асистента — або ж щось ще масштабніше.
🇺🇦 iOSDevUA
Ця новина пройшла майже непоміченою: за чутками, Apple співпрацює з Anthropic — творцями одного з найкращих LLM для програмування — над інтеграцією AI у Xcode.
Що саме це означає, поки не ясно: це може бути як просто підтримка Claude як додаткової моделі, так і глибша інтеграція на рівні дефолтного асистента — або ж щось ще масштабніше.
🇺🇦 iOSDevUA
TechCrunch
Apple and Anthropic reportedly partner to build an AI coding platform | TechCrunch
Apple and Anthropic are reportedly teaming up to build 'vibe-coding' software that will use AI to write, edit, and test code for programmers.
👍2❤1💩1