Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

24.10.2023

SwiftData - нарешті у SwiftUI є кіллер-фіча?

Як кумедно, останній раз про Swift я писав буквально рік тому. Це абсолютно незапланований збіг. Але маю версію, що інтерес до розробки під iOS підігрівається виходом чергової версії цієї операційної системи.

Цього року зʼявився новий фреймворк для зберігання даних - SwiftData. Його видатна особливість — наскільки мало треба зробити, щоб звичайний клас з даними перетворився на модель зі сталими даними. А саме, дописати до класу анотацію @Model і все. Після цього зміни до обʼєктів класу будуть автоматично збережені в базу даних. (Ну так, треба ще оперувати з контекстом — це місцевий аналог репозиторію, який відповідає за створення, видалення та пошук обʼєктів.) На відміну від вебтехнологій, тут база обʼєктна - тому ніякого SQL або ORM немає.

SwiftData очевидно побудований на попередніх технологіях - CoreData та CloudKit. Проте раніше моделлю міг бути тільки спеціальний клас, схему до якого потрібно було будувати окремо. А зберігати зміни доводилось вручну. Та до того, шаблонного коду в CoreData було багацько. Всі ці недоліки тепер виправлені, та я здивований тим, як легко зберігати дані з SwiftData.

Нарешті у Swift є щось таке, що хочеться використовувати та будувати на ньому цікаві речі. Як щодо решти… SwiftUI поступово зріє (хоча модель інтерфейсу суттєво відрізняється від вебу та сходу її не зрозумієш). Легко робити інтерфейс, що підтримуватиме і macOS - особливо завдяки макросам, яки вмикають та вимикають функції для кожної платформи. Для одночасного програмування є async/await. Трохи заважає, що в Інтернеті забагато матеріалів, що стосуються застарілих версій Swift, та треба розуміти, які з них вже втратили актуальність.

Ось більш детальний приклад по SwiftData, якщо цікаво.