Developing iOS applications for iPhone and iPad

Training code

Upcoming sessions

Learning Goals

The course will teach you the basic skills you need to develop iPhone and iPad applications. Starting with Objective-C and XCode, you will build your first iPhone application on the first day! Then you will explore more features of iOS development and learn more about Objective-C and XCode as you go along. No need to bring an iPhone or iPad (although you can of course) since XCode allows you to develop using the iOS emulator.

Target Audience

This course is intended for developers who want to develop apps for Apple iPad, iPhone or iPod Touch.


This is an introductory course for professional programmers. You should be familiar with general programming techniques.

Course Outline

iOS and the structure of an iOS App

The iOS platform enables radically different ways of using software. We will introduce iOS as platform for building mobile applications, and discuss the design patterns needed to create an application that conforms to the Apple User Interface Design guidelines.

  • Layers of iOS
  • Limitations of the mobile platform
  • Native vs web apps
  • Access to hardware and software
  • One active application and one window
  • Limited access, response time, screen size, system resources
  • The iOS SDK, the APIs and frameworks

Object-Oriented Programming in Objective-C with Xcode

iOS development is Object-Oriented development. In this chapter you will get an introduction to object-oriented programming with Objective-C and XCode.

  • Object-Oriented programming in Objective-C
  • Creating instances of a class
  • The Message syntax
  • Objective-C Program Structure
  • Creating projects, compiling, running and debugging with Xcode
  • Introduction to Interface Builder
  • iOS Simulator

Defining Classes

Time to build software by means of an hierarchy of classes. You will learn to define classes, create object instances.

  • Defining a class: interface and implementation
  • Object lifetime: Understanding Reference counting and ARC
  • Methods and Properties
  • Allocating and initializing objects
  • Class methods vs. Instance methods

Inheritance and Polymorphism

In object-oriented programming you frequently re-use an existing class by specializing it, instead of re-inventing the wheel. You need to have a solid understanding of inheritance, polymorphism to make full use of frameworks.

  • Defining a class: interface and implementation
  • Object lifetime: Understanding Reference counting and ARC
  • Properties
  • Allocating and initializing objects
  • Class methods vs. Instance methods

Model - View - Controller

One of the most important concepts in iOS development is Model-View-Controller, also known as MVC. In this module you will gain insight in this pattern, and how to use it for building iOS applications with XCode and Interface Builder

  • The Model-View-Controller pattern
  • Introduction to application delegates
  • Interface Builder outlets and actions
  • Using Views
  • View Hierarchy
  • View based application templates
  • View controllers
  • Working with storyboards

UI Controls

This module introduces the widgets and controls used to build the user interface.

  • Active and Passive Controls
  • Image View and Text Fields
  • The Touch Keyboard
  • Slider and Label
  • Switches, Button, Segmented Control
  • Using UIWebView to embed web content
  • Action Sheet, Alert View

Common Foundation Classes

In this module you will learn about the most important built-in types in iOS

  • The difference between immutable and mutable objects
  • Class Clusters
  • Strings and Dates
  • Collection classes for arrays, sets and dictionaries.
  • Fast Enumeration
  • NSNumber, NSNull, NSData, NSURL
  • File Saving Strategies
  • Property Lists
  • Archiving Model Objects
  • Intro to Core Graphics CGPoint, CGRect

Introduction to Table Views

A table view presents a scrollable list of items that are often used for hierarchical navigation.

  • Introduction to table views
  • Table View Styles
  • Table-View Cells
  • Building a static table view with interface builder


Protocols add flexibility to program design by letting you type objects by behavior rather than by class. You will learn to define protocols and how a class can adopt a protocol by implementing all of the protocol’s required methods

  • Using Protocols
  • Declaring protocols for others to implement
  • Conforming to a Protocol
  • Testing for Conformance
  • The delegate pattern: Building a dynamic table view.

Categories and Extensions

Categories allow us to add methods to existing classes without using inheritance. Extensions provide another way to hide declarations of private methods .

  • Categories
  • Extensions

Tab Bars and Pickers

The user interface often has to be designed to support a multi view apps, including switching tabs to change the view.

  • Selecting values with a Picker Control
  • Using pickers to select values from a predefined set of values.
  • Date Picker, Single-component picker, Multi-component Picker
  • Dependency between components
  • Creating a custom picker


The iOS has a robust localization architecture that lets you easily translate your application into multiple languages.

  • Support for Internationalization
  • Preparing for Localization
  • Localizing String Resources
  • Localizing storyboards
Upcoming sessions at U2U in Brussels, Belgium:

To organize this course on-site, please contact

Course Calendar
Courses On Site
Course Agenda in PDF
Become a U2U trainer

Contact Me

Call me
Send U2U folder
Send more info