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

Manage apps remotely

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.

loiceffn

November 30, 2015
Tweet

Other Decks in Technology

Transcript

  1. @BlaBlaCarTech
    Manage Apps at Home

    View Slide

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

    View Slide

  3. View Slide

  4. 30€ 30€
    120 €
    30€ 30€

    View Slide

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

    View Slide

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

    View Slide

  7. 20M
    15M
    10M
    5M
    2009 2010 2011 2012 2013 2014 2015
    20 million
    members in 2015

    View Slide

  8. ...in 19 countries

    View Slide

  9. ...with 14 offices

    View Slide

  10. View Slide

  11. View Slide

  12. 2009

    View Slide

  13. 2009
    ● Only one code to rule them all
    ● Web is our core business
    ● Easy to update

    View Slide

  14. 2009
    Do the job

    View Slide

  15. 2012
    ● Not aesthetically pleasing
    ● Poor UX / performance
    ● Not iOS/Android guideline

    View Slide

  16. NOW

    View Slide

  17. From webview to native
    ● Native guidelines: better UI / UX
    ● Better performance / Offline content
    ● REST API for partners
    ● Access to device features

    View Slide

  18. From webview to native
    ● Keep the webview flexibility:
    ○ update strings without
    submission
    ○ easily deploy features at a
    specific time

    View Slide

  19. View Slide

  20. View Slide

  21. View Slide

  22. CloudFront
    CloudFront

    View Slide

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

    View Slide

  24. Why this solution?
    ● API
    ○ server traffic
    ○ distribution impact
    ● S3/Cloudfront
    ○ nothing to do
    ○ distribution

    View Slide

  25. User side
    EN
    FR
    ES
    ...

    View Slide

  26. User side
    EN
    FR
    ES
    ...

    View Slide

  27. User side
    EN
    FR
    ES
    ...
    CloudFront

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  31. OpenLocalization

    View Slide

  32. openl10n.io

    View Slide

  33. Create and push new trads
    Translate and distribute

    View Slide

  34. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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” : {...},
    ...
    }

    View Slide

  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” : {...},
    ...
    }

    View Slide

  40. View Slide

  41. View Slide

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

    View Slide

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

    View Slide

  44. Rollout
    October
    September
    August
    July
    June

    View Slide

  45. Benefits

    View Slide

  46. ● Cache application
    ● Deeplink
    ● Request handler

    View Slide

  47. ➔ Feature flags
    ➔ App check version

    View Slide

  48. What’s next?
    Thanks!

    View Slide