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.

Customer Reviews

iOS 9 SDK Development is the perfect book to get your feet wet with iOS. The
authors introduce you to iOS by way of Swift, giving you cutting-edge skills at the
perfect time. Whether you’re new to programming or simply new to Apple platforms,
this book will leave you ready to create your own amazing apps.

- Eric J. Knapp

Program Director, Mobile Applications Development, Madison College

This book neatly covers building apps with iOS 9 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 9 SDK Development, you’ll also
learn invaluable testing practices, and the right approach 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

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.

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.