Chapter 1: Introducing Swift
Defining our goals for this book
Setting up the development environment
Running our first swift code
Understanding playgrounds
Chapter 2: Building Blocks – Variables, Collections, and Flow Control
Chapter 3: One Piece at a Time – Types, Scopes, and Projects
Chapter 4: To Be or Not To Be – Optionals
Implicitly unwrapped optionals
The underlying implementation
Chapter 5: A Modern Paradigm – Closures and Functional Programming
Functional programming philosophy
Building blocks of functional programming in Swift
Chapter 6: Make Swift Work For You – Protocols and Generics
Putting protocols and generics to use
Chapter 7: Everything Is Connected – Memory Management
Value types versus reference types
Automatic reference counting
Structures versus classes
Chapter 8: Paths Less Traveled – Error Handling
Cleaning up in error situations
Chapter 9: Writing Code the Swift Way – Design Patterns and Techniques
What is a design pattern?
Using associated values effectively
Extending system types to reduce code
Chapter 10: Harnessing the Past – Understanding and Translating Objective-C
Swift's relationship to Objective-C
Background of Objective-C
Calling Objective-C code from Swift
Chapter 11: A Whole New World – Developing an App
Setting up the app project
Configuring the user interface
Temporarily saving a photo
Populating our photo grid
Refactoring to respect model-view-controller
Permanently saving a photo
Chapter 12: What's Next? – Resources, Advice, and the Next Steps
Chapter 13: Welcome to the World of Swift
Chapter 14: Building a Guess the Number App
Chapter 15: A Memory Game in Swift
Building the skeleton of the app
Connecting the dataSource and the delegate
Implementing a deck of cards
Chapter 16: A TodoList App in Swift
Building the Todos screen
Chapter 17: A Pretty Weather App
Downloading the background image
Retrieving the actual forecast
Where do we go from here?
Chapter 18: Flappy Swift
Building the skeleton of the app
Making the components interact
Chapter 19: Polishing Flappy Swift
Integrating with Game Center
Chapter 21: Completing Cube Runner
Chapter 22: ASAP – an E-commerce App in Swift
The skeleton app and register screen
The ASAP e-commerce store
Chapter 23: ASAPServer, a Server in Swift
The interface of the ASAP Server
One skeleton server for two OSes
Chapter 24: Taking the First Steps with Swift
Chapter 25: Learning about Variables, Constants, Strings, and Operators
Chapter 26: Using Collections and Cocoa Data Types
Chapter 27: Control Flow and Functions
What we have learned so far
Chapter 28: Classes and Structures
What are classes and structures?
Creating a class or structure
Overriding methods and properties
Chapter 29: Using Protocols and Protocol Extensions
Polymorphism with protocols
Type casting with protocols
Chapter 30: Writing Safer Code with Availability and Error Handling
Error handling prior to Swift 2.0
Error handling in Swift 2
The availability attribute
Chapter 31: Working with XML and JSON Data
XML and the NSXMLParser class
Using the NSXMLParserDelegate protocol
XML and manually building XML documents
JSON and NSJSONSerialization
Chapter 32: Custom Subscripting
Subscripts with Swift arrays
Read and write custom subscripts
Read-only custom subscripts
External names for subscripts
Multidimensional subscripts
When not to use a custom subscript
Chapter 33: Using Optional Types
The need for optional types in Swift
Chapter 34: Working with Generics
An introduction to generics
Chapter 35: Working with Closures
An introduction to closures
Shorthand syntax for closures
Using closures with Swift's array algorithms
Standalone closures and good style guidelines
Selecting a closure based on results
Creating strong reference cycles with closures
Chapter 36: Using Mix and Match
Using Swift and Objective-C together in the same project
Chapter 37: Concurrency and Parallelism in Swift
Concurrency and parallelism
Chapter 38: Swift Formatting and Style Guide
What is a programming style guide?
Chapter 39: Network Development with Swift
What is network development?
An overview of the URL session classes
Making an HTTP GET request
Making an HTTP POST request
Checking network connection
RSNetworking2 for Swift 2
Chapter 40: Adopting Design Patterns in Swift
Value versus reference types
Structural design patterns
Behavioral design patterns