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

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

чат: @iOSDevsUAChat
Ідеї та пропозиції: @SergeyZhuravel
Download Telegram
💡Цієї ночі вийшов Xcode 16.3 та Swift 6.1, а разом із ними – новий режим програмування з нативною інтеграцією вайб-кодингу!

На цьому тижні Європа офіційно дала “зелене світло” Apple Intelligence, і Тім Кук шокував спільноту, написавши в X:

«Нам довелося ухвалити складне рішення. Все більше розробників довіряють AI, усе більше процесів інтегрується, і ми змушені не тільки тримати темп із Google та OpenAI, але й змагатися із самим часом. Тому ми вирішили вивести режим вайб-кодингу в Xcode із бети. Ніякого Leetcode, ніяких роздумів – тільки х-к, х-к і в продакшн (деякі літери, на жаль, загубилися)».


Ще місяць тому Сергій Брін закликав колег працювати по 60 годин на тиждень в офісі, але Apple, як завжди, випередили всіх. У Купертіно розробники сиділи по 120 годин із понеділка по суботу, приходячи о 4 ранку.

Ця “інновація” вже викликала хвилю скорочень у Кремнієвій долині та навіть зачепила великі технологічні компанії в РФ.

Спільноти з десятками тисяч підписників уже запустили курси, як обійти нові процеси співбесід. Тепер вони радять не накопичувати досвід, а “скручувати” його, адже для роботи з новим AI потрібно якнайменше навичок. Чистий, не замутнений алгоритмами розум тепер має перевагу перед розробниками з 10+ роками досвіду.

🇺🇦 iOSDevUA
😁5
💡Використовуємо Swift у Zed

Zed — відносно новий редактор коду, головною перевагою якого є надзвичайна швидкість роботи. Якщо ви шукаєте альтернативу Xcode, варто звернути увагу саме на нього. У статті показано, як легко налаштувати Zed для розробки на Swift за кілька простих кроків.

🇺🇦 iOSDevUA
1
💡Вийшов перший стабільний реліз Swiftly – офіційного менеджера версій Swift

Хоча актуальна версія Swift за замовчуванням входить до складу Xcode, іноді може знадобитися інша версія, наприклад, для створення серверних сервісів або CLI-інструментів.

Раніше встановлення потрібної версії Swift разом із залежностями вимагало ручних дій, що часто призводило до помилок.

🛠 У цьому релізі Swiftly став частиною Swift toolchain.

Крім того, додано підтримку macOS, що дозволяє встановлювати Swift окремо від Xcode.

Серед основних можливостей:
➡️ Встановлення кількох тулчейнів (як стабільних релізів, так і сніпшотів).
➡️ Оновлення встановлених тулчейнів до актуальної версії.
➡️ Перегляд доступних версій для встановлення через list-available.
➡️ Використання конкретного тулчейна в рамках проєкту через файл .swift-version.
➡️ Запуск команд із вибраним тулчейном за допомогою підкоманди run.

📖 Офіційна новина на сайті Swift: Introducing Swiftly.

🇺🇦 iOSDevUA
💡Чому краще уникати Group у SwiftUI

На відміну від VStack або HStack, елемент Group у SwiftUI може поводитися непередбачувано. Наприклад, у симуляторі та в Canvas-перегляді його рендеринг може відрізнятися. Також модифікатори застосовуються по-різному: деякі — лише один раз, інші — окремо для кожного дочірнього елемента. Тому для більш передбачуваної поведінки краще обирати інші контейнерні компоненти.

🇺🇦 iOSDevUA
3
💡Мутаційне тестування у великому проєкті

Мутаційне тестування — це підхід, за якого у код навмисно вносяться дрібні зміни (так звані “мутації”), щоб перевірити, чи зможуть існуючі тести їх виявити. У світі Swift для цього є open source інструмент — Muter, який підтримує велику кількість різних типів мутацій.

У статті описується досвід застосування Muter у масштабному проєкті, де було понад 1000 тестів та згенеровано 1657 “мутантів”. Розглядаються труднощі, результати та як масштабувати підхід для великих кодових баз.

🇺🇦 iOSDevUA
1💩1
💡Bindings у SwiftUI

Chris Eidhof пояснює, чому в продакшн-коді варто уникати використання Binding(get:set:). Такий підхід може спричинити проблеми з продуктивністю, ускладнює підтримку та тестування коду. У статті детально розглядаються альтернативи та способи зробити роботу з Binding більш надійною.

🇺🇦 iOSDevUA
3
This media is not supported in your browser
VIEW IN TELEGRAM
💡Ефект сяяння тексту в поєднанні з numericText

Демонструється приклад доволі простої анімації з приємним візуальним враженням. Для її реалізації потрібен масив із кількома кольорами, декілька тіней, а також contentTransition із numericText.

🇺🇦 iOSDevUA
7👍5
💡Архітектура 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