iOS Application Development HandsOn Training

Course Code:

Duration: 5 days

Overview

iPhone Operating System  or iOS is an Operating System developed by Apple for its mobile devices.

Popularity of iPhone as an application development platform can be judged from the number of

applications that exist at Apple App store. There are over 225,000 iPhone applications at the App store.

One of the main reasons for its popularity is the strong developer community behind iPhone.

 This 5day program is meant for programmers (amateur and professional, with experience with at least

one Object Oriented language) who want to start developing applications for the iPhone platform. This

course will start with the very basics and go on to advanced levels with a strong emphasis on practical

learning by the way of examples, demos and lab exercises. This course will cover the various iPhone APIs

(media, UI, storage, networking etc.) that are available with the iOS. The additions made to the iOS API

with iOS 4.x and iPad will also be covered.

PreRequisites

  • Although we don’t require participants to know ObjectiveC, programming experience in an Object
  •      Oriented Programming (OOP) language like Java, C++, C# is a must for effective learning during the course.
  • We expect the students to have basic understanding of OOP concepts like Inheritance, Polymorphism, interfaces etc.

Software

We will be using XCode 4.0 and latest iOS SDK version for example code and lab exercises.

Objectives

 Introduce new comers to iPhone Development Environment i.e XCode, Interface Builder etc.

  •  Enable programmers to read and write effective ObjectiveC code.
  •   Introduce new comers to the different patterns and practices used by Apple for application development.
  • Enable programmers to use the Apple provided frameworks for developing applications.
  •  Provide extensive coverage with examples of User Interface programming using Cocoa Touch.
  • Cover extensively the different data persistence APIs available including SQLite.
  • Introduce with examples the practical code examples the various frameworks provided by apple for
  • Multimedia, graphics, networking etc.

Course Outline

Day 1

1. Introducing iPhone & iOS

1.1. iPhone

1.2. iOS Platform

1.3. iOS Architecture and Software Stack

2. iOS Development Environment

2.1. Introduction to iOS SDK

2.2. Introduction to iOS 4.x.

2.3. Using XCode 

2.4. Using Interface Builder

2.5. Using iPhone Simulator

3. ObjectiveC Basics

3.1. Fundamentals

3.2. Object Oriented Programming using ObjectiveC

3.2.1.Classes & Objects

3.2.2.Properties

3.2.3.Protocols

3.2.4.Categories

3.3. Memory Management

3.3.1.Reference Counting

3.3.2.Autorelease

3.4. Introduction to Foundation Framework

3.5. Working with basic Foundation Framework classes

3.5.1.NSString

3.5.2.NSArray

3.5.3.NSDictionary

4.Hello IPhone

4.1.  Creating a simple application

4.2. Creating a simple application with User Interaction

Lab Session – Day 1

Day 2

5.  iPhone Application Basics

5.1. Anatomy of an iPhone application

5.2. Application Life cycle and States

5.3. Debugging an iPhone application

5.4. Patterns & Practices used by Apple for application development

6.User Interface Programming  Basics

6.1. Cocoa & Cocoa Touch Frameworks

6.2. Views 

6.3. Custom Views

6.4. Handling Key board

6.5. View Controller

6.6. Orientation Management

6.7. Basic User Controls

6.7.1.Labels, Text Fields, Buttons, Sliders, Picker etc.

6.7.2.Building application screens 

6.7.3.Adding user event handling – Touch Events

6.8. Alerts and Action Sheets

6.9. Toolbars

7.User Interface Programming – Intermediate

7.1. Image View

7.2. Web View

7.3. Table Views

8. User Interface Programming – Advanced

8.1. Applications with Multiple Views

8.2. Animating View Switching

8.3. Simple View Controller for Multiple Views

8.4. Tab based applications (Tab Bar Controller)

8.5. Navigation based applications (Navigation Controller)

Lab Session – Day 2

Day 3

9. Multi Touch and Gestures API

10. Sensors

10.1. Accelerometer

11. iPad Programming

11.1. Universal Application

11.2. SplitView Controller  

11.3. Popover Controller

12. 2D Graphics & Animation

12.1. Quartz 2D & Core Graphics

12.2. Animation

13. 3D Graphics and OpenGL ES

13.1. Introduction to OpenGL ES

13.2. OpenGL ES 1.x vs 2.x

13.3. Drawing Geometry

13.4. Textures

14. Application Preferences

14.1. Application Settings and Preferences

14.2. Settings Bundle

14.3. Reading Settings

14.4. Modifying Settings Bundle

14.5. Implementing User Interface for setting preferences

Lab Session – Day 3

Day 4

15. File I/O

15.1.  File System

15.2. Application Folders

15.3. File permissions

15.4. Moving around in the File System

15.5. Creating, Updating and Deleting Files

15.6. XML file parsing.

16. Location API & Maps

16.1. Core Location 

16.2. Mapkit

16.3. Implementing Location Based Services

17. Data Persistance

17.1. Persisting Application Data

17.2. Working with SQLite databases

17.3. Core Data

18. Multimedia programming

18.1. Playing Audio & Video

18.2. Recording Audio & Video

18.3. Camera

Lab Session – Day 4

Day 5

19. Networking, Connectivity etc.

19.1. Making web request

19.2. Restful services

20. Localization

20.1. Introduction to Localization and Internationalization

20.2. Making your applications Localized

20.3. NSLocale class

21. Background Work

21.1. Multitasking

21.2. Grand Central Dispatch

21.3. Threads

22. Instruments and Application Performance

23. Application Deployment  

Lab Session – Day 5