How @BlaBlaCar manage their native apps remotely. Talk given during the AppDays Event in Paris 25-26 nov 2015.
@BlaBlaCarTechManage Apps at Home
View Slide
Loïc EffneriOS Developer@loiceffniOS Developer
30€ 30€120 €30€ 30€
15M10M5M2009 2010 2011 2012 2013 2014 2015
20M15M10M5M2009 2010 2011 2012 2013 2014 201520 millionmembers in 2015
...in 19 countries
...with 14 offices
2009
2009● Only one code to rule them all● Web is our core business● Easy to update
2009Do the job
2012● Not aesthetically pleasing● Poor UX / performance● Not iOS/Android guideline
NOW
From webview to native● Native guidelines: better UI / UX● Better performance / Offline content● REST API for partners● Access to device features
From webview to native● Keep the webview flexibility:○ update strings withoutsubmission○ easily deploy features at aspecific time
CloudFrontCloudFront
CloudFrontCloudFront10-17M requests / day99.9%0.1%
Why this solution?● API○ server traffic○ distribution impact● S3/Cloudfront○ nothing to do○ distribution
User sideENFRES...
User sideENFRES...CloudFront
User sideENFRES...CloudFront12015-11-13 14:03:05
User sideENFRES...CloudFrontCloudFront304Not modified122015-11-13 14:03:05
User sideENFRES...CloudFrontCloudFront304Not modified122015-11-13 14:03:0510-17M requests / dayFile Transfer : 16%= 1.5-2.6 To saved
OpenLocalization
openl10n.io
Create and push new tradsTranslate and distribute
Illustration - Add new countrylanguage: ptregional format: pt_BR02/11/15
Illustration - Add new countrylanguage: ptregional format: pt_BR{“fr” : {...},“pt” : {“default”:”portugal”},...}02/11/15
Illustration - Add new countrylanguage: ptregional format: pt_BR{“fr” : {...},“pt” : {“default”:”portugal”},...}{“france”: {...},“portugal” : {...},...}02/11/15
Illustration - Add new countrylanguage: ptregional format: pt_BR{“fr” : {...},“pt” : {“default”:”portugal”},...}{“fr” : {...},“pt” : {“default”:”portugal”,“pt_BR”:”brazil”},...}02/11/15{“france”: {...},“portugal” : {...},...}
Illustration - Add new countrylanguage: ptregional format: pt_BR{“fr” : {...},“pt” : {“default”:”portugal”},...}{“fr” : {...},“pt” : {“default”:”portugal”,“pt_BR”:”brazil”},...} {“france”: {...},“portugal” : {...},“brazil”: {...}...}02/11/15{“france”: {...},“portugal” : {...},...}
Illustration - Active new feature{“use_regular_trip” : false,...}
Illustration - Active new feature{“use_regular_trip” : false,...}true
RolloutOctoberSeptemberAugustJulyJune
Benefits
● Cache application● Deeplink● Request handler
➔ Feature flags➔ App check version
What’s next?Thanks!