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)

Optimizing code for testability

Now that the project has a test target, it's time to start adding some tests to it. Before you add tests, you should determine what to test. Take some time to look at the app and the code and try to think of things to test. Assume that the app is finished and that the trivia questions are loaded from a server.

Some of the things you might have thought of to test are the following:

  • Making sure that we can display the data we load from the network
  • Testing that selecting the correct answer triggers the expected code
  • Testing that choosing a wrong answer triggers the expected code
  • Ensuring that the first question is displayed after we show the last one
  • Testing that the question index increments

If you came up with most of the tests on this list, good job. You've successfully identified a lot of good test cases. But how do you test these cases? The project has been made hard to test intentionally, but let&apos...