Book Image

SwiftUI Cookbook - Second Edition

By : Giordano Scalzo, Edgar Nzokwe
Book Image

SwiftUI Cookbook - Second Edition

By: Giordano Scalzo, Edgar Nzokwe

Overview of this book

SwiftUI provides an innovative and simple way to build beautiful user interfaces (UIs) for all Apple platforms, from iOS and macOS through to watchOS and tvOS, using the Swift programming language. In this recipe-based cookbook, you’ll cover the foundations of SwiftUI as well as the new SwiftUI 3 features introduced in iOS 15 and explore a range of essential techniques and concepts that will help you through the development process. The cookbook begins by explaining how to use basic SwiftUI components. Once you’ve learned the core concepts of UI development, such as Views, Controls, Lists, and ScrollViews, using practical implementations in Swift, you'll advance to adding useful features to SwiftUI using drawings, built-in shapes, animations, and transitions. You’ll understand how to integrate SwiftUI with exciting new components in the Apple development ecosystem, such as Combine for managing events and Core Data for managing app data. Finally, you’ll write iOS, macOS, and watchOS apps by sharing the same SwiftUI codebase. By the end of this SwiftUI book, you'll have discovered a range of simple, direct solutions to common problems encountered when building SwiftUI apps.
Table of Contents (17 chapters)

Introducing Combine in a SwiftUI project

In this recipe, we are going to add publish support to CoreLocation, which is an Apple framework that provides location functionalities such as the current position of the user. The CLLocationManager framework class will emit status and location updates, which will be observed by a SwiftUI View. It is a different implementation of the problem that was presented in the Implementing a CoreLocation wrapper as @ObservedObject recipe of Chapter 9, Driving SwiftUI with Data.

Usually, when a reactive framework is used, instead of the common Model-View-Controller (MVC) architecture, people tend to use Model-View-ViewModel (MVVM).

In this architecture, the view doesn't have any logic. Instead, this is encapsulated in the intermediate object, the ViewModel, which has the responsibility of being the model for the view and talking to the business logic model, services, and so on to update that model. For example, it will have a property for the...