Beginning iOS (iPhone/iPad)
If you're a novice developer who wants to write applications that run on the iPhone or iPad, you should attend the Beginning iOS Bootcamp.
The first two days of the course are devoted to learning Objective-C, followed by our five-day iOS Bootcamp. In 7 challenging days, Beginning iOS Bootcamp will take you from complete novice to being able to build your first iPhone application. In addition, you'll become an active participant in the iPhone programming community, allowing you to continue learning upon completion of the class.
After an introduction to the Objective-C language and the Foundation framework, we delve into the toolchain and the classes that make up the iPhone UI framework. We deal with drawing using Core Graphics and Core Animation. We also discuss issues in the multi-touch event handling.
We can teach this course at your company site. We have taught it for Cisco, AT+T, SAS, and other smaller companies.
UPCOMING CLASSES
What You’ll Learn
Upon completion of Beginning iOS (iPhone/iPad), the student will be able to:
- Understand classes, objects, and methods
- Write a first program in Objective-C
- Define classes and write instance and class methods
- Use inheritance
- Take advantage of polymorphism and dynamic typing
- Work with the preprocessor
- Utilize underlying C features
- Use the basic Foundation classes (numbers, arrays, dictionaries, sets, etc.)
- Properly manage memory using ARC while preventing memory leaks and retain cycles
- Demonstrate fluency in Objective-C
- Set up elegant user interfaces easily, using Interface Builder and in code
- Set up text input fields on the iPhone and move the virtual keyboard onto the screen
- Create applications that use Location Services to pinpoint a user's location
- Localize applications for international use
- Swap out different interfaces (views) with animation
- Display editable tables of data
- Create applications that can play back a variety of audio and video file formats
- Handle warnings from the phone so applications don't get shut down
- Handle touch and complex multi-touch sequences
- Draw with Core Graphics
- Animate user interfaces with Core Animation
- Pull data from a web service for use in an application
- Create an application that can access the user's photos or use the camera to take new photos for use within the application
- Maintain a preference file for an application
- Use the Instruments tool to profile an application's resource usage for performance
- Store data on the device using multiple techniques
- Properly configure your user interface to handle multiple device orientations and device rotation
- Synchronize data with Apple's iCloud service
- Architect large applications with many sources of data and interfaces
Beginning iOS (iPhone/iPad) SYLLABUS
| Section | Contents |
|---|---|
|
|
|
Why am I here? |
An introduction to the instructor, Objective-C, and the course contents.
|
Classes and Objects |
A brief introduction to the concepts of OOP programming.
|
Messages and Methods |
How work gets done in an Objective-C program.
|
NSString |
Work with strings.
|
Constants |
Using #define and global variables
|
Preprocessor |
Understand what can be done by the preprocessor.
|
Your First Class |
Writing your own classes.
|
Inheritance |
The root. Extension through inheritance. Overriding methods.
|
retain and release |
Introduction to Memory Management.
|
NSAutoreleasePool |
Understand the autorelease stack.
|
Collection Classes |
Arrays, dictionaries, and sets.
|
Writing files |
NSString and NSData.
|
Callbacks |
A brief introduction to target-action, helper objects, anf notifications.
|
Protocols |
Required and optional methods for arbitrary objects.
|
init |
Convenience and designated initializers.
|
|
|
|
The Tools |
Using Xcode and the iPhone Simulator
|
Simple iOS App |
Develop a simple iOS app using UIKit
|
Objective-C |
Learn the language used in all iOS development
|
Memory Management |
Use the reference counting mechanism correctly to prevent memory leaks and premature deallocation
|
Delegates |
Using the delegate design pattern
|
Custom UIView Subclasses |
Subclass UIView for custom drawing and event handling
|
Core Graphics |
Drawing with Quartz
|
Multi-touch Events |
Dealing with Multi-touch events
|
Table View |
Using table views, table view controllers and creating custom table view cells
|
Notifications and Rotation |
Use the notification design pattern to receive notifications of orientation change. Also covered: Autorotation
|
Core Animation |
Using core animation to create unique user interfaces
|
Toolbars and View Controllers |
Create applications with more than one view
|
Navigation Controller |
Using navigation controllers to display multiple user interfaces
|
Archiving and Unarchiving |
Using NSCoder for data persistence
|
Web Services |
Using NSURLConnection to access web services
|
Camera |
Accessing the camera and using the Image Picker
|
Low-memory Warnings |
How to deal with low-memory warnings
|
Categories |
Add methods to existing classes
|
Core Location and Map Kit |
Use Location services to find your location and plot it on a map
|
Localization |
Making internationalized iOS apps
|
Preferences |
Letting the user store preferences for an application
|
Instruments |
Using Instruments to locate performance problems and memory leaks
|
Blocks |
Using Objective-C blocks
|
Split View Controllers |
Using the split view controller to show side-by-side interfaces on the iPad
|
Modal and Popover View Controllers |
Presenting user interfaces in popover windows and form sheets
|
Core Data |
Using Core Data with SQLite for data persistence
|
Gesture Recognizers |
Detecting gestures with UIGestureRecognizer
|
Storyboarding |
Create application flows with UIStoryboard
|
iCloud |
Synchronizing data with iCloud
|
MVCS |
Introducing a new design pattern for applications that use data from external sources
|
REQUIREMENTS
Without prior experience in either a procedural programming language (such as C, Pascal, VB, or PHP) or another object-oriented platform (such as Java or C#) this class may prove to be extremely challenging.