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 Core Data project

The easiest way to create a project that includes Xcode is by choosing a template and checking the Use Core Data option box.

The following screenshot shows this:

Figure 12.2 – Creating a project and enabling Core Data

Figure 12.2 – Creating a project and enabling Core Data

By following this approach, the project template will create an @main App struct that instantiates PersistenceController as a singleton. The name you choose for the project in Xcode will be pre-pended to the app to determine the default name for that struct, and this will match the corresponding swift file generated by the template. The project creation template will create code inside that file that passes this PersistenceController and the public managedObjectContext, using .environment at the Composition Root so that they can be accessed globally by any view in the app. Note that .environment is used instead of .environmentObject, as these are system- rather than user-defined.

The ”Composition...