Book description
Implement object-oriented programming paradigms with Swift 3.0 and mix them with modern functional programming techniques to build powerful real-world applications
About This Book
- Leverage the most efficient object-oriented design patterns in your Swift applications
- Write robust, safer, and better code using the blueprints that generate objects
- Build a platform with object-oriented code using real-world elements and represent them in your apps
Who This Book Is For
This book is for iOS and macOS developers who want to get a detailed practical understanding of object-oriented programming with the latest version of Swift: 3.0.
What You Will Learn
- Write high-quality and easy-to-maintain reusable object-oriented code to build applications for iOS, macOS, and Linux
- Work with encapsulation, abstraction, and polymorphism using Swift 3.0
- Work with classes, instances, properties, and methods in Swift 3.0
- Take advantage of inheritance, specialization, and the possibility to overload or override members
- Implement encapsulation, abstraction, and polymorphism
- Explore functional programming techniques mixed with object-oriented code in Swift 3.0
- Understand the differences between Swift 3.0, previous Swift versions, and Objective-C code
In Detail
Swift has quickly become one of the most-liked languages and developers' de-facto choice when building applications that target iOS and macOS. In the new version, the Swift team wants to take its adoption to the next level by making it available for new platforms and audiences.
This book introduces the object-oriented paradigm and its implementation in the Swift 3 programming language to help you understand how real-world objects can become part of fundamental reusable elements in the code. This book is developed with XCode 8.x and covers all the enhancements included in Swift 3.0. In addition, we teach you to run most of the examples with the Swift REPL available on macOS and Linux, and with a Web-based Swift sandbox developed by IBM capable of running on any web browser, including Windows and mobile devices.
You will organize data in blueprints that generate instances. You'll work with examples so you understand how to encapsulate and hide data by working with properties and access control. Then, you'll get to grips with complex scenarios where you use instances that belong to more than one blueprint. You'll discover the power of contract programming and parametric polymorphism. You'll combine generic code with inheritance and multiple inheritance. Later, you'll see how to combine functional programming with object-oriented programming and find out how to refactor your existing code for easy maintenance.
Style and approach
This simple guide is packed with practical examples of solutions to common problems. Each chapter includes exercises and the possibility for you to test your progress by answering a quiz
Table of contents
-
Swift 3 ObjectOriented Programming - Second Edition
- Swift 3 ObjectOriented Programming - Second Edition
- Credits
- About the Author
- Acknowledgement
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Preface
-
1. Objects from the Real World to the Playground
- Installing the required software on Mac OS
- Installing the required software on Ubuntu Linux
- Working with Swift 3 on the web
- Capturing objects from the real world
- Generating classes to create objects
- Recognizing variables and constants to create properties
- Recognizing actions to create methods
- Organizing classes with UML diagrams
- Working with API objects in the Xcode Playground
- Exercises
- Test your knowledge
- Summary
-
2. Structures, Classes, and Instances
- Understanding structures, classes, and instances
- Understanding initialization and its customization
- Understanding deinitialization and its customization
- Understanding automatic reference counting
- Declaring classes
- Customizing initialization
- Customizing deinitialization
- Creating the instances of classes
- Exercises
- Test your knowledge
- Summary
-
3. Encapsulation of Data with Properties
- Understanding elements that compose a class
- Declaring stored properties
- Generating computed properties with setters and getters
- Combining setters, getters, and a related property
- Understanding property observers
- Transforming values with setters and getters
- Creating values shared by all the instances of a class with type properties
- Creating mutable classes
- Building immutable classes
- Exercises
- Test your knowledge
- Summary
-
4. Inheritance, Abstraction, and Specialization
- Creating class hierarchies to abstract and specialize behavior
- Understanding inheritance
- Declaring classes that inherit from another class
- Overriding and overloading methods
- Overriding properties
- Controlling whether subclasses can or cannot override members
- Working with typecasting and polymorphism
- Taking advantage of operator overloading
- Declaring compound assignment operator functions
- Declaring unary operator functions
- Declaring operator functions for specific subclasses
- Exercises
- Test your knowledge
- Summary
-
5. Contract Programming with Protocols
- Understanding how protocols work in combination with classes
- Declaring protocols
- Declaring classes that adopt protocols
- Taking advantage of the multiple inheritance of protocols
- Combining inheritance and protocols
- Working with methods that receive protocols as arguments
- Downcasting with protocols and classes
- Treating instances of a protocol type as a different subclass
- Specifying requirements for properties
- Specifying requirements for methods
- Combining class inheritance with protocol inheritance
- Exercises
- Test your knowledge
- Summary
-
6. Maximization of Code Reuse with Generic Code
- Understanding parametric polymorphism and generic code
- Declaring a protocol to be used as a constraint
- Declaring a class that conforms to multiple protocols
- Declaring subclasses that inherit the conformance to protocols
- Declaring a class that works with a constrained generic type
- Using a generic class for multiple types
- Combining initializer requirements in protocols with generic types
- Declaring associated types in protocols
- Creating shortcuts with subscripts
- Declaring a class that works with two constrained generic types
- Using a generic class with two generic type parameters
- Inheriting and adding associated types in protocols
- Generalizing existing classes with generics
- Extending base types to conform to custom protocols
- Test your knowledge
- Exercises
- Summary
-
7. Object-Oriented and Functional Programming
- Refactoring code to take advantage of object-oriented programming
- Understanding functions as first-class citizens
- Working with function types within classes
- Creating a functional version of array filtering
- Writing equivalent closures with simplified code
- Creating a data repository with generics and protocols
- Filtering arrays with complex conditions
- Using map to transform values
- Combining map with reduce
- Chaining filter, map, and reduce
- Solving algorithms with reduce
- Exercises
- Test your knowledge
- Summary
-
8. Extending and Building Object-Oriented Code
- Putting together all the pieces of the object-oriented puzzle
- Adding methods with extensions
- Adding computed properties to a base type with extensions
- Declaring new convenience initializers with extensions
- Defining subscripts with extensions
- Working with object-oriented code in iOS apps
- Adding an object-oriented data repository to a project
- Interacting with an object-oriented data repository through Picker View
- Exercises
- Test your knowledge
- Summary
-
9. Exercise Answers
- Chapter 1, Objects from the Real World to Playground
- Chapter 2, Structures, Classes, and Instances
- Chapter 3, Encapsulation of Data with Properties
- Chapter 4, Inheritance, Abstraction, and Specialization
- Chapter 5, Contract Programming with Protocols
- Chapter 6, Maximization of Code Reuse with Generic Code
- Chapter 7, Object-Oriented Programming and Functional Programming
- Chapter 8, Protection and Organization of Code
Product information
- Title: Swift 3 ObjectOriented Programming - Second Edition
- Author(s):
- Release date: February 2017
- Publisher(s): Packt Publishing
- ISBN: 9781787120396
You might also like
video
iOS 13 Programming with Swift 5 - Second Edition
The iOS 13 SDK arrives as a major milestone in the evolution of the Swift language …
book
Swift 4 Protocol-Oriented Programming - Third Edition
Build fast and powerful applications by harnessing the power of protocol-oriented programming in Swift 4 About …
book
Reactive Programming with Swift 4
Learn how to solve blocking user experience and build event based reactive applications with Swift. About …
book
iOS 11 Swift Programming Cookbook
iOS 11, Swift 4, and Xcode 9 provide many new APIs for iOS developers. With this …