💡Робота з модифікатором task у SwiftUI: приклади, особливості, пріоритети
➡️ Модифікатор task можна використовувати як інструмент для запуску асинхронного коду.
Автор наведеного матеріалу радить звернути увагу на цей модифікатор, особливо коли проєкт містить комбінацію окремих блоків
📖 У цій статті розглянуто різні варіанти використання
🛠 А тут можна переглянути демопроєкт.
🇺🇦 iOSDevUA
➡️ Модифікатор task можна використовувати як інструмент для запуску асинхронного коду.
Автор наведеного матеріалу радить звернути увагу на цей модифікатор, особливо коли проєкт містить комбінацію окремих блоків
onAppear і Task.📖 У цій статті розглянуто різні варіанти використання
task у реальному проєкті.🛠 А тут можна переглянути демопроєкт.
🇺🇦 iOSDevUA
❤1
💡SharingGRDB — альтернатива для SwiftData від авторів Point-Free
По суті, це об’єднання бібліотек Sharing та GRDB.swift (автор — Ґвендаль Руе). Новий пакет надає цілий набір інструментів, здатних замінити чимало сценаріїв використання SwiftData.
SharingGRDB забезпечує безпосередній доступ до бази даних SQLite (зокрема до джойнів, агрегатних запитів та багато чого іншого).
📖 Документація і приклади запитів.
Приклади проєктів:
1. Case Studies — демонстрація можливостей бібліотеки.
2. SyncUps — фактично перевтілення застосунку Scrumdinger від Apple.
3. Reminders — застосунок зі списками, нагадуваннями й тегами.
🔗 Посилання на репозиторій.
🇺🇦 iOSDevUA
По суті, це об’єднання бібліотек Sharing та GRDB.swift (автор — Ґвендаль Руе). Новий пакет надає цілий набір інструментів, здатних замінити чимало сценаріїв використання SwiftData.
SharingGRDB забезпечує безпосередній доступ до бази даних SQLite (зокрема до джойнів, агрегатних запитів та багато чого іншого).
📖 Документація і приклади запитів.
Приклади проєктів:
1. Case Studies — демонстрація можливостей бібліотеки.
2. SyncUps — фактично перевтілення застосунку Scrumdinger від Apple.
3. Reminders — застосунок зі списками, нагадуваннями й тегами.
🔗 Посилання на репозиторій.
🇺🇦 iOSDevUA
❤2
💡Гайд із роботи зі SwiftUI Alert + приклади
Робота з алертами у SwiftUI відрізняється від звичного підходу в UIKit (але це не означає, що вона складніша).
📖 У простому туторіалі наведені приклади показу звичайних алертів, обробки дій і додавання локалізації.
🇺🇦 iOSDevUA
Робота з алертами у SwiftUI відрізняється від звичного підходу в UIKit (але це не означає, що вона складніша).
📖 У простому туторіалі наведені приклади показу звичайних алертів, обробки дій і додавання локалізації.
🇺🇦 iOSDevUA
💡Інтеграція SwiftUI з Rust-бібліотекою egui
Ось доволі незвичайна історія про те, як загальний каркас застосунку реалізували на SwiftUI, а рендеринг таблиць, вимогливих до продуктивності, винесли у Rust-бібліотеку egui.
👉 Вихідний код
👉 Відео результату
🇺🇦 iOSDevUA
Ось доволі незвичайна історія про те, як загальний каркас застосунку реалізували на SwiftUI, а рендеринг таблиць, вимогливих до продуктивності, винесли у Rust-бібліотеку egui.
👉 Вихідний код
👉 Відео результату
🇺🇦 iOSDevUA
Medium
Fast & Fluid: Integrating Rust egui into SwiftUI
Let’s be honest: the path we’re about to take in this article isn’t a simple one. If you’re considering this approach for your app, you…
❤2
💡Про гріди (Grid/LazyVGrid/LazyHGrid) у SwiftUI
Усе з прикладами та поясненнями, як завжди.
👉 https://www.avanderlee.com/swiftui/grid-lazyvgrid-lazyhgrid-gridviews/
🇺🇦 iOSDevUA
Усе з прикладами та поясненнями, як завжди.
👉 https://www.avanderlee.com/swiftui/grid-lazyvgrid-lazyhgrid-gridviews/
🇺🇦 iOSDevUA
❤2
💡Підтримка Swift у Copilot Code Review
Copilot Code Review — це AI‑агент від GitHub, який автоматично рев’ює ваш код: виявляє баги, проблеми з продуктивністю й одразу пропонує виправлення. Сервіс вийшов із бети, а разом із релізом додали повну підтримку Swift. Підключайте в свої проєкти й діліться враженнями!
🇺🇦 iOSDevUA
Copilot Code Review — це AI‑агент від GitHub, який автоматично рев’ює ваш код: виявляє баги, проблеми з продуктивністю й одразу пропонує виправлення. Сервіс вийшов із бети, а разом із релізом додали повну підтримку Swift. Підключайте в свої проєкти й діліться враженнями!
🇺🇦 iOSDevUA
👍2
💡Навряд чи це вам знадобиться, але тримайте: стаття про те, як компілювати застосунок Swift під різні платформи — і мова зовсім не про tvOS чи iPadOS.
👉 https://khanwinter.com/2025-03-29-Cross-Compiling-Swift/
🇺🇦 iOSDevUA
👉 https://khanwinter.com/2025-03-29-Cross-Compiling-Swift/
🇺🇦 iOSDevUA
Khanwinter
Khan's Blog · Cross Compiling Swift
There are multiple ways to cross-compile Swift on different platforms. I explored a few methods while building a Discord bot and a Bluesky bot.
👍1
💡Використання ключового слова defer у Swift у контексті async
Попри те, що на перший погляд
📖 У цій статті розглянуто низку прикладів: від під’єднання до бази даних до асинхронного завантаження даних.
🇺🇦 iOSDevUA
Попри те, що на перший погляд
defer виглядає необов’язковим, у сучасному Swift‑коді він може істотно спростити життя. Особливо корисний, коли у функції або замиканні є кілька потенційних точок виходу — та ще й у поєднанні з throws або async/await.📖 У цій статті розглянуто низку прикладів: від під’єднання до бази даних до асинхронного завантаження даних.
🇺🇦 iOSDevUA
🔥1
💡Поглиблена робота з прев’ю в Xcode
👉 Макрос
👉 Протокол
🇺🇦 iOSDevUA
👉 Макрос
@Previewable дає змогу уникнути створення окремих SwiftUI‑структур, потрібних лише для перегляду. Однією‑єдиною стрічкою ви створюєте прев’ю та передаєте йому стан.👉 Протокол
PreviewModifier допомагає збирати багаторазові набори тестових даних, які легко підключати до різних прев’ю.🇺🇦 iOSDevUA
Swift with Majid
The power of previews in Xcode
Previews in Xcode become more powerful every year. Previews in Xcode are not about SwiftUI; you can use them even with UIKit. This week, we will talk about enhancing Previewable and PreviewModifier types, allowing us to build reusable preview environments.
🔥1
💡У цій публікації розглядаэться, як розширити Text у SwiftUI, щоб гнучко налаштовувати будь‑які його частини — від окремих слів до довших фрагментів.
👉 https://danielsaidi.com/blog/2025/04/08/supercharging-swiftui-text-with-dynamic-content-styling
🇺🇦 iOSDevUA
👉 https://danielsaidi.com/blog/2025/04/08/supercharging-swiftui-text-with-dynamic-content-styling
🇺🇦 iOSDevUA
💡Підбірка демо‑проєктів для TextRenderer
🇺🇦 iOSDevUA
TextRenderer — новий протокол у SwiftUI, що відкриває безліч крутих можливостей для анімації та ефектів із текстом. За посиланням знайдете колекцію прикладів: частина реалізована на чистому Swift, інша — з використанням Metal.🇺🇦 iOSDevUA
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