SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
In just 24 lessons of one hour or less, Sams Teach Yourself Swift in 24 Hours helps you build next-generation OS X and iOS apps with Apple’s new Swift programming language.
This book’s straightforward, step-by-step approach helps you quickly master Swift’s core concepts, structure, and syntax and use Swift to write safe, powerful, modern code. In just a few hours you’ll be applying advanced features such as extensions, closures, protocols, and generics. Every lesson builds on what you’ve already learned, giving you a rock-solid foundation for real-world success.
Step-by-step instructions carefully walk you through the most common Swift development tasks.
Practical, hands-on examples show you how to apply what you learn.
Quizzes and exercises help you test your knowledge and stretch your skills.
Notes and tips point out shortcuts and solutions.
Learn how to...
Building iOS Applications with Swift: A Q&A with BJ Miller
Please visit the author's site here
Read the author's blog post on Swift Version 1.1 here
Download the sample files for this book here.
Introducing the Swift Development Environment
Video: The Current State of Swift Development with iOS Developer and Author BJ Miller
Download the sample pages (includes Chapter 1 and Index)
Introduction xv
HOUR 1: Introducing the Swift Development Environment 1
What Is Swift? 2
Getting Started 2
Summary 9
Q&A 10
Workshop 10
Exercise 11
HOUR 2: Learning Swift’s Fundamental Data Types 13
Constants in Swift 13
Variables in Swift 14
Introducing Data Types 15
Summary 23
Q&A 24
Workshop 24
Exercise 25
HOUR 3: Using Operators in Swift 27
Unary Operators 27
Binary Operators 29
Ternary Conditional Operators 35
Summary 35
Q&A 36
Workshop 36
Exercise 37
HOUR 4: Working with Collection Types 39
Arrays 39
Dictionaries 46
Tuples 50
Summary 51
Q&A 51
Workshop 52
Exercise 52
HOUR 5: Understanding Optional Values 53
What Are Optional Values? 53
How to Designate a Variable as Optional 54
Wrapping and Unwrapping Optional Variables 54
Use Case for Optionals 58
Summary 61
Q&A 62
Workshop 62
Exercise 63
HOUR 6: Controlling Program Flow with Conditionals 65
The if Statement 65
The switch Statement 70
Summary 77
Q&A 78
Workshop 78
Exercise 80
HOUR 7: Iterating Code with Loops 81
Two Categories of Loops 81
Transferring Control in Loops 93
Summary 95
Q&A 95
Workshop 96
Exercise 97
HOUR 8: Using Functions to Perform Actions 99
The Nature of Functions in Swift 100
General Function Syntax and Structure 100
Functions with No Parameters and No Return Type 102
The Type of a Function 102
Functions with Parameters 103
Functions with Variadic Parameters 105
Functions with Return Types 106
External Parameter Names 111
Default Parameter Values 112
Change Argument Values with In-Out Parameters 112
Summary 113
Q&A 114
Workshop 114
Exercise 115
HOUR 9: Understanding Higher Order Functions and Closures 117
Higher Order Functions 117
Closures 124
Summary 132
Q&A 133
Workshop 133
Exercise 135
HOUR 10: Learning About Structs and Classes 137
Overview of Structs and Classes in Swift 137
What Swift Structs and Classes Have in Common 139
Differences Between Structs and Classes 147
When to Use a Class or a Struct 150
Summary 151
Q&A 151
Workshop 152
Exercise 153
HOUR 11: Implementing Class Inheritance 155
What Is Inheritance? 155
Identifying a Base Class 156
Creating a Subclass 157
Overriding Inherited Methods 159
Accessing super 162
Preventing Overrides 164
Class Identity 166
Summary 167
Q&A 168
Workshop 169
Exercise 170
HOUR 12: Harnessing the Power of Enums 171
Understanding Swift Enums 171
Swift Enum Structure 172
Raw Values 173
Enum Shorthand Syntax 175
Associated Values 177
Switching Enum Values 178
Adding Instance Methods to Enums 180
Summary 182
Q&A 183
Workshop 183
Exercise 184
HOUR 13: Customizing Initializers of Classes, Structs, and Enums 185
Initialization 185
Initializing Value Types 187
Advanced Initialization 193
Summary 201
Q&A 202
Workshop 202
Exercise 203
HOUR 14: Digging Deeper with Properties 205
Stored Properties 206
Computed Properties 209
Property Accessors 209
Property Observers 212
Inheriting and Overriding Accessors 215
Inheriting and Overriding Observers 217
Summary 221
Q&A 221
Workshop 222
Exercise 222
HOUR 15: Adding Advanced Type Functionality 223
Type Properties and Methods 223
Type Aliasing 229
Type Access Control 230
Subscripts 231
Type Casting and Non-Specific Types 235
Summary 239
Q&A 239
Workshop 240
Exercise 241
HOUR 16: Understanding Memory Allocation and References 243
Deinitialization 243
Automatic Reference Counting 247
Summary 259
Q&A 260
Workshop 261
Exercise 261
HOUR 17: Using Protocols to Define Behavior 263
Defining Protocols 263
Creating and Adopting Protocols 264
Properties 265
Defining Methods in Protocols 266
Using Protocol Names as Types 268
Adopting and Inheriting Multiple Protocols 269
Optional Protocol Properties and Methods 273
How to Check for Protocol Conformance 275
Using Protocols for Delegation 275
Summary 280
Q&A 281
Workshop 282
Exercise 282
HOUR 18: Using Extensions to Add Type Functionality 285
Defining Extensions 285
Adding Functionality with Extensions 287
Summary 297
Q&A 297
Workshop 298
Exercise 298
HOUR 19: Working with Optional Chaining 301
Defining Optional Chaining 301
Chaining Optional Properties 302
Subscripts 303
Methods 308
Summary 310
Q&A 311
Workshop 311
Exercise 312
HOUR 20: Introducing Generics 313
An Introduction to Generics 313
Type Parameters and Placeholder Types 314
Specifying Type Constraints 315
Creating Generic Types 319
Extending Generic Types 322
Using Associated Types in Protocols 323
Summary 325
Q&A 326
Workshop 326
Exercise 327
HOUR 21: Adding Interoperability with Objective-C 329
Objective-C Basics 329
Bridging 335
Integrating Swift into an Objective-C App 337
Summary 346
Q&A 347
Workshop 348
Exercise 348
HOUR 22: Interacting with User Interfaces 351
Interface Introduction 351
Interface Definitions 352
Building an Interface 353
Creating Your Own Project 355
Adding UI Elements 355
Summary 369
Q&A 370
Workshop 370
Exercise 371
HOUR 23: Asynchronous Programming in Swift 373
The Problem That Concurrency Solves 373
Different Types of Queues 374
Asynchronous Programming in Action 376
Add iTunes Search to Songs App 380
Parsing JSON 383
Summary 390
Q&A 390
Workshop 391
Exercise 392
HOUR 24: Learning Swift’s Standard Library Functions 393
What Is a Standard Library? 393
Numeric Types 394
String Type 394
Protocols 395
Functional Functions 399
Global Functions 401
Summary 404
Q&A 405
Workshop 405
Exercise 406
Index 409