Course Summary
Learn to develop iPhone and iPad apps from the ground up in this intensive, 5-day training course led by an experienced iOS developer and trainer.
iOS Development Bundle
A great pair of courses for a pair of great devices.
Now you can take these two great iOS programming courses at a greatly reduced price! This course bundle combines Objective C for Beginners—a basic introduction that will get you started programming in Objective-C—and iOS Development for the iPhone and iPad, a comprehensive introduction to creating iPhone and iPad apps using the iOS SDK.
Develop your first iPhone and iPad apps right in our class.
Learn to use Xcode 4 and the UIKit framework to develop iPhone and iPad applications that take full advantage of powerful and sophisticated features of these two amazing platforms.
- Learn the basics of programming in C and Objective-C
- Gain hands-on familiarity with the iPhone's Cocoa touch development environment, including Xcode and UIKit
- Start writing iPhone and iPad apps that make full use of the iOS SDK
More...
Duration
7 days.
2 course(s)
Objectives
Immerse yourself for a solid week in the iOS SDK. First, spend two days learning the basics of Objective-C and the Foundation framework. Take a day off, and then dive right into Cocoa touch for the iPhone. For five solid days, we'll explore the iOS SDK in depth, writing a number of working iPhone/iPad apps that demonstrate a wide range of capabilities.
Audience
Additional Notes
Learn from a seasoned developer and teacher.
Jonathan Lehr is the founder and President of About Objects. In over two decades of experience as a software developer and trainer, he has written several books and more than a dozen courses on Objective-C, Cocoa, Java, and other programming topics.
Jonathan first learned Object-Oriented programming on a NeXT workstation he bought in 1991, and he has been sharing his enthusiasm for Objective-C and Cocoa ever since.
Need a machine? Reserve a 13" MacBook Pro Today!
We encourage you to bring your own MacBook or MacBook Pro, but if you need a machine, we have a limited number of 13" MacBook Pro computers available for use in class.
Reserved Mac quantities are limited. Please select 'add in-class computer' on your registration when you order or contact our registrar 571-346-7544 to reserve a machine for an upcoming class.
Links
For additional information on iOS programming, please visit:
iOS Dev Center: http://developer.apple.com/ios/
Also, please feel free to download our free iOS development tutorials. These are Xcode projects that will take you step-by-step through detailed examples that cover the basics, including working with UIView and UIViewController; Core Animation and custom drawing; working with subclasses of UIControl such as UITextField and UIButton; working with UITableView and UITableViewController, including making a UITableView editable, and creating editable instances of UITableViewCell; and managing navigation with UINavigationController.
Outline
Objective C for Beginners (2 days)
- ANSI C: Gain hands-on familiarity with the fundamentals of the ANSI C programming language and the standard C libraries.
- Xcode: Use Xcode to edit, build, and debug your Objective-C applications, and to manage project resources.
- Objective-C Fundamentals: Learn how to define classes and methods, allocate and deallocate instances, and send messages to objects at runtime.
- Foundation Library: Learn to use essential C functions and Objective-C utility classes for working with numbers, dates, arrays, dictionaries, files and directories, and much more.
- Objective-C 2.0: Learn to use 2.0 features such as garbage collection, dynamic properties, and fast enumeration.
- Memory Management: Learn how to manage memory with retain counts and autorelease pools, and how to avoid memory management pitfalls.
- Advanced Features: Learn to use protocols, categories, key-value coding, invocation forwarding and other advanced features of Objective-C.
- The Objective-C Runtime System: Get an in-depth understanding of the runtime system and how it supports dynamic typing, dynamic binding, messaging, and message forwarding.
- Archives and Serialization: Learn how to serialize and deserialize objects to and from XML and binary formats.
- Working with the Debugger: Learn to use the GNU debugger (gdb) interactively to help track down and and fix bugs.
iOS Development for the iPhone and iPad (5 days)
- Xcode: Use Xcode 4 to edit, build, and debug your iPhone applications and to manage project resources.
- Objective-C: Get hands-on familiarity with the iPhone's Objective-C programming language and Foundation framework.
- Interface Builder: Use this world-class GUI tool to design your iOS app's UI and connect it to your code—and learn the real meaning behind File's Owner, First Responder, and other mysteries.
- Cocoa Touch Design Patterns: Discover how Apple leverages Model-View-Controller and other design patterns in the iPhone's UIKit framework.
- Table Views: Work with the iOS SDK's UITableView and UITableViewController; implement data source and delegate methods to present data and interact with the user.
- Navigation: Learn to use navigation controllers, tab bar controllers, and other UIKit components, as well as iPad-specific controls such as popovers.
- Handle Touch Events: Manage standard iPhone and iPad UI controls and custom components correctly in response to user input.
- Custom Drawing: Learn to use Core Graphics and Core Animation to customize iOS UI components, display and manipulate images, and provide rich animation for graphical elements.
- Persist iPhone/iPad Application Data and UI State: Learn a variety of efficient techniques for saving info to various types of data stores.
- Memory Management: Learn to use retain counts and autorelease pools to manage your iOS app's memory, while avoiding common pitfalls.
- Design for Modularity: Leverage the iPhone/iPad's dynamic loading capability to reduce complexity, improve performance, and dramatically simplify maintenance.
- iPhone Performance Monitoring and Debugging: Use the iOS SDK's Instruments utility and the GNU debugger (gdb) to find and fix problems and eliminate hot spots and memory leaks.

