5 Realms
for Learning iOS Development
Summary
•

To the beginning iOS developer the formalities of
classes, frameworks, design patterns, and
learning an all new integrated development
environment can be overwhelming.

•

Today we'll discuss a useful breakdown of the
realms of developing in iOS and provide
resources for learning applicable to each realm.
My Background
• Owned first generation iPhone in 2007
• iOS Developer since 2010.
• Self taught iOS programmer
• Introduction of the iPad pushed me into
learning how to program for business use
• Published first app to Apple app store in 2011
My Motivation
• increase mobile literacy - mobile is a different
animal
• to sample reality for Veray Intelligence
• if you really want to know something, teach it
My Motivation
• I recall my pain in 2010-2011
• when beginning iOS development it's easy to
get utterly stuck and want to give up on
learning
Goal For Today

•

Knowing which realm you're having trouble in
really helps in finding the solution and getting
unstuck in your learning efforts.
5 Realms
Design
Patterns

Objective-C
Xcode
IDE

iOS SDK

OOP
5 Realms + 1
Design
Patterns

Objective-C
Xcode
IDE

iOS SDK

OOP
Mac OS X
5 Realms
1. Common Design Patterns
2. Objective-C language and syntax
3. iOS SDK Frameworks and Application Flow
4. Object Oriented Programming
5. The Xcode IDE
5 Realms + 1
(and a possible sixth realm for people starting out
who are new to Macs)
!

6. Mac OS X
Realm
Common Design Patterns
1. Model - View - Controller
2. Template Method Pattern
3. Responder Chain
4. Outlets, Targets, and Actions

Design
Patterns
Realm
Common Design Patterns (continued)
1. Notifications
2. Singletons

Design
Patterns
Realm
Resources
•

Cocoa Design Patterns by Buck and
Yacktman

Design
Patterns
Realm

Objective-C

Objective-C language and syntax
•

objective-c language
•

superset of C language

•

data types, expressions, arrays, dictionaries

•

looping and enumeration

•

objective-c literals (shortcuts)
Realm

Objective-C

Objective-C language and syntax
•

objective-c messaging syntax
•

bracket notation

ie: [someClassInstance someMessageToInstance];
Realm

Objective-C

Objective-C language and syntax
•

Blocks

•

Protocols

•

Memory management
•

ARC - Automatic Reference Counting

•

MRC - Manual Reference Counting
Realm

Objective-C

Resources
•

Programming in Objective-C fifth edition by
Stephen G. Kochan
Realm

iOS SDK

iOS SDK Frameworks and Application Flow
•

Cocoa Touch Layer (Frameworks)
•

•

Foundation, UIKit, etc.

iOS SDK versions ie: iOS 7
Realm

Resources
•

google "ios technology overview"

iOS SDK
Realm

OOP

Object Oriented Programming
•

Classes, Objects and Methods

•

ivars - Instance Variables

•

Properties
•

•

accessor methods (getters and setters)

Variable Scope (public, private)
Realm

Object Oriented Programming
•

Inheritence

•

Polymorphism

OOP
Realm

OOP

Resources
•

google "object oriented programming"

•

see Irving iOS Jumpstart discussion board for
link to Stanford University OOP course
Realm

Xcode
IDE

The Xcode Integrated Development Environment
•

Editor and Compiler

•

Debugging

•

Source Code Repository

•

Automated Testing
Realm

Xcode
IDE

The Xcode Integrated Development Environment
•

Build Management

•

On-Device Testing

•

Performance Tuning
Realm

Resources
•

google "Xcode overview"

Xcode
IDE
Realm +1

Mac OS X

Mac OS X Resources
•

Hardware requirements

•

Alternatively
•

http://www.macincloud.com

•

(haven't tried it but appears to be vnc to an
actual mac)
5 Realms + 1
Additional Links to be Posted
in Meetup Discussion Group
Design
Patterns

Objective-C
Xcode
IDE

iOS SDK

OOP
Thank You!

5 Realms for Learning iOS Development