Swift for the Really Impatient

Swift for the Really Impatient

by Matt Henderson, Dave Wood

Paperback

$28.83 $29.99 Save 4% Current price is $28.83, Original price is $29.99. You Save 4%.
View All Available Formats & Editions

Product Details

ISBN-13: 9780133960129
Publisher: Addison-Wesley
Publication date: 12/28/2014
Pages: 176
Product dimensions: 6.90(w) x 9.00(h) x 0.40(d)

About the Author

Matt Henderson has been developing for Apple’s platforms since 2009 and is currently a Cocoa engineer at MartianCraft. He’s given several presentations at various user groups and conferences, including 360iDev, Cocoaheads Denver, and Boulder iOS Meetup. He realized he might have a future in software when he discovered it was easier for him to program his graphing calculator to solve equations than it was to study for his math tests. He thinks that the best debugging technique is taking a walk outside in the sun or snow.

Dave Wood has been developing for iOS since 2008 and OS X since 2009. He began writing code at age 9 on a TI/99/4A and instantly fell in love. He has worked on various types of projects, including systems that interface with stock exchanges, news outlets, and banking systems, as well as newspaper websites and, of course, mobile apps ranging from games, social networks, financial apps, and productivity and developer apps. When possible, he enjoys whitewater kayaking and scuba diving. Currently he runs his own development studio, Cerebral Gardens, and freelances as a Cocoa engineer for MartianCraft.

Table of Contents

Foreword xi
Preface xiii
Acknowledgments xv
About the Authors xvi
Chapter 1: Introducing Swift 1
1.1 Basic Syntax 2
1.1.1 Variables and Constants 2
1.1.2 String Interpolation 5
1.1.3 Control Flow 6
1.2 Basic Data Types 10
1.2.1 Int 10
1.2.2 Double and Float 12
1.2.3 Bool 13
1.2.4 Strings 14
1.2.5 Arrays 15
1.2.6 Dictionaries 19
Exercises 20
Chapter 2: Diving Deeper into Swift’s Syntax 21
2.1 Optionals 22
2.2 Generics 25
2.3 Type Annotations and Type Inference 28
2.4 Functions and Closures 29
2.4.1 Global Functions 30
2.4.2 Nested Functions 30
2.4.3 Closure Expressions 31
2.5 Tuples 32
2.6 switch Statements and Pattern Matching 34
Exercises 37
Chapter 3: Objects and Classes 39
3.1 Enumerations 41
3.2 Classes 45
3.3 Structures 49
3.4 Subclassing 51
3.5 Overloading 52
3.6 Overriding 54
3.7 Initialization 55
3.8 Properties 57
3.8.1 Computed Properties 59
3.8.2 Property Observers 60
3.8.3 lazy Properties 62
3.9 Subscripting 63
3.10 Protocols 65
3.11 Extensions 67
3.12 Access Control 68
Exercises 73
Chapter 4: Optionals 75
4.1 Optionals and nil 76
4.2 Validity Checking, Optional Binding, and Forced Unwrapping 78
4.3 Optional Chaining 81
4.4 Implicitly Unwrapped Optionals 86
Exercises 88
Chapter 5: Generics 91
5.1 Why Generics? 92
5.2 Generic Functions 92
5.2.1 Type Parameters 93
5.2.2 Using More Than One Type Parameter 94
5.3 Generic Types 94
5.3.1 Associated Types 98
5.3.2 The where Clause 100
Exercises 101
Chapter 6: Functions and Closures 103
6.1 Functions 104
6.1.1 Parameters 104
6.1.2 External Parameter Names 105
6.1.3 Default Parameter Values 107
6.1.4 Variadic and inout Parameters 108
6.1.5 Return Types 110
6.2 Closures 112
6.2.1 Inferring Parameters and the Return Value 113
6.2.2 Trailing Closures 113
6.3 Functional Programming Patterns 114
Exercises 117
Chapter 7: Working with Objective-C 119
7.1 Interacting with C and Objective-C APIs 120
7.1.1 Optional Properties and Return Values 122
7.1.2 AnyObject Types 123
7.1.3 Subclassing, Extensions, and Protocols 124
7.1.4 Automatically Converted Types 126
7.1.5 Selectors and Enums 128
7.1.6 Working with C Code 129
7.2 Working with Swift and Objective-C in a Single Project 130
Exercises 133
Chapter 8: Common Patterns 135
8.1 Nested Types 136
8.2 Singletons 137
8.3 Using Grand Central Dispatch 139
8.3.1 dispatch_once 139
8.3.2 dispatch_async 139
8.3.3 dispatch_after 140
8.3.4 dispatch_apply 140
8.4 Sequences and Generators 141
8.5 Operators 145
8.5.1 Operator Overloading 146
8.5.2 Custom Operators 147
Exercises 148
Index 149

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews