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

A brief introduction to concurrency

Concurrency in the context of iOS development with Swift is about managing multiple tasks that an application might need to perform simultaneously, such as fetching data from the internet, while keeping the user interface responsive by avoiding blocking the main thread, which is responsible for UI updates.

In this chapter, we will focus on the most recent approaches.

Parallelism, while related to concurrency, is specifically about executing multiple tasks at exactly the same time, particularly on devices with multi-core processors, and this includes all modern mobile devices and computers in general. iOS devices leverage parallelism to perform complex computations or handle multiple operations at once, enhancing performance. Swift and iOS provide several mechanisms to facilitate the parallel execution of tasks.

Race conditions in Swift development become a concern when multiple tasks try to access or modify the same piece of data concurrently...