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
Packt Upsell

Adding protocols for clarity

You already know that protocols can be used to improve code by removing complex inheritance hierarchies. You also know how powerful the Protocol-Oriented paradigm is when it is when it comes to checking for protocol conformance instead of checking whether a particular object is of a certain type. Let's see how you can improve and future-proof the Hello-Contacts application by adding some protocols.

You will define two protocols for now: one that specifies the requirements for any object that claims to be able to add a special animation to a view, and one that defines what it means to be able to be displayed as a contact.

Defining the ViewEffectAnimatorType protocol

The first protocol you will define is called ViewEffectAnimatorType. This protocol should be applied to any object that implements the required behaviors to animate a view. This protocol does not necessarily give you a direct advantage, but there are a few considerations that make this a very useful protocol...