Manage apps remotely

2a0d35279ca5c2b04118567654cdeaec?s=47 loiceffn
November 30, 2015

Manage apps remotely

How @BlaBlaCar manage their native apps remotely. Talk given during the AppDays Event in Paris 25-26 nov 2015.

2a0d35279ca5c2b04118567654cdeaec?s=128

loiceffn

November 30, 2015
Tweet

Transcript

  1. @BlaBlaCarTech Manage Apps at Home

  2. Loïc Effner iOS Developer @loiceffn iOS Developer

  3. None
  4. 30€ 30€ 120 € 30€ 30€

  5. 30€ 30€ 120 € 30€ 30€

  6. 15M 10M 5M 2009 2010 2011 2012 2013 2014 2015

  7. 20M 15M 10M 5M 2009 2010 2011 2012 2013 2014

    2015 20 million members in 2015
  8. ...in 19 countries

  9. ...with 14 offices

  10. None
  11. None
  12. 2009

  13. 2009 • Only one code to rule them all •

    Web is our core business • Easy to update
  14. 2009 Do the job

  15. 2012 • Not aesthetically pleasing • Poor UX / performance

    • Not iOS/Android guideline
  16. NOW

  17. From webview to native • Native guidelines: better UI /

    UX • Better performance / Offline content • REST API for partners • Access to device features
  18. From webview to native • Keep the webview flexibility: ◦

    update strings without submission ◦ easily deploy features at a specific time
  19. None
  20. None
  21. None
  22. CloudFront CloudFront

  23. CloudFront CloudFront 10-17M requests / day 99.9% 0.1%

  24. Why this solution? • API ◦ server traffic ◦ distribution

    impact • S3/Cloudfront ◦ nothing to do ◦ distribution
  25. User side EN FR ES ...

  26. User side EN FR ES ...

  27. User side EN FR ES ... CloudFront

  28. User side EN FR ES ... CloudFront 1 2015-11-13 14:03:05

  29. User side EN FR ES ... CloudFront CloudFront 304 Not

    modified 1 2 2015-11-13 14:03:05
  30. User side EN FR ES ... CloudFront CloudFront 304 Not

    modified 1 2 2015-11-13 14:03:05 10-17M requests / day File Transfer : 16% = 1.5-2.6 To saved
  31. OpenLocalization

  32. openl10n.io

  33. Create and push new trads Translate and distribute

  34. None
  35. Illustration - Add new country language: pt regional format: pt_BR

    02/11/15
  36. Illustration - Add new country language: pt regional format: pt_BR

    { “fr” : {...}, “pt” : { “default”:”portugal” }, ... } 02/11/15
  37. Illustration - Add new country language: pt regional format: pt_BR

    { “fr” : {...}, “pt” : { “default”:”portugal” }, ... } { “france”: {...}, “portugal” : {...}, ... } 02/11/15
  38. Illustration - Add new country language: pt regional format: pt_BR

    { “fr” : {...}, “pt” : { “default”:”portugal” }, ... } { “fr” : {...}, “pt” : { “default”:”portugal”, “pt_BR”:”brazil” }, ... } 02/11/15 { “france”: {...}, “portugal” : {...}, ... }
  39. Illustration - Add new country language: pt regional format: pt_BR

    { “fr” : {...}, “pt” : { “default”:”portugal” }, ... } { “fr” : {...}, “pt” : { “default”:”portugal”, “pt_BR”:”brazil” }, ... } { “france”: {...}, “portugal” : {...}, “brazil”: {...} ... } 02/11/15 { “france”: {...}, “portugal” : {...}, ... }
  40. None
  41. None
  42. Illustration - Active new feature { “use_regular_trip” : false, ...

    }
  43. Illustration - Active new feature { “use_regular_trip” : false, ...

    } true
  44. Rollout October September August July June

  45. Benefits

  46. • Cache application • Deeplink • Request handler

  47. ➔ Feature flags ➔ App check version

  48. What’s next? Thanks!