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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Архітектура SwiftData: шаблони та практики

SwiftData стала помітним кроком уперед у сфері зберігання даних, маючи на меті замінити Core Data більш інтуїтивним рішенням, яке простіше інтегрувати зі SwiftUI.

Однак залишається кілька важливих питань:
• Як правильно проєктувати застосунок на базі SwiftData?
• Чи можна повністю покладатися на @Model та @Query, чи все ж варто абстрагувати їх за протоколами для більшої гнучкості?
• Як бути з бізнес-логікою?
• Як побудувати структуру коду, щоб забезпечити надійність та простоту тестування?

У великій статті за посиланням ви знайдете відповіді на ці та інші запитання:
• Як структурувати моделі даних
• Де розміщувати бізнес-логіку
• Як писати модульні тести
• Як налаштувати роботу з Preview у Xcode
• Як інтегрувати CloudKit
• Як підготуватися до майбутніх змін на рівні шарів застосунку

🇺🇦 iOSDevUA
2👍1
💡Новий реліз Alex — альтернатива Cursor для Xcode

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

🇺🇦 iOSDevUA
1
💡Сучасні практики роботи з URL у Swift

Використання новітніх API з пакету Foundation для формування (і подальшого опрацювання) URL не тільки спрощує код, але й знижує ймовірність помилок чи критичних збоїв.

У своїй статті Джон Санделл детально аналізує, як StaticString, макроси та можливість створювати URL на кшталт let url = #staticURL("https://t.me/iOSDevsUA") здатні вплинути на якість і стабільність додатка. Також він розглядає сучасні підходи до формування складних запитів, використовуючи функціональність з iOS 16.

🇺🇦 iOSDevUA
1
💡І ще один корисний матеріал для новачків і всіх, хто вивчає SwiftUI.
У ньому йдеться про роботу з вкладками (TabView), із прикладами й поясненнями.

Відмінний спосіб швидко освоїти базові підходи!

👉 https://www.avanderlee.com/swiftui/tabview-tabbed-views/

🇺🇦 iOSDevUA
1
💡MCP для iOS-симулятора

Model-Context Protocol (MCP) — це вкрай популярний зараз стандарт для взаємодії LLM зі зовнішніми інструментами. Тепер його інтегрували і в iOS-симулятор, щоб AI міг працювати з інтерфейсом додатка безпосередньо. Завдяки цьому штучний інтелект може фактично взяти на себе функції QA, автоматично перевіряючи застосунок у симуляторі.

👉 https://github.com/joshuayoes/ios-simulator-mcp

🇺🇦 iOSDevUA
💡Матеріал про те, чому автор вирішив відмовитися від використання компонента Group у SwiftUI

👉 https://chris.eidhof.nl/post/why-i-avoid-group/

🇺🇦 iOSDevUA
👍2
💡Як писати git hooks на Swift

Swift підходить не тільки для створення консольних утиліт, а й для написання скриптів, які автоматично виконуватимуться перед або після коміту в Git. У згаданій статті демонструється приклад хука, що блокує коміт у master, якщо код містить print-виклики.

🇺🇦 iOSDevUA
🎬Нещодавно виклали велику добірку відео зі SwiftHeroes 2024.
Десятки цікавих доповідей, тож, можливо, знайдете для себе щось корисне. 👍

👉 https://www.youtube.com/playlist?list=PLfCiO1zYKkATN7rOAaU1lyNEWJ3sXeKXx

🇺🇦 iOSDevUA
👍2
💡Робота з модифікатором task у SwiftUI: приклади, особливості, пріоритети

➡️ Модифікатор 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
2
💡Гайд із роботи зі SwiftUI Alert + приклади

Робота з алертами у SwiftUI відрізняється від звичного підходу в UIKit (але це не означає, що вона складніша).

📖 У простому туторіалі наведені приклади показу звичайних алертів, обробки дій і додавання локалізації.

🇺🇦 iOSDevUA
💡Інтеграція SwiftUI з Rust-бібліотекою egui

Ось доволі незвичайна історія про те, як загальний каркас застосунку реалізували на SwiftUI, а рендеринг таблиць, вимогливих до продуктивності, винесли у Rust-бібліотеку egui.

👉 Вихідний код
👉 Відео результату

🇺🇦 iOSDevUA
2
💡Про гріди (Grid/LazyVGrid/LazyHGrid) у SwiftUI

Усе з прикладами та поясненнями, як завжди.

👉 https://www.avanderlee.com/swiftui/grid-lazyvgrid-lazyhgrid-gridviews/

🇺🇦 iOSDevUA
2
💡Підтримка Swift у Copilot Code Review

Copilot Code Review — це AI‑агент від GitHub, який автоматично рев’ює ваш код: виявляє баги, проблеми з продуктивністю й одразу пропонує виправлення. Сервіс вийшов із бети, а разом із релізом додали повну підтримку Swift. Підключайте в свої проєкти й діліться враженнями!

🇺🇦 iOSDevUA
👍2
💡Навряд чи це вам знадобиться, але тримайте: стаття про те, як компілювати застосунок Swift під різні платформи — і мова зовсім не про tvOS чи iPadOS.

👉 https://khanwinter.com/2025-03-29-Cross-Compiling-Swift/

🇺🇦 iOSDevUA
👍1
💡Використання ключового слова defer у Swift у контексті async

Попри те, що на перший погляд defer виглядає необов’язковим, у сучасному Swift‑коді він може істотно спростити життя. Особливо корисний, коли у функції або замиканні є кілька потенційних точок виходу — та ще й у поєднанні з throws або async/await.

📖 У цій статті розглянуто низку прикладів: від під’єднання до бази даних до асинхронного завантаження даних.

🇺🇦 iOSDevUA
🔥1
💡Поглиблена робота з прев’ю в Xcode

👉 Макрос @Previewable дає змогу уникнути створення окремих SwiftUI‑структур, потрібних лише для перегляду. Однією‑єдиною стрічкою ви створюєте прев’ю та передаєте йому стан.
👉 Протокол PreviewModifier допомагає збирати багаторазові набори тестових даних, які легко підключати до різних прев’ю.

🇺🇦 iOSDevUA
🔥1
💡У цій публікації розглядаэться, як розширити Text у SwiftUI, щоб гнучко налаштовувати будь‑які його частини — від окремих слів до довших фрагментів.

👉 https://danielsaidi.com/blog/2025/04/08/supercharging-swiftui-text-with-dynamic-content-styling

🇺🇦 iOSDevUA
💡Підбірка демо‑проєктів для TextRenderer

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
👍31
💡Чому написати калькулятор — насправді складно

Для багатьох із нас калькулятор був чи не першим додатком, написаним ще на Basic чи Pascal. Здається, усе просто: базові математичні операції вже визначені. Та варто зануритися глибше, і з’ясовується, що обчислення з плаваючою точкою, порядок виконання, межі точності й різні алгоритми округлення роблять «звичайний» калькулятор справжнім викликом.

У цій розповіді пояснюють, чому математика не така очевидна, як здається, й чому калькулятор на Android частіше дає коректні результати, ніж стандартний на iOS.

🇺🇦 iOSDevUA