В
первой части этой статьи мы рассмотрели основы работы с
Core Data
в
SwiftUI
на примере шаблонного приложения, предложенное
Apple. Это было тривиальное приложение, в котором всего лишь один объект
Core Data
с одним единственным атрибутом, и тем не менее было показано, что давая объектам
Core Data
дополнительную функциональность с помощью „синтаксического сахара“ в расширении
extension
их классов
class
, автоматически генерируемых
Xcode
, можно добиться комфортной работы с
Core Data
в
SwiftUI
. Эти классы являются миниатюрными
ViewModels
для наших
SwiftUI Views
, так как они реализуют протоколы
ObservableObject
и
Identifiable
. И
Apple
научила их прекрасно «играть» на поле реактивности SwiftUI.
Во второй части статьи я хочу показать, что роль автоматически генерируемых
Xcode
классов
class
для объектов
Core Data
существенно возрастает при работе с реальными взаимосвязанными объектами — рейсами
Flights
, аэропортами
Airports
и авиакомпаниями
AirLines
, которые мы получаем в интернете на сайте компании
FlightAware и размещаем в локальной базе данных
Core Data
.
Создаваемое в этой части статьи приложение с именем
CoreDataSwiftUIFlights
является сильно упрощенной модификацией реального приложения
Enroute из стэнфордских курсов CS193P 2020, которое оперативно подкачивает данные с сервера
FlightAware и требует от вас платной подписки на сервис
FlightAware .
Однако, просто зарегистрировавшись на сайте компании
FlightAware, вы можете бесплатно получить временной срез любой интересующей вас информации о рейсах
Flights
, аэропортах
Airports
и авиакомпаниях
Airlines
в
JSON
формате. Эти данные размещаются в
Core Data
с учетом взаимосвязей этих объектов, и вы можете не просто видеть всю информацию о рейсах, но и делать различные запросы к ней с помощью фильтров и сортировать ее нужным вам способом.
Код находится на
Github.