Book Image

Mastering iOS 12 Programming - Third Edition

By : Donny Wals
Book Image

Mastering iOS 12 Programming - Third Edition

By: Donny Wals

Overview of this book

The iOS development environment has significantly matured, and with Apple users spending more money in the App Store, there are plenty of development opportunities for professional iOS developers. However, the journey to mastering iOS development and the new features of iOS 12 is not straightforward. This book will help you make that transition smoothly and easily. With the help of Swift 4.2, you’ll not only learn how to program for iOS 12, but also how to write efficient, readable, and maintainable Swift code that maintains industry best practices. Mastering iOS 12 Programming will help you build real-world applications and reflect the real-world development flow. You will also find a mix of thorough background information and practical examples, teaching you how to start implementing your newly gained knowledge. By the end of this book, you will have got to grips with building iOS applications that harness advanced techniques and make best use of the latest and greatest features available in iOS 12.
Table of Contents (35 chapters)
Title Page
Copyright and Credits
Dedication
Packt Upsell
Contributors
Preface
Index

Chapter 25. Offloading Tasks with Operations and GCD

In the previous chapter, you learned how to use Instruments to measure your app's performance. Measuring performance is a vital skill in discovering slow code or memory leaks. You saw that sometimes it's easy to fix slow code and increase performance by fixing a small programming error. However, the fix isn't always that easy.

An example of code that is very hard to make fast is networking code. When you fetch data from the network, you do this asynchronously. If networking code was not asynchronous, the execution of your app would halt until the network request is finished. This means that your app would freeze for a couple of seconds if the network is slow.

Another example of relatively slow code is a data file from the app bundle and decoding the raw data into an image. For small images, this task shouldn't take as long as a networking request, but imagine loading a couple of larger images. Decoding a large amount of data would take long...