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

Bridging old GCD and structured concurrency

In general, if you can, you should avoid mixing concurrency paradigms. However, sometimes, you have old code that uses GCD and you want to use it, and maybe you can’t or don’t want to modify the old asynchronous code you need to invoke, adapting it to the more modern structured concurrency approach, because it may be part of a library, and you may not have access to the library source code.

withCheckedThrowingContinuation is a Swift function that bridges between asynchronous code and traditional completion handler-based code. It’s particularly useful when you have an API that uses completion handlers and you want to use it within Swift’s modern async/await-structured concurrency model.

The withCheckedThrowingContinuation function takes as an argument a closure that itself takes a single argument – a continuation. This continuation can be resumed exactly once, either by returning a value with resume...