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 iOS application. In addition, you'll become an active participant in the iOS 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 iOS UI framework. We learn how to lay out our interfaces using Auto Layout. We deal with drawing using UIKit and 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 Facebook, Cisco, AT+T, SAS, and other smaller companies.

UPCOMING CLASSES

Date Course Instructor Total Price Status

Atlanta, Georgia

Apr 26 -
May 2
Instructor(s): Ward
$ 5,200
Jul 26 -
Aug 1
Instructor(s): Mathias, Keur
$ 5,200

BNR West, California

May 31 -
Jun 6
Instructor(s): Christopher
$ 5,200
Jul 19 -
Jul 25
Instructor(s): Ritchie
$ 5,200
Sep 13 -
Sep 19
Instructor(s): Ritchie
$ 5,200

What You'll Learn

Upon completion of Beginning iOS (iPhone/iPad), the student will be able to:

  • Understand classes, objects, and methods
  • 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
  • Properly manage memory using ARC while preventing memory leaks and retain cycles
  • Demonstrate fluency in Objective-C
  • Write a first program in Objective-C
  • Use the basic Foundation classes (numbers, arrays, dictionaries, sets, etc.)
  • Adopt Dynamic Type to scale text to the user's preferences
  • Properly configure your user interface to handle multiple device orientations and screen sizes
  • Architect large applications with many sources of data and interfaces
  • 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
  • Handle warnings from the phone so applications don't get shut down
  • Handle touch and complex multi-touch sequences
  • Draw with UIKit
  • 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

Beginning iOS (iPhone/iPad) SYLLABUS

Section Content
Beginning iOS (iPhone/iPad)Open
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.
Simple iOS App
Develop a simple iOS app using UIKit
The Tools
Using Xcode and the iPhone Simulator
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

Students with slow typing skills may find the pace of the coding difficult.

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.

How to prepare your device for our class

Confirmed students will be asked to complete a pre-reading assignment of "Objective-C Programming: The Big Nerd Ranch Guide" to prepare for class. A solid understanding of these concepts has proven to greatly improve students' class experience.

Click here for more information on preparing your device.

IMPORTANT TELEPHONE NUMBERS

For information or to enroll in a class in United States: (770) 817-6373