iOS Programming

This course delves into all of the subjects one needs to know, in order to build iPhone/iPad applications with Apple iOS. Assuming no prior iOS development experience, this course starts at the beginning, identifying what is needed to obtain the iOS SDK and continuing with a thorough exploration of Objective-C, the native programming language for iOS.

After all of the necessary foundations have been established, the iOS SDK and its related development tools are introduced, providing a detailed examination of views, controls, view controllers, and the event based lifecycle they participate in.

In addition to discovering how to create dynamic graphical user interfaces, topics in user input, data persistence (including through the iCloud), local notifications, and internationalization are also illustrated with lectures, demos, and lab exercises.

The course finishes with detailed information on the different options for distributing your application: from deploying to your own and team members' devices (for testing) to posting an app in the iTunes App Store.

Throughout the course, students build a scheduling app used to organize a personal agenda for a "software developer conference."

The course is divided into two modules

  • Objective-C
  • iOS Application Development

The first module covers Objective-C - the language for creating rich, responsive applications for Mac OS X, the iPhone and the iPod Touch. This class teaches the syntax of the Objective-C language and the basics of the foundation classes. This includes user-defined objects, an in-depth review of the foundation classes for numbers, strings, arrays, dictionaries and dates, and an overview of the Objective-C memory management model.

The second module of the course builds on knowledge of Objective-C programming and teaches you how to develop iPhone and iPad applications.
Students will learn how to create dynamic applications that conform to Apple's Human Interface Guidelines and Model-View-Controller (MVC) best practices for design.

This includes building screens, developing your program, testing your application and submitting it to the iTunes App Store. This course covers all the major screen objects available to an iPhone and iPad application.

Duration : 56 Hrs | 28 Days | 4 Weeks

Program Contents

Thinking in Code: Basic C
  • How Code Works
  • How to Format Code
  • Variables
  • Functions
  • Example: FirstProgram
  • Scope
  • Conditionals
  • Example: Shopping Trip
  • Wrap Up
  • History
  • Basic Rules
  • The Main Method
  • NSString
  • NSLog
  • Built-in Data Types
  • History
  • Conditionals
  • Loops
  • Foundation Classes
  • Classes: Interface, Implementation, and Inheritance
  • Objects & Pointers: Creation, Initialization, and Messaging
  • Enumerations
  • Method Visibility
  • ARC - Automatic Reference Counting
  • Protocols
  • Categories
  • Selectors
  • Blocks
Basic Program Setup and c++ Language Requirements
  • Xcode
  • NSLog Function
  • c++ Variables
  • Xcode and a Command Line Program
  • Run
  • Program Commands
  • Application Name
  • Executable
  • Outputs
  • NSLog Implementation
  • Simple c++ Variable Types
  • Complex c++ Variable Types
  • Mathematical Equations and Operators
  • Typecast Variables
  • #define and const
  • Random Numbers
Control Flow
  • Structure
  • Conditions
  • Code Blocks
  • if Statements
  • Loops
  • Structure
  • Interface Definition
  • Reference in a Program
  • Implementation
User-defined Classes
  • Object Concept
  • Properties
  • Tasks
  • Property and Synthesize Statements
  • Code Structure
  • Creating an Instance
  • Inheritance
  • Class Methods
  • Code Organization
Memory Management
  • Object Creation
  • NSObject
  • Retain Count
  • Garbage Collection
Memory and Pointers
  • Advanced C
  • Arrays
  • Loops
  • Text Strings
  • Multidimensional Arrays
  • Pointers
  • Dynamic Memory
  • Strings and Dynamic Memory
  • Arrays of Strings
  • Example: AddressBook
  • Structs
  • Header Files
  • Compile and Run the
  • HeaderFileTest Example
  • Create Files for the Song Struct
  • Final Example
Thinking in Objects
  • Structs and Classes
  • Accessors
  • Inheritance
  • Composition
  • Object Lifetime
  • Built-in Classes
More on Memory Management
  • Class Name Prefixes
  • Properties
  • 64-Bit Objective-C
  • Categories
  • Introspection
  • Protocols
  • Dynamic Messaging
  • Exceptions
  • Example: DataCollector
Foundation Classes
  • Class Methods (Constructors)
  • Instance Methods (Constructors)
  • Mutability
  • Mutable vs. Non Mutable
  • Core Foundation
  • NSNumber and NSNumberFormatter
  • NSString and NSMutableString
  • NSArray and NSMutableArray
  • NS Dictionary and NSMutableDictionary
  • NSUserDefaults
  • NSDate and NSDateFormatter
  • NSSet, NSValue
  • NSData
Copying Objects
  • Shallow vs. Deep Copy
  • Copy and MutableCopy
Basic Controls
  • Windows and Views
  • Targets and Actions
  • Outlets
  • Datasources
  • Bindings
Designing Applications Using MVC
  • About This Project
  • Create the Project Files
  • Create the User Interface
  • Run the Application
  • Preparing for Release
Custom Views and Drawing
  • Basic Geometry
  • Basic Drawing
  • Bezier Paths
  • Images
  • Shadows
  • Gradients
  • History
  • Refactoring View Code
  • Text
  • Handling Mouse and Keyboard Events
iOS Programming
iOS Overview
  • What is iOS?
  • iPhone and iPad
  • Apple Developer Membership
  • Overview of the iOS Architecture
  • Cocoa Touch Layer
  • GameKit Framework
  • iOS Core Services Layer
  • Navigator, Utilities, and Editor
  • Types of Builds (Debug, Test, Analyze, Archive)
  • Build Configurations & Targets
  • Adding Frameworks
  • Organizer
  • Tips and Tricks
Developing Basic Applications for iOS
  • Starting Xcode 4
  • Building the User Interface
  • Running the iOS Application
  • The "Hello World" App
Cocoa Touch
  • UIApplication Life Cycle Methods
  • Delegates
  • UIResponder
  • Notifications
  • Storyboards, Scenes, and Segues
  • Window, Basic Views and Controls
View Controllers
  • Life Cycle Methods
  • Multitasking / Memory Issues
  • IBOutlet
  • IBAction
Navigation, Tab Bar, and Master-Detail Controllers
  • Data Source and Delegates
  • Static Tables
  • Prototypical Tables
  • Accessories
Views and Windows
  • The View Hierarchy
  • Types of Views
  • The Window
  • View Resizing and Layout Handling
  • Alert Views
  • Images and Image Views
  • Web Views
  • Scroll Views
  • Internationalization (i18n)
  • Local Notifications
Navigation with Tab Bar
  • The Tab Bar
  • View Controllers in Multiview Applications
  • The Root Controller
  • Adding Items to the Tab Bar
Navigation with Table View
  • Overview of the Table View
  • Table View Styles and Cell Styles
  • DataSource and Delegate Connections
  • Navigation-based App using Table Views
  • Overview of Storyboarding
  • Adding Scenes to the Storyboard
  • Configuring Segues and Transitions
  • Associating a View Controller with a Scene
Page-based Application using UIPageViewController
  • UIPageViewController Class
  • The DataSource
  • Navigation Orientation
  • UIPageViewController Delegate Protocol
  • Content View Controller
  • The Data Model
UIDatePicker and UIPickerView
  • DatePicker and PickerView Components
  • Designing the User Interface
  • Providing Functionality to DatePicker
  • UIPickerView Delegate and DataSource
  • Implementing the DataSource Protocol
  • Implementing the Delegate
User Input
  • Action Sheets
  • Text Fields & Keyboards
  • Gestures
  • Handling Rotation
Basic Data Persistence
  • User Defaults
  • File System
  • iCloud Key/Value Pairs
iPad Interfaces
  • Universal Applications
  • Popovers & Split Views
Debugging & Profiling
  • Instruments
Database Applications with SQLite and Core Data
  • The Core Data Stack
  • Managed Object Model
  • Creating a Core Data Application
  • Saving and Retrieving Data using Core Data
  • SQLite Overview
  • Structured Query Language (SQL)
  • SQLite Integration in an iOS Project
  • SQLite Functions
  • Working with an SQLite Database
  • Saving Data to the Database
  • Extracting Data from the Database
Using iCloud in Applications
  • iCloud Overview
  • Usage Guidelines
  • Preparing the Application for iCloud Access
  • Enabling iCloud Document and Data Storage
  • iCloud Key/Value Data Storage
  • Sharing Data between Applications
  • Extracting Data from the Database
Map Applications with MapKit
  • The MapKit Framework
  • Map Regions
  • The MKMapView Class
  • Adding the MapKit Framework to the Application
  • Adding Tool Bar Items
  • Modifying the MapView Region
  • Changing the Map Type
  • Updating View based on User Movement
Camera Applications
  • UIImagePickerController Class
  • Saving Movies and Images
  • Adding Framework Support
  • Implementing the Action Methods
  • Writing Delegate Methods
Multitouch and Gestures
  • Responder Chain
  • Gestures, Taps, and Touches
  • Touch Notification Methods
  • Enabling Multitouch on the View
  • UIGestureRecognizer
  • Detecting Tap, Pinch, and Rotation Gestures
AVAudio Applications
  • The AVFoundation Framework
  • Supported Audio Formats
  • The AVAudioPlayer Object
  • Implementing the AVAudioPlayerDelegate Protocol Methods
  • The AVAudioRecorder Object
  • Implementing Action and Delegate Methods
Ad Hoc Device Provisioning & Application Deployment
  • The Provisional Portal
  • Deploying to Your Own Device
  • Ad Hoc Distribution
  • Enterprise Distribution
  • iTunes App Store
Audience :
  • Software developers who are new to Objective-C and the iOS SDK.
Pre-requisites :
  • Good understanding of C and strong development experience in any Object Oriented programming language

Apply now at

Next Steps

Find Talent Gaps

Find Talent Gaps Understand your
iOS Talent
Risks within
60 minutes.
Contact us today
for a free
Talent Gap Assessment.

Certify Your Skills

Find Talent Gaps Providence's Certification
Program helps
you develop,
practice and test the
technology skills required
to dazzle in the IT arena.

Already Providence Trained ?

You can always take the
fast track to certification.

Stay in Touch

we are Social geeks