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

Actors

Actors are a reference type, similar to a class. However, actors protect their internal state by enforcing a single thread that is able to access them at any given time. This is achieved by making sure that each one of the actors’ methods and properties can only be accessed in a strictly sequential serial order. This determines data isolation, making it very hard to write code that could determine common concurrency problems, such as data races.

In structured concurrency, Actors should be used to perform synchronization. You should avoid locks, mutexes, and semaphores, as these are much more likely to introduce race conditions, and reasoning about their behavior is more difficult.

In Swift, actor isolation is enforced at the compile level, meaning that the compiler does not allow you to access the mutable state of the actor from outside the actor.

Swift actors are reentrant, meaning that while an actor awaits the result of an asynchronous operation, it can process...