small medium large xlarge

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


Cover image for iOS 9 SDK Development

iOS 9 SDK Development

Creating iPhone and iPad Apps with Swift


iOS 9 gives developers new tools for creating apps for iPhone and iPad, and our new edition of the classic iOS guide is updated to match. By writing clean, expressive, and maintainable Swift code, you’ll be able to pull in the iOS 9 SDK’s enormous feature set to deliver mobile applications. In this completely revised edition, you’ll work through an app’s entire lifecycle, from creating the project to publishing on the App Store.

About this Title

Pages: 342
Published: 2016-03-16
Release: P2.0 (2016-08-08)
ISBN: 978-1-68050-132-2

iOS 9 is an exciting release for developers that fully delivers on Apple’s promises. Features long in demand are finally coming to the platform. iOS gurus Chris Adamson and Janie Clayton will get you up to speed on the latest in writing apps for the iPhone, iPad, and iPod touch.

Using the Swift 2.0 programming language, you’ll take hold of the new capabilities of Apple’s powerful new programming language to write cleaner, clearer, and more effective code than was previously possible. Starting with the basics, you’ll see how Swift 2.0 offers more power with less boilerplate code, bringing elegant error-handling and functional programming concepts to your app development.

After thoroughly exercising the language’s features, you’ll dig into the capabilities of the iOS frameworks by building a real-world app, from a simple button to a multi-screen client that cleanly handles multi-tasking, networking, touch gestures, and more. You’ll see how to adapt a user interface from the smallest iPhone to the biggest iPad, and how extensions let an app spread its functionality throughout the system.

Read the reviews .

What You Need

iOS 9 SDK Development requires a Macintosh running Mac OS X 10.10 (Yosemite) or newer. All work is done in Xcode, a free download from the Mac App Store. Running apps on devices requires an Apple ID.

Contents & Extracts

  • Coding in Swift
    • Playing with Xcode
      • 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 2.0 Way
      • What We’ve Learned
  • Creating the App
    • Building User Interfaces
      • Our First Project
      • The Xcode Window
      • Building Our User Interface
      • Autolayout
      • What We’ve Learned
    • Connecting the UI to Code excerpt
      • Making Connections
      • Coding the Action
      • The iOS Programming Stack
      • Building Views with UIKit
      • Managing an Object’s Properties
      • What We’ve Learned
    • Testing the App
      • Unit Tests
      • How Tests Work in Xcode
      • Test-Driven Development
      • Creating Tests
      • Testing Asynchronously
      • User Interface Testing
      • Running and Testing on the Device
      • What We’ve Learned
    • Working With Tables excerpt
      • Tables on iOS
      • Table Classes
      • Creating and Connecting Tables
      • Filling In the Table
      • Customizing Table Appearance
      • Cell Reuse
      • Custom Table Cells
      • Pull-to-Refresh
      • What We’ve Learned
    • Managing Time with Closures
      • Setting Up Twitter API Calls
      • Encapsulating Code in Closures
      • Using the Twitter Account
      • Making a Twitter API Request
      • Parsing the Twitter Response
      • What We’ve Learned
    • Doing Two Things at Once with Closures
      • Grand Central Dispatch
      • Concurrency and UIKit
      • Do-It-Yourself Concurrency
      • What We’ve Learned
  • Evolving the App
    • Managing the App’s Growth
      • Working with Multiple View Controllers
      • Refactoring in Xcode
      • Making the Twitter Code More General Purpose
      • Trying Out Our Function
      • What We’ve Learned
    • Moving Between View Controllers
      • Navigation Controllers
      • The Navigation Bar
      • Navigating Between View Controllers
      • Using the Storyboard Segue
      • Sharing Data Between View Controllers
      • Modal Navigation
      • Exit Segues
      • What We’ve Learned
    • Making the Most of Big Screens
      • Split Views on iPad
      • Split Views on the iPhone
      • Size Classes and the iPhone 6
      • What We’ve Learned
    • Handling Touch Gestures
      • Gesture Recognizers
      • Pinching and Panning
      • Affine Transformations
      • Transforming the Image View
      • Subview Clipping
      • What We’ve Learned
    • Viewing and Editing Photos
      • Photo Assets and PHAsset Class
      • Fetching Our Assets
      • Core Image
      • What We’ve Learned
  • Beyond the App
    • Interacting with iOS and Other Apps
      • The App Life Cycle
      • Opening via URLs
      • App Extensions
      • Creating a Keyboard Extension
      • Bundling Shared Code in Frameworks
      • What We’ve Learned
    • Fixing the App When It Breaks
      • NSLog(): The First Line of Defense Against Bugs
      • 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
      • Next Steps
      • What We’ve Learned


Chris Adamson is a software engineer at, and also a writer and speaker specializing in media software development for iOS and OS X. Based in Grand Rapids, MI, he writes the [Time code]; blog on media software development and tweets as @invalidname.

Janie Clayton is a software engineer at Black Pixel specializing in graphics and audio programming for iOS. Janie’s Twitter handle is @redqueencoder and her personal blog is Janie lives in Madison, WI.

Upcoming Author Events

  • 2017-03-30: Janie Clayton
    Buffers and Encoders and Command Queues, Oh My! Metal was announced in 2014, yet it still hasn't really been widely adopted. It can be incredibly difficult to find a good starting point with Metal and many of you get discouraged. You run into a wall o (iOSCon 2017, London, England)
  • 2017-04-21: Chris Adamson
    Media Frameworks and Swift: This Is Fine (CocoaConf Chicago)
  • 2017-04-21: Janie Clayton
    Buffers and Encoders and Command Queues, Oh My! Many people, including myself, were really excited when Metal was announced in 2014. We thought about all the neat graphics programming we would be able to do. Then we watched the WWDC videos and ran into (CocoaConf Chicago)
  • 2017-04-22: Chris Adamson
    Firebase: Totally Not Parse All Over Again (Unless It Is) (CocoaConf Chicago)