Book Image

An iOS Developer's Guide to SwiftUI

By : Michele Fadda
Book Image

An iOS Developer's Guide to SwiftUI

By: Michele Fadda

Overview of this book

– SwiftUI transforms Apple Platform app development with intuitive Swift code for seamless UI design. – Explore SwiftUI's declarative programming: define what the app should look like and do, while the OS handles the heavy lifting. – Hands-on approach covers SwiftUI fundamentals and often-omitted parts in introductory guides. – Progress from creating views and modifiers to intricate, responsive UIs and advanced techniques for complex apps. – Focus on new features in asynchronous programming and architecture patterns for efficient, modern app design. – Learn UIKit and SwiftUI integration, plus how to run tests for SwiftUI applications. – Gain confidence to harness SwiftUI's full potential for building professional-grade apps across Apple devices.
Table of Contents (25 chapters)
Free Chapter
1
Part 1: Simple Views
5
Part 2: Scrollable Views
8
Part 3: SwiftUI Navigation
11
Part 4: Graphics and Animation
14
Part 5: App Architecture
17
Part 6: Beyond Basics

Creating a data model

A data model is a class that represents the structure of data. SwiftData lets the developers design this using code, rather than with an editor inside Xcode.

Now, let’s take a look at the components of a data model:

  • Model classes: The core of the SwiftData data model is the model classes, which define the schema for a SwiftData application. This schema comprises entities (which map to database tables) with their attributes (which are equivalent to columns in a relational database model), together with relationships and constraints. This is conceptually no different from Core Data. However, now you do this with code, using Swift macro decorations.

    To create a data model with SwiftUI, after importing the SwiftData framework, you need to declare a Swift class, and adding in front of it the @Model macro, to convert it into a model managed by SwiftData. A class used for a model does not need to be declared final, but subclassing it would probably be...