with Daniel Steinberg, Matt Drance,
and James Dempsey
Learn how to create full-featured iOS apps from scratch in this comprehensive 3-4 day, hands-on training course taught by renowned iOS experts.
- Learn how to use the tools and APIs in the latest iOS 7.0 SDK, and how they all fit together to build iOS apps like the pros.
- Gain hands-on coding experience and get answers to your questions so you can start creating your own iOS apps with confidence.
- Save development time and frustration by focusing exclusively on iOS development for four days with expert guidance.
You'll come away from this course ready to create your first iOS app, or improve your existing app. Check out some of the apps our alumni have created as a result of attending this course!
“It was totally awesome! I learned more in these four days than in six months of muddling around on my own.” — Will Ronco
What Will I Learn?
How to create high-quality iOS apps from scratch. Through a series of guided instruction and over 30 hands-on coding exercises, you'll learn iOS development by creating 7 example apps. Topics include:
Objective-C is the object-oriented programming language that you use to write iOS apps. We assume that you know a language that uses C-style programming and that you're comfortable with object-oriented programming. We'll transition you to Objective-C's square brackets, colons, and block syntax. Topics include:
- Classes, objects, and methods
- Message sending
- Foundation classes: strings, arrays, and so on
Xcode is the IDE used for iOS development, and it's been redesigned in Xcode 5.0. You'll learn how to:
- Create and navigate iOS projects in Xcode
- Use Xcode and Interface Builder efficiently
- Use the Xcode debugger and analyze performance with Instruments
- Set breakpoints and investigate issues
- Work with the navigators and inspectors to speed your development
Cocoa Touch is a set of object-oriented libraries for creating apps that run on iOS devices. Cocoa Touch is based on Cocoa, and embodies various object-oriented design patterns also used for programming on the Mac. Understanding those patterns is essential to becoming a competent iOS developer. You'll learn how to:
- Use the core classes in the Cocoa Touch framework
- Get the real benefit of the model-view-controller (MVC) design pattern
- Define delegates to "hook" your app-specific code into the Cocoa Touch framework
- Register and post notifications
- Use blocks syntax to clarify your code
Views and View Controllers
Views represent the user interface of your app, and all the dynamic aspects of a view are handled by a view controller. View controllers are the hub of the model-view-controller (MVC) design. You'll learn how to:
- Design views with Storyboards and Segues in Interface Builder
- Connect views to their view controllers with outlets
- Navigate between scenes in code and in Interface Builder
- Define actions to respond to control events, such as pressing a button
- Use autolayout to create flexible and robust interfaces
- Target an international audience with localization
- Add images, gestures, and animations to your app
Almost every iOS app has at least one table view to manage rows of tabular data. It's so common that Apple provides a pre-built controller for tables. But using it effectively can be tricky. You'll learn how to:
- Create a data source to populate a table
- Insert and delete table rows
- Organize data in table sections
Navigation and Tab Bar Controllers
Apple also provides a number of pre-built view controllers that serve as "containers" for your controllers. Using (and understanding) these pre-built controllers will save you a ton of work. You'll learn how to:
- Use navigation controllers to create hierarchical apps
- Use tab bar controllers to create multi-mode apps
Keyboard Input and Gestures
Well-designed iOS apps make effective use of the virtual keyboard and touch screen unique to iOS devices. You'll learn how to:
- Configure a keyboard for an ideal user experience
- Create a delegate class to handle keyboard input
- Detect and respond to taps, swipes, and other gestures
Extend the reach of your mobile app by learning how to communicate with remote web services. You'll learn how to:
- Make asynchronous requests to a RESTful interface
- Use the JSON data returned in the response
Practical tips, tricks, and techniques
Along the way you'll learn practical tips, tricks, and techniques we use to create high-quality, full-featured iOS apps.
The following additional topics are taught in the 4-day course:
Core Data Basics
Data-centric apps will generally need to persist application-level data on the device. Core Data offers an elegant solution to data modeling and persistence. You'll learn how to:
- Use the modeling tools to model persistent app data
- Create, read (fetch), update, and delete persistent entities
- Manage model relationships
Transitioning to the iPad
In a lot of ways, developing an iPad app is similar to developing an iPhone app. Indeed, all the fundamental concepts you learn in this course apply to the iPad, as well. There are, however, some tasks and classes that are unique to the iPad. You'll learn how to:
- Use the split-view controller and popovers unique to iPad apps
- Transform an iPhone app into a Universal app that can run on both platforms
Performance and Debugging
Last, but certainly not least, it's important that your app behaves well when running on an iOS device. And when trouble strikes, you'll want the confidence to solve problems quickly. You'll learn how to:
- Avoid and handle memory warnings
- Use Instruments to fix memory leaks and profile your code
- Use the debugging tools built into Xcode
- Troubleshoot common errors and warnings
In addition to the prepared topics, you'll have time to ask questions and spark discussions with other developers.
“The instructors brought a passion and knowledge to the course that I have not seen in other training.” — Patrick Leslie
“The knowledge and experience of the instructors is priceless.” — Harold Daniel
Who Teaches the Course?
iOS Experts and Authors. We've been teaching iOS development since November 2008, shortly after the original iPhone SDK was released, so you're in good hands. You'll learn directly from recognized iOS development experts and published book authors.
Daniel Steinberg is the author of Cocoa Programming: A Quick Start for Developers, iPad Programming, and Test Driving iOS Development with Kiwi. He writes feature articles for Apple's ADC web site and is a regular contributor to Mac Devcenter. He has presented at Apple's Worldwide Developer Conference, MacWorld, MacHack, CocoaConf, and other Mac developer conferences.
Matt Drance is the owner of Bookhouse Software, an eight-year Apple veteran, and author of iOS Recipes. As Apple's Application Frameworks Evangelist, Matt helped shape the APIs in the iPhone SDK and worked with hundreds of third-party developers to build many of the apps you use today. He was an annual speaker at Apple's Worldwide Developers Conference (WWDC) and iPhone Tech Talks, and his orientation videos in the iPhone Dev Center have been viewed by thousands of iPhone developers. At Bookhouse, Matt builds his own iPhone and iPad apps and works regularly with a number of clients.
James Dempsey is a fifteen-year Apple veteran gone indie. At Apple, he worked on iOS, Aperture, and OS X releases Leopard through Lion, including half a decade on the Cocoa frameworks team. Along the way he's trained hundreds of developers on Apple technologies, including teaching Cocoa development at Stanford University and presenting at WWDC for over a decade. He founded Tapas Software to build apps for iOS and OS X, with an initial release now on the App Store.
“I wanted training from real, experienced iPhone developers… and I got that in this Studio!” — Kevin Garriott
“The instructors were extremely helpful and knowledgeable. They made the material easy to understand. Definitely the best training class I've taken!” — Helen Chung
Who Should Attend?
Programmers. This Studio will be a good fit for you if:
- You're an experienced programmer new to iOS development.
- You understand object-oriented programming concepts such as classes, methods, data structures, loops, conditionals, and so on.
- You want to create your first iOS app, or improve an existing app.
“I really liked the emphasis on why certain practices are 'best practices', not just the how to do something.” — Kevin Weller
What Do I Need To Bring?
Your Mac Laptop, Running Mavericks. It wouldn't be a hands-on course if you didn't walk away having written some code. Most of the labs can be run on the iPhone Simulator, so you don't necessarily need an iOS device, but you will need to be running OS X Mavericks.
A few weeks before the Studio, we'll send out detailed instructions for installing everything you'll need. During the Studio, you'll get hands-on experience working through prepared exercises, and experimenting on your own, too.