Course Summary
Learn iPhone and iPad development from the ground up in this intensive, 5-day training course led by a world-class iPhone developer and trainer.
iPhone & iPad Development Super Bundle
Your brain will explode. In a good way.
Serious about learning iPhone and iPad programming, but not really up to speed on C programming? Now you can take these three great iPhone/iPad programming courses at a greatly reduced price, all in less than two weeks! This course bundle combines ANSI C Programming—an intensive introduction to C—Objective C for Beginners—a basic introduction that will get you started programming in Objective-C—and Introduction to iPhone and iPad Development, a comprehensive introduction to creating iPhone apps using the iPhone SDK.
Create your first iPhone App.
Get a solid grounding in the fundamentals of iPhone programming in C and Objective-C, and then learn to use Xcode, Interface Builder, and the UIKit framework to develop iPhone and iPad applications that take full advantage of powerful and sophisticated features of this amazing platform.
- Learn the basics of programming in C and Objective-C
- Gain hands-on familiarity with the iPhone and iPad's Cocoa Touch development environment, including Xcode and Interface Builder
- Start writing iPhone and iPad apps that make full use of the iPhone SDK
Duration
10 days.
3 course(s)
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 20" iMac Today!
Bring your own MacBook or MacBook Pro. Or—if you're attending classes at our headquarters facility in Reston—reserve one of our 20" iMacs with Core Duo processor and 2GB of RAM.
There are also MacBook Pros available at our other locations, but quantities are limited. Please contact our registrar (703-251-4474) to reserve a machine for an upcoming class.
Links
For additional information on iPhone programming, please visit:
iPhone Dev Center: http://developer.apple.com/iphone/
Also, please feel free to download our free iPhone 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
ANSI C Programming (3 days)
- Xcode: Start using Apple's Xcode IDE to edit, build, and debug your C programs.
- Fundamentals: Master the basics of C: variables and data types, expressions and operators, statements, functions, simple I/O, looping and branching, and more.
- The C Compiler: Understand the phases of compilation, from preprocessing through linking and loading. Learn how to customize compilation to produce intermediate files, add debug symbols, control warning messages, etc.
- The C Preprocessor: Learn to use the preprocessor to import header files, define symbolic constants and macros, and manage conditional compilation.
- Define and Invoke Functions: Modularize your code by writing reusable functions.
- Understanding Storage Classes: Learn what causes variables to go in and out of scope, how the stack provides storage for automatic variables and manages function parameters and return values, and how the extent of a variable is defined.
- Expressions: Understand type coercion and precedence rules, the order of operand evaluation, comma-separated lists of expressions, and the trigraph operator.
- Control Structures: Work with while, do...while, and for loops, case structures, and multi-level nesting.
- Pointers, Arrays, and Strings: Learn how to work with pointers and arrays, and in the process, discover the mysterious relationship they have with one another in C. Learn to work with strings directly, and by using library functions such as strcpy(), strcat(), sscanf(), and others.
- Data Structures: Learn how to use struct declarations to create custom data types in C.
- Dynamic Memory Allocation: Discover how to control your program's memory consumption by dynamically allocating and freeing memory as needed via calls to malloc(), realloc(), and free().
- Understanding Addresses and Pointer Arithmetic: Get a better handle on multi-dimensional arrays, structure pointers, multiple indirection, and passing pointers as arguments to functions Learn to use pointers to walk arrays—including arrays of pointers.
- Working with Stream and File I/O: Learn how to work with streams such as standard input and standard output, and to work with files and the filesystem, including reading and writing text and binary data.
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.
Introduction to iPhone and iPad Development (5 days)
- Xcode: Use Xcode 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 iPhone 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 iPhone SDK's UITableView and UITableViewController; implement data source and delegate methods to present data and interact with the user.
- Navigation: Learn to use the iPhone's navigation controller, tab bar controller, 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 iPhone and iPad 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 iPhone app's memory, while avoiding common pitfalls.
- System Events: Work with the iPhone's built-in accelerometers, GPS, and other system resources.
- Integrate with Core Services: Integrate your iPhone or iPad app with Address Book, Maps, Safari, Mail, and other standard applications.
- 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 Apple's Instruments utility and the GNU debugger (gdb) to find and fix problems and eliminate hot spots and memory leaks.