Christina Moulton, Teak Mobile Inc.
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
Code Signing: Local & Beta Testing
App Store Submission
What Should Be a Native App vs. Web App
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
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
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)
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
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
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
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.
Christina Moulton, Teak Mobile Inc.