Book Image

Mastering iOS 14 Programming - Fourth Edition

By : Mario Eguiluz Alebicto, Chris Barker, Donny Wals
Book Image

Mastering iOS 14 Programming - Fourth Edition

By: Mario Eguiluz Alebicto, Chris Barker, Donny Wals

Overview of this book

Mastering iOS 14 development isn’t a straightforward task, but this book can help you do just that. With the help of Swift 5.3, you’ll not only learn how to program for iOS 14 but also be able to write efficient, readable, and maintainable Swift code that reflects industry best practices. This updated fourth edition of the iOS 14 book will help you to build apps and get to grips with real-world app development flow. You’ll find detailed background information and practical examples that will help you get hands-on with using iOS 14's new features. The book also contains examples that highlight the language changes in Swift 5.3. As you advance through the chapters, you'll see how to apply Dark Mode to your app, understand lists and tables, and use animations effectively. You’ll then create your code using generics, protocols, and extensions and focus on using Core Data, before progressing to perform network calls and update your storage and UI with the help of sample projects. Toward the end, you'll make your apps smarter using machine learning, streamline the flow of your code with the Combine framework, and amaze users by using Vision framework and ARKit 4.0 features. By the end of this iOS development book, you’ll be able to build apps that harness advanced techniques and make the best use of iOS 14’s features.
Table of Contents (22 chapters)

Introducing Swift 5.2

Introduced by Apple (on March 24, 2020), Swift 5.2 has handy features focused on improving the developer experience and providing additional language features. Some of the new language features seem to be oriented toward enhancing the functional programming style. Let's review these new features with some code examples.

Key path expressions as functions

This new feature allows developers to use key path expressions such as \Root.value wherever (Root) -> Value functions are allowed. Let's see it in action.

Let's create a Car struct with two properties, brand and isElectric:

struct Car {
    let brand: String
    let isElectric: Bool
}

Then, let's instantiate an array of Car structs with two cars, one that's electric and one that's not electric:

let aCar = Car(brand: "Ford", isElectric: false)
let anElectricCar = Car(brand: "Tesla", isElectric: true)
let...