iPhone Application Development

Register Now

Learn how to develop applications for Apple’s new iPhone platform through this 3-day course presented by JadeTower and hosted by HKPC. The course will run April 22-24, 2009.

Course Prerequisites

Hardware

Phone development requires a Mac running OS X 10.5.x. Students will need to bring their own Apple laptop.

Software

Students should download and install the latest SDK before the class. The SDK can be downloaded from the iPhone DevCenter. One needs to sign up for for the DevCenter; however, it’s free, and Apple automatically approves these requests.

Background

Really just programming experience: C, Java, or even JavaScript. C familiarity is helpful but not necessary.

Course Syllabus

Relationship with Apple

iPhone application development means working with Apple. To develop iPhone apps, you need to register with the iPhone Dev Center. To test apps on an iPhone, you need to sign up for the iPhone Developer Program. To post apps on the App Store, you need an iTunes Connect account.

  • iPhone Dev Center

    • Sign Up
    • Download iPhone SDKs
    • Find Sample Code and Documentation
  • iPhone Developer Program

    • Sign Up
    • Visit the Program Portal
    • Build Your Team
    • Obtain Signing Certificates
    • Assign Devices (iPhone or iPod Touch)
    • Generate App IDs
    • Create Development Provisioning Profiles
    • Test on Device
  • iTunes Connect

    • Sign Up
    • Sign Paid Applications Contract
    • Gather Application Metadata
    • Prepare Application Artwork
    • Create Distribution Provisioning Profiles
    • Make a Distribution Build
    • Upload Your Application
    • Update Your Application
    • Distribute Your Application with Ad Hoc Distribution
    • View Sales/Trends Reports
    • View Financial Reports

iPhone Development Tools

Apple provides a full range of developer tools for iPhone development. The Xcode IDE provides project management, editing, building, and debugging services. The iPhone Simulator helps you test apps on your Mac. Interface Builder enables drag-and-drop GUI design. Instruments provides profiling including hotspot and memory leak detection.

  • Xcode

    • Project Management
    • Files
    • Groups
    • Smart Groups
    • Frameworks
    • Snapshots
    • Subversion Source Control
    • Editing
    • Navigation
    • Code Completion
    • Refactoring Transformations
    • Research Assistant
    • Building
    • Warnings and Error Messages
    • Build Results
    • Configurations
    • Targets
    • Build Phases
    • Debugging
    • Breakpoints
    • Watchpoints
    • Symbolic Breakpoints
    • Monitoring Expressions
    • Debugger Strip
    • Datatips
    • Data Formatters
    • Mini Debugger
    • Debugger Window
    • Console Window
    • Load Symbols Lazily Option
  • iPhone Simulator

    • Multi-touch
    • Rotation
    • Simulate Low Memory Warning
    • Set Hardware Version
  • Interface Builder

    • Nib Files
    • Nib Objects
    • iPhone Interface Objects
    • Library
    • Layout
    • Inspector
    • Attributes
    • Connections
    • Refactoring
    • Localization
    • Nib Bugs
    • How to Live without Nib.
  • Instruments

    • Trace Documents
    • Trace Pane
    • Trace Details
    • ObjectAlloc
    • Leaks
    • Sampler
    • Shark

The iPhone Platform

iPhone applications fill the whole screen of the iPhone. When you touch the screen, apps receive multi-touch events. They can store data locally and access the web. Apps can play sounds and video, show system specific interface and 3D games. Monitor acceleration, location, take photos, record audio, and probably more.

  • Application Architecture
    • Life Cycle
    • Event Loop
    • Bundles
    • System Events
    • Internationalization
  • Windows and Views
    • Hierarchy
    • Geometry
  • Controllers
    • View Controllers
    • Table View Controllers
    • Table View Cells
    • Navigation Controllers
    • Tab Bar Controllers
  • Touch Events
  • Graphics
    • Quartz
    • OpenGL ES
    • Core Animation
  • Files
    • Property Lists
    • User Defaults
    • SQLite
    • NSData, NSFileHandle, NSFileManager
  • Networking
    • Web Views
    • NSURL, NSURLCache
    • NSStream
    • CFNetwork
  • Preferences
  • Multimedia
    • Sound: Play, Record, Stream, Vibrate
    • Video
    • Photos: Take Them or Pick from iPhoto
    • Accelerometer Events
    • Location

Objective-C

iPhone programming is Objective-C programming. Objective-C is a relatively conservative C extension which add dynamic, object oriented features to classic C.

  • Core Concepts

    • Object Orientation: Objects, Messages, Methods, Classes
    • Dynamic Typing, Static Typing
    • Memory Management: retain, release, autorelease
    • Allocation, Initialization, Deallocation
    • Properties: Declaration, Implementation, Synthesis
    • Protocols
    • Fast Enumeration
  • Foundation Classes

    • NSObject
    • NSString
    • NSArray
    • NSDictionary
    • NSSet
    • NSNumber
    • NSNull
    • NSMutable*
  • Advanced Concepts

    • Categories
    • Exceptions
    • Synchronized Threading
    • Reflection: Selectors, Class Type, Objective-C Runtime

Upcoming Training Courses

Apr 20-22, 2009:
iPhone Application Development

Partners

Our 2008 Hong Kong Web 2.0 training program is being conducted in partnership with the Hong Kong Productivity Council and Hong Kong Open Source Software Center.

HKPC
HKOSSC

Client Login

Login to our Basecamp project management site:

If you do not have a client account with us, then please use our feedback forum at Get Satisfaction.

Contact

We welcome comments and questions from anyone. Simply include who you are, where you're from and what you hope we can do for you. We try to respond to every message.

JadeTower East, Limited
15/F 100 Queens Road Central
Hong Kong
+852-3180-9513