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

Using Core Data with SwiftUI

SwiftUI offers several basic mechanisms to interact with Core Data that are easier to use than UIKit.

The @FetchRequest property wrapper allows you to fetch entities from Core Data directly inside your SwiftUI views. It automatically observes the Core Data context, so it will update the view if the data changes.

You can use the @Environment property wrapper to inject NSManagedObjectContext into your SwiftUI view. This is useful for operations such as adding, deleting, or modifying entities.

For more complex scenarios where you want to encapsulate Core Data logic in separate layers, you can use either the @ObservableObject or @StateObject property wrapper, depending on your needs. This approach works well for views that require observing not just Core Data changes but also other types of state or data flow. This is how you can integrate, for instance, NSFetchedResultsController; this is a good choice if you are dealing with a large volume of data...