SlideShare una empresa de Scribd logo
1 de 36
Descargar para leer sin conexión
Going NATIVE
A fast growing community
A global phenomenon
Historique	
  Mobile
Première	
  version	
  en	
  2009	
  en	
  webview	
  
First apps
Natif
Webview
Natif
Avantages
Une	
  seule	
  base	
  de	
  code	
  
!
!
Mise	
  à	
  jour	
  sans	
  nouvelles	
  soumissions	
  
!
!
Le	
  web	
  est	
  le	
  coeur	
  de	
  métier	
  de	
  BlaBlaCar	
  	
  
Quelques	
  screenshots
Tout	
  le	
  monde	
  adore	
  !
…	
  en	
  2010	
  !
Mais maintenant …
…
État des apps en 2013 …
It does the job…
but it can be better !
//Flat Design & iOS 7
Technologies dépassée
Refonte totale du site principal !
…
sur lequel se basent les apps mobiles
V3 : Symfony + ElasticSearch
Conclusion
- we need a FULL redesign -
Why Native ?
Why Native ?
- UI plus adaptée
- Meilleures performances
- API demandée par les partenaires
- Accès aux fonctions avancées du device
- Gestion d’un mode offline
Archi
!
Full-native OAuth2 + REST
Quelques	
  screenshots
Problématique
On souhaite garder la flexibilité d’un site web
(traductions)
!
L’app existante dispose de beaucoup de
fonctionnalités

On veut déployer le plus vite
possible
BBLocalization !
- Fichiers JSON 

- Clés "significatives" : écran.vue.element.trad
- Traductions chargées au démarrage -> dict
- Récupération des nouvelles trads à chaque
lancement
- Interface web simplifiée :
http://openl10n.io
#define	
  BBLocalizedString(key,	
  comment)	
  	
  
[BBLocalization	
  localizedStringForKey:key	
  comment:comment]
Gestion des traductions
Mise à jour des trads sans re-soumission !
Dev + Prod
S3
BBLocalization : avantages
- Possibilité de dissocier la langue de l’app et du
device
- Correction des lacunes de NSLocalizable :
- Gestion des pluriels
- Ordre des paramètres
- Gestion de configs dev / prod
- Même format Android / iOS
Soft Launch
Spécificités @BlaBlaCar :
Feature spread between countries : 

- Booking

- Non-Booking

Nouveaux pays régulièrement
=> Rollout Progressif par config
Soft Launch
-(void) loadAppWithOptions:(NSDictionary *)launchOptions
{
[self loadVersionOnce];
BOOL isV3 = [[BBDATA configuration] isV3];
UIViewController *rootVC = nil;
if (isV3) {	

UIStoryboard *storyboard = [UIStoryboard
storyboardWithName:@"Storyboard" bundle:nil];
rootVC = [storyboard instantiateInitialViewController];
UINavigationController *nvc = (UINavigationController *)rootVC;	

} else {
rootVC = [[BlaBlaCarViewController alloc]
initWithNibName:@"BlaBlaCarViewController" bundle:nil];
if([self needsCleaning]){
[self cleanEverything:rootVC];
}
[self managePush:(BlaBlaCarViewController*)rootVC withOptions:
launchOptions];
}
[self.window setRootViewController:rootVC];
}
Roadmap
21/03 09/04 16/04 21/04
Easter
Prod
Non booking
April
23/04 30/04
March May June
16/06 30/06 07/07
Continue developing
booking &
improve non-booking
Internal
release
Beta
Non booking
Beta
Booking
Prod
Booking
Internal
release
July
Et	
  pour	
  la	
  France	
  ?	
  
Le	
  plus	
  gros	
  pays
=	
  Utilisateurs	
  les	
  plus	
  exigeants
+	
  Système	
  de	
  réservation	
  
+	
  Paiement	
  en	
  ligne
=>	
  Rollout	
  progressif	
  par	
  tirage	
  au	
  sort
+	
  maitrise	
  de	
  la	
  charge	
  serveur
BBRolloutManager
-(BOOL) canOpenV3
{
if (BBDATA.configuration.isV3) {
// Bypass :
[self recordV3Rollout];
return YES;
}	

return [self checkRollOut];
}
!
!
-(BOOL) checkRollOut
{
if ([[NSUserDefaults standardUserDefaults]
boolForKey:ROLLOUT_VERIFIED] ) {
return YES;
}
[self rollOutTreatment];
return NO;
}
BBRolloutManager
-(void) rollOutTreatment
{
NSNumber *rollOutValue = [[NSUserDefaults standardUserDefaults]
objectForKey:ROLLOUT_VALUE];
if (!rollOutValue) {
int random = 1 + arc4random()%100; //1+random(0..99)
rollOutValue = [NSNumber numberWithInt:random];
[[NSUserDefaults standardUserDefaults] setValue:rollOutValue forKey:
ROLLOUT_VALUE];
}
// […] DownLoadFile
if (!error) {
[self completeRolloutForRandomValue:rollOutValue];
}
}
!
!
!
!
BBRolloutManager
-(void) recordV3Rollout
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:ROLLOUT_VERIFIED
];
[[NSUserDefaults standardUserDefaults] synchronize];
}
!
!
- (void) completeRolloutForRandomValue:(NSNumber *)value
{
NSDictionary *dict = [self getDictionaryFrom:[self getRollOutFilePath]];
if (value and dict) {
NSNumber *number = [dict objectForKey:ROLLOUT_VALUE];
if ([value intValue]<=[number intValue]) {
[self recordV3Rollout];
}
}	

}
Rollout
Résultats
Résultats
FeedBacks
Système	
  de	
  tirage	
  au	
  sort	
  pour	
  les	
  «	
  anciens	
  »	
  
Nouvelle	
  version	
  automatique	
  pour	
  les	
  nouveaux
Beaucoup	
  de	
  maj	
  sans	
  nouveautés	
  pour	
  les	
  non-­‐élus
Ne	
  pas	
  annoncer	
  le	
  switch	
  trop	
  tôt	
  :	
  crée	
  de	
  l’attente
We’re hiring!
-­‐>	
  Android	
  Developer	
  ;-­‐)	
  
-­‐>	
  Product	
  Manager
Erwann ROBIN
iOS Developer
@Diwann
Thanks!

Más contenido relacionado

La actualidad más candente

Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB13p
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017AFUP_Limoges
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizonMicrosoft
 
Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?
Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?
Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?Membré Guillaume
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance frontJean-Pierre Vincent
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another frameworkLAHAXE Arnaud
 
Event sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPECEvent sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPECSylia Baraka
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienRachid Zarouali
 
Un environnement de développement solide avec wamp
Un environnement de développement solide avec wampUn environnement de développement solide avec wamp
Un environnement de développement solide avec wampNicolas Beauvais
 
Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur web
Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur webConférence #nwx2014 - Thibaud Juin - Varnish, accélérateur web
Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur webNormandie Web Xperts
 
Introduction à WordPress sous Nginx
Introduction à WordPress sous NginxIntroduction à WordPress sous Nginx
Introduction à WordPress sous NginxMaxime Jobin
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Quentin Frémeaux
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Paris Android User Group
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Benoît de CHATEAUVIEUX
 

La actualidad más candente (20)

Journée DevOps : Tests de performance en continu
Journée DevOps : Tests de performance en continuJournée DevOps : Tests de performance en continu
Journée DevOps : Tests de performance en continu
 
Utilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDBUtilisation de node.js avec mongoDB
Utilisation de node.js avec mongoDB
 
Meetup du 21 septembre 2017
Meetup du 21 septembre 2017Meetup du 21 septembre 2017
Meetup du 21 septembre 2017
 
Le développement web : tour d'horizon
Le développement web : tour d'horizonLe développement web : tour d'horizon
Le développement web : tour d'horizon
 
Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?
Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?
Une caméra 📹 en DIY sur une mangeoire d'oiseau 🐦 au milieu d’un jardin 🌳 ?
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
Le monitoring de la performance front
Le monitoring de la performance frontLe monitoring de la performance front
Le monitoring de la performance front
 
Laravel yet another framework
Laravel  yet another frameworkLaravel  yet another framework
Laravel yet another framework
 
Event sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPECEvent sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPEC
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
La montée en charge
La montée en chargeLa montée en charge
La montée en charge
 
Un environnement de développement solide avec wamp
Un environnement de développement solide avec wampUn environnement de développement solide avec wamp
Un environnement de développement solide avec wamp
 
Angular retro
Angular retroAngular retro
Angular retro
 
201505 monitoring
201505 monitoring201505 monitoring
201505 monitoring
 
Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur web
Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur webConférence #nwx2014 - Thibaud Juin - Varnish, accélérateur web
Conférence #nwx2014 - Thibaud Juin - Varnish, accélérateur web
 
Introduction à WordPress sous Nginx
Introduction à WordPress sous NginxIntroduction à WordPress sous Nginx
Introduction à WordPress sous Nginx
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014Embedded webserver implementation and usage - DroidCon Paris 2014
Embedded webserver implementation and usage - DroidCon Paris 2014
 
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
Démo Gatling au Performance User Group de Casablanca - 25 sept 2014
 

Destacado

Case Study: BlaBlaCar and Social Innova
Case Study: BlaBlaCar and Social InnovaCase Study: BlaBlaCar and Social Innova
Case Study: BlaBlaCar and Social InnovaEsther Val
 
Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...
Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...
Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...BlaBlaKevin
 
Paris Job Talk
Paris Job TalkParis Job Talk
Paris Job TalkmeeticTech
 
Meetup scala paris user group - conflation like @ meetic
Meetup scala paris user group - conflation like @ meeticMeetup scala paris user group - conflation like @ meetic
Meetup scala paris user group - conflation like @ meeticmeeticTech
 
BlaBlaCar and infrastructure automation
BlaBlaCar and infrastructure automationBlaBlaCar and infrastructure automation
BlaBlaCar and infrastructure automationsinfomicien
 
Meetic Backend Mutation With Symfony
Meetic Backend Mutation With SymfonyMeetic Backend Mutation With Symfony
Meetic Backend Mutation With SymfonymeeticTech
 
A detailed analysis on BlaBlaCar ride-sharing users
A detailed analysis on BlaBlaCar ride-sharing usersA detailed analysis on BlaBlaCar ride-sharing users
A detailed analysis on BlaBlaCar ride-sharing usersAndrea Paraboschi
 
Microservices & API Gateways
Microservices & API Gateways Microservices & API Gateways
Microservices & API Gateways Kong Inc.
 
Transition Agile @ Meetic
Transition Agile @ MeeticTransition Agile @ Meetic
Transition Agile @ MeeticmeeticTech
 
26 Top Crowdfunding Sites (Infographic)
26 Top Crowdfunding Sites (Infographic)26 Top Crowdfunding Sites (Infographic)
26 Top Crowdfunding Sites (Infographic)Wrike
 
Europas BlaBlaCar pitch
Europas BlaBlaCar pitchEuropas BlaBlaCar pitch
Europas BlaBlaCar pitchVanina Schick
 

Destacado (12)

Case Study: BlaBlaCar and Social Innova
Case Study: BlaBlaCar and Social InnovaCase Study: BlaBlaCar and Social Innova
Case Study: BlaBlaCar and Social Innova
 
Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...
Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...
Etude TNS Sofres pour BlaBlaCar et la MAIF sur le covoiturage et la sécurité ...
 
Paris Job Talk
Paris Job TalkParis Job Talk
Paris Job Talk
 
Meetup scala paris user group - conflation like @ meetic
Meetup scala paris user group - conflation like @ meeticMeetup scala paris user group - conflation like @ meetic
Meetup scala paris user group - conflation like @ meetic
 
BlaBlaCar and infrastructure automation
BlaBlaCar and infrastructure automationBlaBlaCar and infrastructure automation
BlaBlaCar and infrastructure automation
 
Meetic Backend Mutation With Symfony
Meetic Backend Mutation With SymfonyMeetic Backend Mutation With Symfony
Meetic Backend Mutation With Symfony
 
Kong
KongKong
Kong
 
A detailed analysis on BlaBlaCar ride-sharing users
A detailed analysis on BlaBlaCar ride-sharing usersA detailed analysis on BlaBlaCar ride-sharing users
A detailed analysis on BlaBlaCar ride-sharing users
 
Microservices & API Gateways
Microservices & API Gateways Microservices & API Gateways
Microservices & API Gateways
 
Transition Agile @ Meetic
Transition Agile @ MeeticTransition Agile @ Meetic
Transition Agile @ Meetic
 
26 Top Crowdfunding Sites (Infographic)
26 Top Crowdfunding Sites (Infographic)26 Top Crowdfunding Sites (Infographic)
26 Top Crowdfunding Sites (Infographic)
 
Europas BlaBlaCar pitch
Europas BlaBlaCar pitchEuropas BlaBlaCar pitch
Europas BlaBlaCar pitch
 

Similar a BlaBlaCar - Going Native !

jQuery Mobile & Applications Web
jQuery Mobile & Applications WebjQuery Mobile & Applications Web
jQuery Mobile & Applications WebNicolas Hoffmann
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSyrine Ben aziza
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans DrupalAdyax
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
Cobalt chez Orange Lannion, 2015
Cobalt chez Orange Lannion, 2015Cobalt chez Orange Lannion, 2015
Cobalt chez Orange Lannion, 2015Cobaltians
 
[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FRNuxeo
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureSamir Arezki ☁
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflineDNG Consulting
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCityUlrich VACHON
 
Introduction to WebRTC on iOS
Introduction to WebRTC on iOSIntroduction to WebRTC on iOS
Introduction to WebRTC on iOSCocoaHeads France
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...
Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...
Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...Xavier NOPRE
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTASidereo
 

Similar a BlaBlaCar - Going Native ! (20)

jQuery Mobile & Applications Web
jQuery Mobile & Applications WebjQuery Mobile & Applications Web
jQuery Mobile & Applications Web
 
Cours cordova & REST
Cours cordova & RESTCours cordova & REST
Cours cordova & REST
 
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
Café Numérique Arlon S03#02: Je code mon blog (EU code week Arlon)
 
jQuery mobile vs Twitter bootstrap
jQuery mobile vs Twitter bootstrapjQuery mobile vs Twitter bootstrap
jQuery mobile vs Twitter bootstrap
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
Cobalt chez Orange Lannion, 2015
Cobalt chez Orange Lannion, 2015Cobalt chez Orange Lannion, 2015
Cobalt chez Orange Lannion, 2015
 
[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR[Webinar] Techniques avancées de création de workflow - FR
[Webinar] Techniques avancées de création de workflow - FR
 
Meetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec AzureMeetup - Construire des applications serverless avec Azure
Meetup - Construire des applications serverless avec Azure
 
Présentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'OfflinePrésentation GWT et HTML 5 pour l'Offline
Présentation GWT et HTML 5 pour l'Offline
 
Introduction à TeamCity
Introduction à TeamCityIntroduction à TeamCity
Introduction à TeamCity
 
Introduction to WebRTC on iOS
Introduction to WebRTC on iOSIntroduction to WebRTC on iOS
Introduction to WebRTC on iOS
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...
Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...
Human Talks Grenoble 08/09/2015 - AngularJS et Cordova = applications WEB et ...
 
Gradle_LyonJUG
Gradle_LyonJUGGradle_LyonJUG
Gradle_LyonJUG
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Solution d'OTA
Solution d'OTASolution d'OTA
Solution d'OTA
 
Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
 

BlaBlaCar - Going Native !