Beginning Professional iPhone App Development

Christina Moulton, Teak Mobile Inc.

@ChristinaMltn, christina@teakmobile.com

KW iOS Training

Schedule

Session 1: Design Patterns & Obj-C Features, Apple's Tools, SDK & Core Classes

Exercise 1: Interface Builder, IBOutlets & IBActions

Lunch

Session 2: iOS App Ecosystem, 3rd Party Tools & Testing, Key Resources

Exercise 2: JSON REST APIs, Storyboards & Tableviews

Session 3: Code Signing, App Store Submission, What Should Be a Native App vs. Web App

Session 3:

Code Signing: Local & Beta Testing

App Store Submission

What Should Be a Native App vs. Web App

Installing an App on a Developer Device

Over USB

Sign up for iOS Developer Program ($99/yr)

Create & install iOS Development certificate

Add device to Provisioning Portal

Create & install Development Provisioning Profile

Build & run with Development Provisioning Profile

Code Signing: Local & Beta Testing

Create App ID (if using Push, GameKit, ...)

Create & install Ad Hoc Distribution Provisioning Profile

Build & archive with Ad Hoc Distribution Provisioning Profile

Share from Xcode Organizer (e.g., TestFlight)

They either drag the .ipa in to iTunes or install over-the-air

App Store Submission

Create App ID (if using Push, GameKit, ...)

Create & install App Store Distribution Provisioning Profile

Remove debug code (NSLogs are slow, check analytics IDs)

Build & archive with App Store Distribution Provisioning Profile

Create app (or update) in iTunesConnect

Fill in iTunesConnect data

Set iTunesConnect app to "Ready to Upload"

Verify & submit from Xcode Organizer

Wait (usually 5-8 business days)

Native vs. Web App

Native

Speed, memory

Easier to create native-feeling UI

Immediate access to new features

Persistence & offline operation

Easier immersive or touch-drive UIs (reduced lag)

Easier security

Web

Reuse existing pages

Multi-platform ("write once, test everywhere")

Can extend with native wrapper

Also available within browser

Webviews are often buggy or lag other browsers

Immediate app updates

Standards fragmentation

Native vs. Web App

Choose Native

Deep, rich touch-driven UX

Intense in-memory or processing requirements

Users are often offline

Want to use iOS native components

Bleeding edge or deeply detailed device features (e.g., camera flash control)

App Store marketing channel

Choose Web

Existing web-based assets

Need multi-platform, fast

At most a few non-core native features (e.g., camera, location)

Rapid prototyping

Skills availability

Control over distribution & updates

Target new platforms: Cars, etc.

Thanks!

Questions?

Christina Moulton, Teak Mobile Inc.

@ChristinaMltn, christina@teakmobile.com

KW iOS Training