iPhone Development
                                       a whirlwind tour of iPhone development



       Are you ready f...
Overview
      ‣      Introduction

      ‣      Development Tools

      ‣      Distribution

      ‣      Development Pr...
introduction



Tuesday, 24 March 2009
Who am I?
      ‣      Tom Adams, CTO & Co-founder, mogeneration

      ‣      Background in mobile, enterprise, HPC, sem....
mogeneration
      ‣      Founded September 2008

      ‣      Keith Ahern, CEO & Co-founder, ex-News Head of Mobile

    ...
Our work
      ‣      Web

            ‣      The Australian; prior: news.com.au, TrueLocal, moshtix

      ‣      Release...
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 deve...
tools



Tuesday, 24 March 2009
Development tools
      ‣      Xcode

      ‣      Simulator

      ‣      Interface Builder

      ‣      Terminal

     ...
Version control
      ‣      Built in: SVN, Perforce, CVS

      ‣      All the cool kids use git




Tuesday, 24 March 20...
Continuous integration
      ‣      Very important on team projects

      ‣      Release ad hoc builds to clients

      ...
Profiling
      ‣      Rules of profiling

            1.     Profile
            2.     Find bottlenecks
            3.  ...
distribution



Tuesday, 24 March 2009
Developer portal
      ‣      Developer centric

      ‣      Team, keys, app ids, certificates, provisioning profiles

  ...
iTunes Connect
      ‣      Release/distribution centric

      ‣      Only for team agents

      ‣      Distribution to ...
practices



Tuesday, 24 March 2009
mogeneration process
      ‣      Sales

            ‣      Proposal

      ‣      Development (iterative)

            ‣ ...
Project setup
      ‣      Nomenclature

            ‣      Project, target, product, frameworks, SDKs, static libraries

...
Project layout
             $(SRCROOT)/
                   Resources
                   Source/External
                  ...
Code
      ‣      Objective-C has a weak type system, don’t be too fancy

      ‣      Strong typing is good

      ‣     ...
Testing
      ‣      OCUnit (SenTest)

      ‣      GTM

      ‣      GHUnit

      ‣      UISpec

      ‣      OCMock

  ...
Quality
      ‣      clang

      ‣      gcov

      ‣      CoverStory




Tuesday, 24 March 2009
Threading
      ‣      Learn to love asynchronicity

      ‣      Don’t block the main thread

      ‣      Use notificati...
Memory management
      ‣      Retain count

      ‣      Learn & follow the rules

            ‣      For each alloc/new/...
Gotchas
      ‣      The iPhone does not support dynamically linked libraries

      ‣      The simulator uses Mac OS X li...
help!



Tuesday, 24 March 2009
Help
      ‣      iPhone Developer Centre

      ‣      Stack Overflow

      ‣      Mobile Orchard (tutorials)

      ‣  ...
takehome



Tuesday, 24 March 2009
Takehome
      ‣      iPhone is a great device

      ‣      Embrace challenges of a limited device

      ‣      You can ...
Projects
      ‣      FunctionalKit

      ‣      Motive




Tuesday, 24 March 2009
Contact
      Tom Adams
      CTO & Co-founder
      tom@mogeneration.com
      http://mogeneration.com/




Tuesday, 24 M...
Upcoming SlideShare
Loading in …5
×

iPhone Development Overview

7,674 views

Published on

A whirlwind tour of iPhone development.

Published in: Technology, News & Politics
1 Comment
13 Likes
Statistics
Notes
No Downloads
Views
Total views
7,674
On SlideShare
0
From Embeds
0
Number of Embeds
87
Actions
Shares
0
Downloads
377
Comments
1
Likes
13
Embeds 0
No embeds

No notes for slide

iPhone Development Overview

  1. iPhone Development a whirlwind tour of iPhone development Are you ready for mobile 2.0? Tuesday, 24 March 2009
  2. Overview ‣ Introduction ‣ Development Tools ‣ Distribution ‣ Development Practices Tuesday, 24 March 2009
  3. introduction Tuesday, 24 March 2009
  4. 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
  5. 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
  6. 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
  7. Tuesday, 24 March 2009
  8. Tuesday, 24 March 2009
  9. Tuesday, 24 March 2009
  10. Tuesday, 24 March 2009
  11. why iPhone? Tuesday, 24 March 2009
  12. iPhone ‣ What makes the iPhone different? ‣ Cool ‣ Not normal embedded development ‣ Real threading ‣ Real OS ‣ OpenGL ‣ SQL Database ‣ Tool Tuesday, 24 March 2009
  13. tools Tuesday, 24 March 2009
  14. Development tools ‣ Xcode ‣ Simulator ‣ Interface Builder ‣ Terminal ‣ Instruments Tuesday, 24 March 2009
  15. Version control ‣ Built in: SVN, Perforce, CVS ‣ All the cool kids use git Tuesday, 24 March 2009
  16. Continuous integration ‣ Very important on team projects ‣ Release ad hoc builds to clients ‣ Canonical App Store release Tuesday, 24 March 2009
  17. Profiling ‣ Rules of profiling 1. Profile 2. Find bottlenecks 3. Fix 4. Profile … repeat … ‣ Instruments ‣ Leaks, memory usage, CPU usage Tuesday, 24 March 2009
  18. distribution Tuesday, 24 March 2009
  19. Developer portal ‣ Developer centric ‣ Team, keys, app ids, certificates, provisioning profiles ‣ Be careful of who is an agent! Tuesday, 24 March 2009
  20. iTunes Connect ‣ Release/distribution centric ‣ Only for team agents ‣ Distribution to app store, sales reporting, tax, etc. Tuesday, 24 March 2009
  21. practices Tuesday, 24 March 2009
  22. mogeneration process ‣ Sales ‣ Proposal ‣ Development (iterative) ‣ Outline, brief, loose specification ‣ Interaction design, wireframes ‣ Design, L&F ‣ Iterative development ‣ Handover Tuesday, 24 March 2009
  23. Project setup ‣ Nomenclature ‣ Project, target, product, frameworks, SDKs, static libraries ‣ Settings belong at a project level Tuesday, 24 March 2009
  24. Project layout $(SRCROOT)/ Resources Source/External Source/Main/[Models, Services, Views, …] Source/Test/[Models, Services, Views, …] Tuesday, 24 March 2009
  25. 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 ‣ Google Tuesday, 24 March 2009
  26. Testing ‣ OCUnit (SenTest) ‣ GTM ‣ GHUnit ‣ UISpec ‣ OCMock ‣ Hamcrest Tuesday, 24 March 2009
  27. Quality ‣ clang ‣ gcov ‣ CoverStory Tuesday, 24 March 2009
  28. 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
  29. 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
  30. 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
  31. help! Tuesday, 24 March 2009
  32. Help ‣ iPhone Developer Centre ‣ Stack Overflow ‣ Mobile Orchard (tutorials) ‣ http://cocoadev.com/ ‣ http://cocoadevcentral.com/ ‣ Google Tuesday, 24 March 2009
  33. takehome Tuesday, 24 March 2009
  34. Takehome ‣ iPhone is a great device ‣ Embrace challenges of a limited device ‣ You can still do hardcore tech Tuesday, 24 March 2009
  35. Projects ‣ FunctionalKit ‣ Motive Tuesday, 24 March 2009
  36. Contact Tom Adams CTO & Co-founder tom@mogeneration.com http://mogeneration.com/ Tuesday, 24 March 2009

×