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

Casualties: One Desk. How we made one mobile ap...

Casualties: One Desk. How we made one mobile app for four platforms in 40 days

Tools used and lessons learnt when the team at Media Pop built a mobile app for Android, BlackBerry 10, iOS and Windows Phone 8 in 40 days.

Björn Andersson

December 20, 2013
Tweet

More Decks by Björn Andersson

Other Decks in Programming

Transcript

  1. @gaqzi Casualties:  one  desk Björn Andersson How  we  made  one

     mobile  app  for  four  platforms  in  40  days
  2. @gaqzi What  did  we  build? • Source material is high

    resolution PDFs • The individual pages are rendered as JPEGs
  3. @gaqzi What  did  we  build? • Source material is high

    resolution PDFs • The individual pages are rendered as JPEGs • A lot of different resolution assets
  4. @gaqzi What  did  we  build? • Source material is high

    resolution PDFs • The individual pages are rendered as JPEGs • A lot of different resolution assets • Support for Android, BlackBerry 10, iOS and Windows Phone 8
  5. @gaqzi Who  is  your  daddy,  
 and  what  does  he

     do? • 3 man team • Frontend designer
  6. @gaqzi Who  is  your  daddy,  
 and  what  does  he

     do? • 3 man team • Frontend designer • Backend developer
  7. @gaqzi Who  is  your  daddy,  
 and  what  does  he

     do? • 3 man team • Frontend designer • Backend developer • Tie-it-all-together full stack developer
  8. @gaqzi How  it  was  planned  -­‐  app One week for

    common functionality One week per platform for fixing quirks specific to them
  9. @gaqzi How  it  was  planned  -­‐  app One week for

    common functionality One week per platform for fixing quirks specific to them Rolling releases for the platforms as they were finished
  10. @gaqzi How  it  was  planned  -­‐  app One week for

    common functionality One week per platform for fixing quirks specific to them Rolling releases for the platforms as they were finished Release order: Android, iOS, Windows Phone 8, BlackBerry10
  11. @gaqzi How  it  was  planned  -­‐  API Two weeks for

    the basic functionality: • Listing all magazines
  12. @gaqzi How  it  was  planned  -­‐  API Two weeks for

    the basic functionality: • Listing all magazines • Return a list of all the changed pages from timestamp
  13. @gaqzi Frameworks  and  tools API is a Django with django-rest-framework

    and Celery Frontend uses Cordova with Lavaca as the Javascript framework
  14. @gaqzi Frameworks  and  tools API is a Django with django-rest-framework

    and Celery Frontend uses Cordova with Lavaca as the Javascript framework Weinre for debugging – WEb INspector REmote
  15. @gaqzi Is  it  really  that  bad? Will it be as

    fast as a native app? No. Will it be fast enough for your use case? Maybe.
  16. @gaqzi Is  it  really  that  bad? Will it be as

    fast as a native app? No. Will it be fast enough for your use case? Maybe. We’ve come a long way from the beginning of PhoneGap to today
  17. @gaqzi How  does  it  work? You make a web app

    using HTML5/CSS and Javascript
  18. @gaqzi How  does  it  work? You make a web app

    using HTML5/CSS and Javascript Cordova package it up and render it using the native WebView
  19. @gaqzi How  does  it  work? You make a web app

    using HTML5/CSS and Javascript Cordova package it up and render it using the native WebView Most of the time you’re just building a normal website
  20. @gaqzi What  is  a  WebView? Access to the HTML and

    Javascript engine of the platform
  21. @gaqzi What  is  a  WebView? Access to the HTML and

    Javascript engine of the platform Not all WebViews are equal WebKit
  22. @gaqzi What  is  in  a  name? PhoneGap is a distribution

    of the open source project Cordova Cordova was initially known as PhoneGap before Adobe bought Nitobi and contributed PhoneGap to the Apache Software Foundation
  23. @gaqzi What’s  the  differences  then? Cordova has the core functionality

    of PhoneGap, when we talk they are basically interchangeable.
  24. @gaqzi What’s  the  differences  then? Cordova has the core functionality

    of PhoneGap, when we talk they are basically interchangeable. The PhoneGap package has an integration with PhoneGap build which is awesome
  25. @gaqzi PhoneGap  Build Builds your app in the cloud –

    no need to install APIs locally At the time of writing no support for BlackBerry 10 and WP8 is in beta
  26. @gaqzi PhoneGap  Build Builds your app in the cloud –

    no need to install APIs locally At the time of writing no support for BlackBerry 10 and WP8 is in beta Remote debugger, but setup your own weinre server in Singapore
  27. @gaqzi How  do  you  get  started? > npm install –g

    cordova > cordova create project-folder org.example.app.id AppName
  28. @gaqzi How  do  you  get  started? > npm install –g

    cordova > cordova create project-folder org.example.app.id AppName > cordova platform add android
  29. @gaqzi How  do  you  get  started? > npm install –g

    cordova > cordova create project-folder org.example.app.id AppName > cordova platform add android > cordova build
  30. @gaqzi How  do  you  get  started? > npm install –g

    cordova > cordova create project-folder org.example.app.id AppName > cordova platform add android > cordova build > cordova emulate android
  31. @gaqzi Where  did  we  end  up? Pretty okay for time

    – but we did end up having crunch time
  32. @gaqzi Where  did  we  end  up? Pretty okay for time

    – but we did end up having crunch time Android and iOS were done in time
  33. @gaqzi Where  did  we  end  up? Pretty okay for time

    – but we did end up having crunch time Android and iOS were done in time A lot of time spent on image resizing and PDF extraction
  34. @gaqzi Where  did  we  end  up? Pretty okay for time

    – but we did end up having crunch time Android and iOS were done in time A lot of time spent on image resizing and PDF extraction BlackBerry had changed a lot and documentation not updated + bugs
  35. @gaqzi Where  did  we  end  up? Pretty okay for time

    – but we did end up having crunch time Android and iOS were done in time A lot of time spent on image resizing and PDF extraction BlackBerry had changed a lot and documentation not updated + bugs Windows Phone 8 on Cordova is a nightmare
  36. @gaqzi Android “Flexibility” / Choice We’ve dealt with Android before

    so we know some quirks …and we expected there to be new ones
  37. @gaqzi Android “Flexibility” / Choice We’ve dealt with Android before

    so we know some quirks …and we expected there to be new ones For example why images were blurry on some devices, but only when not animating. (Solution; backface-visibility: hidden)
  38. @gaqzi Android “Flexibility” / Choice We’ve dealt with Android before

    so we know some quirks …and we expected there to be new ones For example why images were blurry on some devices, but only when not animating. (Solution; backface-visibility: hidden) Get as many devices as you can to test it out on.
  39. @gaqzi iOS “Inflexible” / No choices Same generation hardware as

    Android runs faster Make sure you have enough time to send the app in at least twice
  40. @gaqzi BlackBerry  10 The pleasant surprise QNX seems to be

    a very nice platform Documentation wasn’t up to date
  41. @gaqzi BlackBerry  10 The pleasant surprise QNX seems to be

    a very nice platform Documentation wasn’t up to date Cordova implementation is a thin wrapper around their own web APIs
  42. @gaqzi BlackBerry  10 The pleasant surprise QNX seems to be

    a very nice platform Documentation wasn’t up to date Cordova implementation is a thin wrapper around their own web APIs Wish they continue to exist, because I actually liked the platform
  43. @gaqzi Windows  Phone  8 Oh dear god… It runs IE,

    with all that you would expect WebView does not support SVG
  44. @gaqzi Windows  Phone  8 Oh dear god… It runs IE,

    with all that you would expect WebView does not support SVG Debugging the DOM with weinre disconnects
  45. @gaqzi Windows  Phone  8 Oh dear god… It runs IE,

    with all that you would expect WebView does not support SVG Debugging the DOM with weinre disconnects Rejected because of silently injected permissions
  46. @gaqzi Windows  Phone  8 Oh dear god… It runs IE,

    with all that you would expect WebView does not support SVG Debugging the DOM with weinre disconnects Rejected because of silently injected permissions Took as long as everything else combined

  47. @gaqzi Windows  Phone  8 Oh dear god… It runs IE,

    with all that you would expect WebView does not support SVG Debugging the DOM with weinre disconnects Rejected because of silently injected permissions Took as long as everything else combined
 Stay away from
  48. @gaqzi The  end  product Time spent initial build and Android,

    iOS and BB10: 4 weeks Time spent Windows Phone 8: 4 weeks
  49. @gaqzi The  end  product Time spent initial build and Android,

    iOS and BB10: 4 weeks Time spent Windows Phone 8: 4 weeks Available on all the app market places mid November
  50. @gaqzi The  end  product Time spent initial build and Android,

    iOS and BB10: 4 weeks Time spent Windows Phone 8: 4 weeks Available on all the app market places mid November Output:
  51. @gaqzi The  end  product Time spent initial build and Android,

    iOS and BB10: 4 weeks Time spent Windows Phone 8: 4 weeks Available on all the app market places mid November Output: ✓ 5 issues opened on the Cordova bug tracker
  52. @gaqzi The  end  product Time spent initial build and Android,

    iOS and BB10: 4 weeks Time spent Windows Phone 8: 4 weeks Available on all the app market places mid November Output: ✓ 5 issues opened on the Cordova bug tracker ✓ 4 apps delivered
  53. @gaqzi The  end  product Time spent initial build and Android,

    iOS and BB10: 4 weeks Time spent Windows Phone 8: 4 weeks Available on all the app market places mid November Output: ✓ 5 issues opened on the Cordova bug tracker ✓ 4 apps delivered ✓ 1 feature suggestion, implemented as a plugin for WP8
  54. @gaqzi The  end  product Time spent initial build and Android,

    iOS and BB10: 4 weeks Time spent Windows Phone 8: 4 weeks Available on all the app market places mid November Output: ✓ 5 issues opened on the Cordova bug tracker ✓ 4 apps delivered ✓ 1 feature suggestion, implemented as a plugin for WP8 ✓ Newfound loathing for Internet Explorer