Book Image

iOS 16 Programming for Beginners - Seventh Edition

By : Ahmad Sahar, Craig Clayton
Book Image

iOS 16 Programming for Beginners - Seventh Edition

By: Ahmad Sahar, Craig Clayton

Overview of this book

With almost 2 million apps on the App Store, iOS mobile apps continue to be incredibly popular. Anyone can reach millions of customers around the world by publishing their apps on the App Store, which means that competent iOS developers are in high demand. iOS 16 Programming for Beginners, Seventh Edition, is a comprehensive introduction for those who are new to iOS, covering the entire process of learning the Swift language, writing your own app, and publishing it on the App Store. This book follows a hands-on approach. With step-by-step tutorials to real-life examples and easy-to-understand explanations of complicated topics, each chapter will help you learn and practice the Swift language to build your apps and introduce exciting new technologies to incorporate into your apps. You'll learn how to publish iOS apps and work with new iOS 16 features such as Mac Catalyst, SwiftUI, Lock Screen widgets, WeatherKit, and much more. By the end of this iOS development book, you'll have the knowledge and skills to write and publish interesting apps, and more importantly, to use the online resources available to enhance your app development journey.
Table of Contents (34 chapters)
1
Part I: Swift
11
Part II: Design
16
Part III: Code
26
Part IV: Features
32
Other Books You May Enjoy
33
Index

Improving efficiency using async-let

Even though your app is now responsive to button taps and is able to update the user interface while the makeToast() and poachEgg() methods are running, both methods still execute sequentially. The solution here is to use async-let. Writing async in front of a let statement when you define a constant, and then writing await when you access the constant, allows parallel execution of asynchronous methods:

async let temporaryConstant1 = methodName1()
async let temporaryConstant2 = methodName2()
await variable1 = temporaryConstant1
await variable2 = temporaryConstant1

Here, methodName1() and methodName2() will run in parallel.

You will modify your app to use async-let to enable the makeToast() and poachEgg() methods to run in parallel. In the ViewController file, modify the code in the Task block as follows:

Task {
   let startTime = Date().timeIntervalSince1970
   toastLabel.text = "Making toast..."
   async let tempToast...