iphone development overview
DESCRIPTION
A whirlwind tour of iPhone development.TRANSCRIPT
Are you ready for mobile 2.0?
iPhone Development
a whirlwind tour of iPhone development
Tuesday, 24 March 2009
Overview
‣ Introduction
‣ Development Tools
‣ Distribution
‣ Development Practices
Tuesday, 24 March 2009
introduction
Tuesday, 24 March 2009
Who am I?
‣ Tom Adams, CTO & Co-founder, mogeneration
‣ Background in mobile, enterprise, HPC, sem. web, PKI
‣ On the web
‣ http://adams.id.au/blog/
‣ http://twitter.com/tomjadams
‣ http://www.linkedin.com/in/tomjadams
‣ http://github.com/tomjadams
Tuesday, 24 March 2009
mogeneration
‣ Founded September 2008
‣ Keith Ahern, CEO & Co-founder, ex-News Head of Mobile
‣ Offices in Sydney & Brisbane, 4 people, 7 successful projects
‣ iPhone, Android, mobile 2.0 web
‣ Web
‣ http://twitter.com/mogeneration
‣ http://github.com/mogeneration/
Tuesday, 24 March 2009
Our work
‣ Web
‣ The Australian; prior: news.com.au, TrueLocal, moshtix
‣ Released
‣ OzWeather, Moo Shake!, Xumii
‣ Submitted
‣ Lingopal, TrueLocal
‣ In development
‣ Games, books, physics, photography, coupons
Tuesday, 24 March 2009
Tuesday, 24 March 2009
Tuesday, 24 March 2009
Tuesday, 24 March 2009
Tuesday, 24 March 2009
why iPhone?
Tuesday, 24 March 2009
iPhone
‣ What makes the iPhone different?
‣ Cool
‣ Not normal embedded development
‣ Real threading
‣ Real OS
‣ OpenGL
‣ SQL Database
‣ Tool
Tuesday, 24 March 2009
tools
Tuesday, 24 March 2009
Development tools
‣ Xcode
‣ Simulator
‣ Interface Builder
‣ Terminal
‣ Instruments
Tuesday, 24 March 2009
Version control
‣ Built in: SVN, Perforce, CVS
‣ All the cool kids use git
Tuesday, 24 March 2009
Continuous integration
‣ Very important on team projects
‣ Release ad hoc builds to clients
‣ Canonical App Store release
Tuesday, 24 March 2009
Profiling
‣ Rules of profiling
1. Profile2. Find bottlenecks3. Fix4. Profile … repeat …
‣ Instruments
‣ Leaks, memory usage, CPU usage
Tuesday, 24 March 2009
distribution
Tuesday, 24 March 2009
Developer portal
‣ Developer centric
‣ Team, keys, app ids, certificates, provisioning profiles
‣ Be careful of who is an agent!
Tuesday, 24 March 2009
iTunes Connect
‣ Release/distribution centric
‣ Only for team agents
‣ Distribution to app store, sales reporting, tax, etc.
Tuesday, 24 March 2009
practices
Tuesday, 24 March 2009
mogeneration process
‣ Sales
‣ Proposal
‣ Development (iterative)
‣ Outline, brief, loose specification
‣ Interaction design, wireframes
‣ Design, L&F
‣ Iterative development
‣ Handover
Tuesday, 24 March 2009
Project setup
‣ Nomenclature
‣ Project, target, product, frameworks, SDKs, static libraries
‣ Settings belong at a project level
Tuesday, 24 March 2009
Project layout
$(SRCROOT)/ Resources Source/External Source/Main/[Models, Services, Views, …] Source/Test/[Models, Services, Views, …]
Tuesday, 24 March 2009
Code
‣ Objective-C has a weak type system, don’t be too fancy
‣ Strong typing is good
‣ Beware of using id
‣ Good naming is hard with “named” parameters
‣ Code styles guides
‣ “Introduction to Coding Guidelines for Cocoa”, Apple
‣ “Cocoa Style for Objective-C”, Cocoa Dev Central
Tuesday, 24 March 2009
Testing
‣ OCUnit (SenTest)
‣ GTM
‣ GHUnit
‣ UISpec
‣ OCMock
‣ Hamcrest
Tuesday, 24 March 2009
Quality
‣ clang
‣ gcov
‣ CoverStory
Tuesday, 24 March 2009
Threading
‣ Learn to love asynchronicity
‣ Don’t block the main thread
‣ Use notifications to decouple communications
‣ Use an NSOperationQueue to bound # threads
Tuesday, 24 March 2009
Memory management
‣ Retain count
‣ Learn & follow the rules
‣ For each alloc/new/malloc/malloc a release/free
‣ Use autorelease sparingly
‣ new/create/get
‣ Use new autorelease pools in loops, thread, etc.
‣ Beware of collection class rules
Tuesday, 24 March 2009
Gotchas
‣ The iPhone does not support dynamically linked libraries
‣ The simulator uses Mac OS X libraries
‣ Simulator has 72dpi, iPhones have 160dpi
‣ Remember finger sizes!
‣ Don’t use Xcode to manage provision profiles
Tuesday, 24 March 2009
help!
Tuesday, 24 March 2009
Help
‣ iPhone Developer Centre
‣ Stack Overflow
‣ Mobile Orchard (tutorials)
‣ http://cocoadev.com/
‣ http://cocoadevcentral.com/
Tuesday, 24 March 2009
takehome
Tuesday, 24 March 2009
Takehome
‣ iPhone is a great device
‣ Embrace challenges of a limited device
‣ You can still do hardcore tech
Tuesday, 24 March 2009
Projects
‣ FunctionalKit
‣ Motive
Tuesday, 24 March 2009
Contact
Tom Adams
CTO & Co-founder
http://mogeneration.com/
Tuesday, 24 March 2009