small medium large xlarge

iOS 10 SDK Development: Creating iPhone and iPad Apps with Swift


Cover image for iOS 10 SDK Development

iOS 10 SDK Development

Creating iPhone and iPad Apps with Swift


All in on Swift! iOS 10 and Xcode 8 make it clearer than ever that Swift is Apple’s language of the future. Core frameworks have been redesigned to work better with Swift, and the language itself continues to evolve quickly. iOS 10 SDK Development is the pure-Swift approach to developing for the iOS platform. This completely revised and updated edition of the bestselling iOS guide shows you how to pull in the SDK’s enormous feature set and deliver powerful, real-world apps for iPhone and iPad using modern Swift programming techniques.

Printed in full color.

See the livestream on Vimeo—Learn to Program for iOS:

Chapter 1:

Chapter 2:

Chapter 3:

Chapter 4:

Chapter 5:

Chapter 6:

Chapter 7:

Chapter 8:

Chapter 9:

Chapter 10:

Chapter 11:

Chapter 12:

Customer Reviews

iOS 10 SDK Development offers programmers an approachable, no-nonsense
introduction to iOS development with Swift, leveraging the simplicity of Xcode’s
Playground support to have readers tinkering with real code in the first pages of
the book. Careful elaboration of Swift’s many unique features, and how Apple’s
iOS frameworks work with it, will leave readers with a solid foundation for pursuing
whatever iOS development ambitions they have in mind.

- Daniel Jalkut

Founder, Read Sweater Software

I like this book. I like its approach to building something real in Swift. The result
is an app that feels good and is useful. Along the way, you learn the basics of iOS
development from an experienced pro. Highly recommended.

- Eric J. Knapp

Program director, Mobile Applications Development, Madison College

Once again, Chris Adamson delivers the must-have book for learning iOS development.
Whether you’re new to Swift or iOS—or both—you’ll be able to hit the
ground running by the time you finish.

- Jeff Kelley

iOS developer and author of "Developing for Apple Watch, Second Edition, Detroit Labs

This book neatly covers building apps with iOS 10 from the ground up, starting
with the basic tools and the nuances of the Swift language, and then progressing
through interface design. You’ll see how to build interfaces that auto-resize
cleanly to multiple screen sizes. There’s more to building an app than just assembling
the pieces and getting it to compile. With iOS 10 SDK Development, you’ll
also learn invaluable testing practices, and the right approach to using the tools
at your disposal to fix things when they go wrong. The chapters on closures are
particularly well placed for people new to Swift. I’d recommend this book to anyone.

- Kevin J. Garriott

Director, Mobile Technology, Rockfish

Not many books cover both programming interfaces and deeper software engineering
topics. It’s refreshing to see both covered, expertly, in one book. Chris and
Janie are masters at making technical content approachable. It’s like having two
of your best friends teaching you iOS.

- Mark Dalrymple

Author of "Advanced Mac OS X Programming: The Big Nerd Ranch Guide" and co-founder of CocoaHeads, the international Mac and iOS programming community

Whether you’re new to iOS programming or just need some help getting up to
speed on iOS and Swift, this is the perfect book for you. Chris and Janie take you
on a well-thought-out and fun journey into iOS SDK development.

- Dave Klein

Founder of CocoaConf and author of "Grails: A Quick-Start Guide"

See All Reviews

What You Need

Readers will need Xcode 8 (free on the Mac App Store) and a macOS computer capable of running it. A physical iOS device is not required (code can be run in Xcode’s iOS Simulator).

Contents & Extracts

  • Playing with Xcode 8
    • Tooling Up with Xcode
    • Messing Around in a Playground
    • Getting Serious on the Playground
    • Digging Into Documentation
    • What We’ve Learned
  • Starting with Swift
    • The Swift Programming Language
    • Using Variables and Constants
    • Counting with Numeric Types
    • Storing Text in Strings
    • Packaging Data in Collections
    • Looping and Branching: Control Flow
    • Maybe It’s There, Maybe It Isn’t: Optionals
    • What We’ve Learned
  • Swift with Style excerpt
    • Creating Classes
    • Returning Tuples
    • Building Lightweight Structures
    • Listing Possibilities with Enumerations
    • Handling Errors the Swift Way
    • What We’ve Learned
  • Building User Interfaces
    • Creating Our First Project
    • The Xcode Window
    • Building Our User Interface
    • Placing UI Elements with Auto Layout
    • Adding Images to the UI
    • What We’ve Learned
  • Connecting the UI to Code
    • Connecting Actions
    • Coding the Action
    • Connecting Outlets
    • What We’ve Learned
  • Testing the App
    • The Need for Unit Tests
    • How Tests Work in Xcode
    • Creating Tests
    • Testing Asynchronously
    • User Interface Testing
    • Running and Testing on the Device
    • What We’ve Learned
  • Handling Asynchronicity with Closures excerpt
    • Understanding Closures
    • Coding With Closures
    • Care and Feeding of Closures
    • Grand Central Dispatch
    • What We’ve Learned
  • Loading and Parsing Network Data
    • Fetching Network Data
    • Mapping XML to Swift Types
    • Parsing XML
    • Combining XML Parsers
    • What We’ve Learned
  • Presenting Data With Tables
    • Tables on iOS
    • Creating Table Views
    • Customizing Table Appearance
    • What We’ve Learned
  • Navigating Through Scenes excerpt
    • Navigation Controllers
    • Segueing Between Scenes
    • Modal Segues
    • What We’ve Learned
  • Fixing the App When It Breaks
    • Logging Messages
    • Taking Control with Breakpoints
    • Setting Up Your Debugging Environment
    • What We’ve Learned
  • Publishing and Maintaining the App
    • Getting with the Program
    • Preparing the App for Submission
    • Uploading the App
    • Testing with TestFlight
    • Publishing and Beyond
    • What We’ve Learned
  • Taking the Next Step
    • User Interface
    • Data Management
    • Interacting with Other Apps
    • Media, Graphics, and Gaming
    • Real-World Interaction
    • The Low-Level Frameworks
    • What We’ve Learned
  • Bibliography
  • Index


Chris Adamson is a writer and developer specializing in media software development. He is the co-author of the iOS SDK Development series from Pragmatic Bookshelf, Learning Core Audio (Addison-Wesley Professional), and several other titles. He is based in Grand Rapids, Michigan, where he writes the Time.code() blog.

Janie Clayton is an independent iOS developer. Janie is the coauthor of several books on iOS and Swift development. She writes her various musings on her blog at Janie lives outside of Madison, Wisconsin, with her attempted grumble of pugs and multitude of programming books.