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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Як писати 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
💡Актори у Swift — навіщо вони потрібні?

Актор — це посилальний тип, подібний до класу, призначений для безпечного керування змінним станом у багатопотоковому середовищі.

Запроваджені у Swift 5.5, актори допомагають розробникам писати потокобезпечний і, що важливо, передбачуваний код під час роботи з асинхронними задачами.

📖 У цьому матеріалі пояснюється, чим актори відрізняються від класів, як і коли їх застосовувати, а також наведено приклади — зокрема, просту реалізацію чат-сервера.

🇺🇦 iOSDevUA
💡Безкоштовні моделі OpenAI у Cursor та Windsurf

Якщо ви ще не встигли спробувати нове покоління AI‑редакторів коду, зараз — саме час. OpenAI нещодавно випустила кілька нових моделей, спеціально оптимізованих для розробки, а сервіси Cursor та Windsurf відкрили до них безкоштовний доступ.

Ідеальна можливість познайомитися з AI‑асистентами прямо у вашому редакторі.

🇺🇦 iOSDevUA
💡Swift Play Experimental — новий проєкт від Apple

🛠 У репозиторії 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
💡Що нового у SwiftWasm

Підтримка WebAssembly у Swift розвивається дуже стрімко. Починаючи зі Swift 6.1, для збірки Wasm більше не потрібен кастомний патчений тулчейн — достатньо офіційного!

Тож якщо ви ще не експериментували зі створенням веб‑застосунків на Swift, саме час почати.

🇺🇦 iOSDevUA
💡Навчальний матеріал про одну з найменш інтуїтивних (у порівнянні з map, compactMap тощо) функцій для роботи з колекціями — reduce

Детальне й зрозуміле пояснення того, як працює reduce, коли його варто використовувати та чим він корисний у реальних задачах. 👍

👉 https://www.avanderlee.com/swift/swift-reduce-combining-elements-into-a-single-value/

🇺🇦 iOSDevUA