Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mobile Development for Web Developers

Avatar for jacksonh jacksonh
April 20, 2012

Mobile Development for Web Developers

Presentation from Miracle Open World 2012. An introduction to mobile development for web developers.

Avatar for jacksonh

jacksonh

April 20, 2012
Tweet

Other Decks in Technology

Transcript

  1. I am a new-ish mobile developer • Worked for eight

    years on the Mono Project • Lead mobile development at Entrada Health Friday, April 20, 12
  2. Mobile Expense App • Use camera to take pictures of

    receipts • Use GPS to determine restaurant names • Use GPS to record mileage • Use clock to record time of expense • Use calendar and address book to determine purpose/ attendees Friday, April 20, 12
  3. iPhone 4S • 960x640 Pixel Display • 8MP rear camera

    (1080p Video) • 0.3MP front camera (480p Video) • Speaker • Two microphones (top and bottom) • Headphone Jack • 3 Axis gyro • Accelerometer • Proximity sensor • Ambient light sensor Friday, April 20, 12
  4. Audio Routing Options • Apple headset • Loudspeaker • Top

    Microphone • Bottom Microphone • Bluetooth Device • AirPlay (out only) • USB Audio Accessories Friday, April 20, 12
  5. Good Apps • Use Hardware • Integrate with existing services

    • Understand they are always with the user Friday, April 20, 12
  6. iOS: It’s just Unix • Processes, Threads, Directories, Files •

    SQLite, plist files (xml), PNGs • Model, View, Controller Architecture Friday, April 20, 12
  7. MVC • Models: Classes, persisted via SQLite • Controllers: Control

    App flow • Views: .xibs (iPhone and iPad) Friday, April 20, 12
  8. Inactive State • Since iOS5 this is mainly just a

    transitional state • Will not receive UI events • Should pause execution • Can transition to Active or Background Friday, April 20, 12
  9. Background State • Screenshot Taken • Release Resources, Save Data,

    Stop Timers • Approximately 5 seconds to complete • Background Tasks Friday, April 20, 12
  10. Background Tasks • Can run for aprox ten minutes •

    Notified when time has expired • Aprox 2 seconds to respond to notification • App will be terminated if you do not complete Friday, April 20, 12
  11. Waking from the Dead • Screenshot Displayed • Pending Notifications

    before UX Input • Important to monitor App Settings Friday, April 20, 12
  12. Notifications • Local: Scheduled • Remote: Pushed • Icon •

    Sound • Badge Count Friday, April 20, 12
  13. Push Notifications • JSON • Max 256 byte payload •

    Routed through Apples Push Notification Servers • “Best Effort” but not guaranteed Friday, April 20, 12
  14. Push Notifications APNS Your Server APN Token + Identifier APNS

    Token Push Notification Push Notification Request Token Friday, April 20, 12
  15. Provisioning Profiles • Applications are signed with certificates • Signing

    “seals” an app and identifies it • App ID, Developer Certificate and permissions combine to make a provisioning profile • Three distribution models Friday, April 20, 12
  16. • Likely not for you • Used by large companies

    to distribute in house apps Enterprise Distribution Friday, April 20, 12
  17. Ad-Hoc Distribution • Up to 100 devices can be register

    per developer account • Can be distributed “over the air” • Useful for testing, sales demos, hot fixes • Distributed as .IPA files • Installation is a two stage process Friday, April 20, 12
  18. IPA Files • Zip files that contain the app, its

    resources, and provisioning file Friday, April 20, 12
  19. App Store Distribution • Requires Approval • Apps must be

    available via search • First submission: ~9 days • Updates: ~6 days • Updates can be held for release Friday, April 20, 12
  20. App Store • Profound impact on development cycle • 12

    day confidence • Dependencies on public APIs: • “Proxy” the API • Client side config Friday, April 20, 12
  21. Rejection • Rejection is usually due to "marketing" • Do

    not ask for additional info • Fix or Appeal • Metadata fixes ~1 day, app fixes ~6 days • Appeals ~2 days Friday, April 20, 12
  22. Networks • Poor 3G and WiFi connections • Proxies and

    strange security • Develop an offline strategy Friday, April 20, 12
  23. Physical Access • Delete a file, update a row in

    a database, clear a cache • Command URLs: upload, delete, update row (execute SQL) • iExplorer: manually pull files off device Friday, April 20, 12
  24. Testing • Mobile requires a different testing mix • Unit

    tests are still important • But compared to web dev, a higher percentage of functional and manual tests are needed Friday, April 20, 12
  25. Three types of tests • Unit: low level • Manual:

    UX, functionality, sanity (scripts + use cases) • Automation: Load testing, Upgrade testing, Functional tests Friday, April 20, 12
  26. Automation Testing • Load testing: file handles are freed, memory

    leaks, log file rotation • Upgrade Testing: ensure clean upgrade paths, ensure old versions work with new web services • Functional Testing: the app does what it is Friday, April 20, 12