Mobile App Development // IOS300

Introduction to iPhone and iPad Application Development using iOS7 and Xcode 5

Application Development for iPhone / iPad.  Learn how to build Apple mobile apps in this programming course using iOS7, SDK, Objective C and Xcode 5

Course Description

Building successful iPhone and iPad applications requires that developers understand the requirements from Apple for designing and building applications, as well as how to use the technologies involved. This course covers all topics from design, to development and deployment. This course provides lecture and hands-on training with the tools and Objective C to ensure students are able to create applications that adhere to Apple guidelines.  Classroom topics can be customized to your organization.

AUDIENCE

This course is intended for professional developers who want to be begin creating applications for iPhone and iPad

PREREQUISITES

Before attending this course, students must be an experienced software developer.
Experience with object-oriented programming is helpful but not required.

WHAT YOU WILL LEARN

After attending this course, students will be able to:

  • Understand the background and overall structure of iOS
  • How to navigate and use the tools of the iOS SDK
  • Running Cocoa Touch Applications in a simulator
  • Understand structure of Objective-C 2.0
  • Navigate and understand Xcode 5 including its integrated Interface Builder
  • Respond to touch events
  • Set up and manage iOS controls such as text fields, buttons, and pickers.
  • Work with table views, navigation controllers, and other UI components
  • Persist user data and application state

COURSE OUTLINE

1. Getting Started with iOS development
Types of Apps

  • iPhone, iPad, iPod Touch, Universal
  • Immersive Apps (Games, custom interfaces)
  • Productivity Apps
  • Utility Apps


Strategies in Designing Apps

  • Researching competition
  • Pricing Methods
  • Advertising


iOS Human Interface Guidelines

  • Overview
  • Highlights of HIG


Setting Up Your Environment

  • Registering with Apple
  • Join an iOS Developer Program
  • Downloading the SDK


2. Anatomy of a Project
Xcode 5 - the IDE for Creating Apps

  • Create New Project
  • Single View
  • Tabbed Application
  • Utility Application
  • Edit, Maintain, Prepare Files
  • Window Panes, View, Library, Inspector Toolbar
  • Designing the User Interface
  • Connecting objects


iOS Simulator    

  • Run applications without device
  • Test UI
  • Hardware Interactions
  • Shake, rotate left/right
  • Home, Lock, tv out
  • Gestures


Debugger

  • Running applications
  • Breakpoints


3. Programming Basics

Objective-C

  • Syntax
  • Objects
  • Classes
  • Header and implementation files
  • #import, @implementation, @synthesize
  • @property
  • getters / setters
  • alloc, init
  • Instances
  • Sending Messages / calling methods


4. Memory Management

Memory Management

  • Overview
  • Reference Counting
  • Release


5. Design Patterns

Cocoa Touch

Exploring Frameworks

  • UIKit framework
  • Foundation Framework, NS-prefix
  • CL-prefix


View controller

Delegation

MVC

6. View Controllers and Views

Configuring the View

  • Add UI Elements
  • Add Actions
  • Create and Connect Outlets using Xcode and by code


Implement the View Controller

  • Implement methods
  • Configure view controller as delegate


7. Working with Data

Data Options

  • Property Lists
  • SQLite
  • Core Data
  • Object Archives
  • iCloud


Table Views

  • Plain and Grouped Tables
  • Populating with Data


8. Navigation Controllers

Approaches

  • Tab Bars
  • Drill down


9. Camera

Camera

  • Checking Device
  • Testing with Simulator


10. Core Location and Map

Core Location

  • Latitude and Longitude
  • GPS
  • Cell Tower triangulation
  • Wi-Fi positioning service


Map

  • Displays map
  • Network connection


11.Web Services

Fetching Data

  • NSURL
  • NSURLRequest
  • NSURLConnection



12. Unit Testing

Cocoa Touch Unit Testing Bundle

  • Target Options
  • Schemes
  • Setting up logic


13. Distributing Applications

Tasks

  • Publish for Testing
  • Publish to App Store