SlideShare une entreprise Scribd logo
1  sur  36
Dev mobile cross-platform
Sommaire
1. Comment tout a commencé…
2. Pourquoi faire du cross-platform ?
3. Présentation des challengers
4. Retour d’xp React Native : Cbp
5. Retour d’xp Nativescript : Route du Rhum
2
Comment tout a
commencé…
Notre réponse
technique#2007
2 OS
2 Stores
2 Plateformes
2 Applications
2 Equipes
2 Budgets
Pourquoi du
cross-platform ?
Code-sharing !
Une seule base de code entre iOS et
Android !
Code-sharing !
Une seule base de code entre iOS et
Android !
Et pourquoi pas partagée avec un site web
?
Code-sharing !
Une seule base de code entre iOS et
Android !
Et pourquoi pas partagée avec un site web
?
Et pourquoi pas avec… un serveur d’API ?
Code-sharing !
Une seule base de code entre iOS et
Android !
Et pourquoi pas partagée avec un site web
?
Et pourquoi pas avec… un serveur d’API ?
Le Saint-Graal des développeurs :
WORA (Write Once Run Anywhere)
Sun Microsystem
Coder-sharingTM !
Codeur frontend réutilisable en mobile et en
back !
Le Saint-Graal des RH et managers :
HODA (Hire Once Dev Anywhere)
Moi
Challengers
WEBAPP HYBRIDE
« VRAI »
CROSS-PLATFORM
1515
Progressive Web App
« Juste » une web app + API + guidelines
• Possibilité d’être installée sur l’écran d’accueil
• Les PWA peuvent permettre à certaines parties des sites et certaines
fonctionnalités d’être disponibles en mode offline.
• Possibilité d’utiliser le push de notification pour augmenter l’engagement des
utilisateurs.
• Pas une app, donc hors sujet…
• Pas d’accès au système…
• Pas de publication dans les stores…
16
App hybride
Navigateur wrappé dans une application
native
• Accès aux APIs système via des « ponts ».
• Facilité de développement.
• Publication dans les stores possible.
• Impossibilité d’utiliser des composants UI natifs (pas d’AR,
de filtres…), limitée par les capacités du browser
• UI / UX identique entre les OS sauf à développer les
composants en double…
• Performances…
17
App hybride
18
App native cross-platform
Runtime JS (JavaScriptCore / V8) embarqué dans une
application native
• Accès full aux APIs système
• UI / UX reposant sur des composants natifs
• Performances proches du full natif
• Live reload en développement
• Remote debugging possible
• Courbe d’apprentissage pour le développement
des vues
19
Architecture
21
UI / UX
23
24
25
26
Comment
choisir ?
FONCTIONNALITÉS NATIVES
Photos, contacts, géolocalisation…
LANCEMENT OFFLINE
Démarrage hors connexion
SÉCURITÉ
Code source, chiffrement
DONNÉES OFFLINE
Résistance aux pertes de connexion
en cours d’utilisation
Moins bonnes
performances
Stockage limité :
- LocalStorage : 5Mo
- IndexedDB :
pourcentage espace
restant
Oui, après un 1er
lancement connecté
OK sur Android,
pas sur iOS
+
+
Stockage limité :
- LocalStorage : 5Mo
- IndexedDB :
pourcentage espace
restant
Bonnes performances
générales
Non--
-
+
+
- -
- -
+ -
+ +
+ ++
Push web, support limitéNOTIFICATIONS PUSH
ACCESSIBILITÉ
Pour mal-voyants
COMPATIBILITÉ
OS, navigateurs…
Code source directement
lisible.
Données lisibles en local.
Code source directement
lisible.
Données lisibles en local.
De plus en plus de
fonctions supportées
(push, géolocalisation,
photos, synthèse
vocale…)
De plus en plus de
fonctions supportées
(géolocalisation, photos,
synthèse vocale…)
Accessibilité plus limitée.
Pas de zoom possible
Accessibilité plus limitée.
Pas de zoom possible
Web et Web MobileAndroid + Web (limité)
PWA WEB
Bonnes performances
générales
BDD locale. Pas de limites
de stockage.
Oui, par définition
OK
++
++ BDD locale. Pas de limites
de stockage.
Performances maximales
Oui, idem natif : tout est
embarqué dans
l’application
++
+
++
++
++ +
++ ++
++ +
++ +
- ++
Dépend du fournisseur de
push (si plugin disponible)
Code source mieux
protégé.
Possibilité stockage
sécurisé des données.
Code source moins
protégé.
Possibilité stockage
sécurisé des données.
Oui, par définition
Oui selon les plugins
(couvrent la plupart des
besoins)
Voiceover (iOS), TalkBack
(Android), zoom…
Accessibilité plus limitée.
Pas de zoom possible
iOS, Android, Windows +
Web
iOS et Android
uniquement
NATIF HYBRIDE
++ ++
BUDGET
Mutualisation de code,
maintenabilité…
Tout le code source web
est mutualisé entre
chaque plateforme
Tout le code source web
est mutualisé entre
chaque plateforme
++
Chaque plateforme
nécessite des
développements et
compétences
spécifiques…
Tout le code source web
est mutualisé entre
chaque plateforme
-
PERFORMANCES
Scrolling, transition
Réputation ? Partage de code ? Technologie ?
Maturité ?Communauté ?
Our feeling (web dev team)
• Simple concepts but hard reality for developers
• Continuous integration is as simple as native
• Immature Framework
• Clear 2018 roadmap missing
• Risk of breaking changes between versions
• Helpful community
• Sensitize the UX designer to avoid specific developments per device
• Faster developments than pure native
• Easier tests campaigns than hybride (no webviews)
35
Pourquoi ?
• Code & Coder sharing !
• Compagnons !
Sidekick, Playground, Chrome DevTools
• Build dans le cloud !
• Le challenge !
Q/A

Contenu connexe

Similaire à Développement mobile cross-plateform

L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidChris Saez
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobileMartin Arvisais
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin Christian Hissibini
 
Tech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTelecomValley
 
Challenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - IntroductionChallenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - IntroductionJonathan Le Guellec
 
Le développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordovaLe développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordovaSébastien Ollivier
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobilesAbdoulaye Dieng
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobileEutech SSII
 
Demarrer ionic en 5 etape
Demarrer ionic en 5 etapeDemarrer ionic en 5 etape
Demarrer ionic en 5 etapeZaïd BOUDAMOUZ
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeadsRNS
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsThomas Bassetto
 
Les secrets du développement d'une application mobile
Les secrets du développement d'une application mobileLes secrets du développement d'une application mobile
Les secrets du développement d'une application mobileEutech SSII
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxFrédéric Harper
 
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPadCoder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPadDavid MEKERSA
 
Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesMichael Laguerre
 

Similaire à Développement mobile cross-plateform (20)

L’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & AndroidL’environnement du développement mobile iOS & Android
L’environnement du développement mobile iOS & Android
 
Formation mobile-cross-platform
Formation mobile-cross-platformFormation mobile-cross-platform
Formation mobile-cross-platform
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Actionscript: du web au mobile
Actionscript: du web au mobileActionscript: du web au mobile
Actionscript: du web au mobile
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
Native script
Native scriptNative script
Native script
 
Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin Let's Go dans l'univers mobile multiplateforme avec Xamarin
Let's Go dans l'univers mobile multiplateforme avec Xamarin
 
Tech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobilesTech conf1 développement_natif_applications_mobiles
Tech conf1 développement_natif_applications_mobiles
 
Challenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - IntroductionChallenge Exakis - Applications universelles - Introduction
Challenge Exakis - Applications universelles - Introduction
 
Le développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordovaLe développement mobile multiplateforme avec cordova
Le développement mobile multiplateforme avec cordova
 
Panorama des Technologies mobiles
Panorama des Technologies mobilesPanorama des Technologies mobiles
Panorama des Technologies mobiles
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobile
 
Demarrer ionic en 5 etape
Demarrer ionic en 5 etapeDemarrer ionic en 5 etape
Demarrer ionic en 5 etape
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & Android
 
L'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objetsL'Open Web en tant que pierre angulaire du développement multi-objets
L'Open Web en tant que pierre angulaire du développement multi-objets
 
Les secrets du développement d'une application mobile
Les secrets du développement d'une application mobileLes secrets du développement d'une application mobile
Les secrets du développement d'une application mobile
 
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveauxMobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
Mobiz - 2012-11-15 - HTML5, une révolution à plusieurs niveaux
 
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPadCoder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
Coder des jeux en 2D ou 3D sur mobile Android, IPhone ou iPad
 
Tech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobilesTech Conf n°1 - Développement natif d'applications mobiles
Tech Conf n°1 - Développement natif d'applications mobiles
 

Développement mobile cross-plateform

  • 2. Sommaire 1. Comment tout a commencé… 2. Pourquoi faire du cross-platform ? 3. Présentation des challengers 4. Retour d’xp React Native : Cbp 5. Retour d’xp Nativescript : Route du Rhum 2
  • 5.
  • 6. 2 OS 2 Stores 2 Plateformes
  • 9. Code-sharing ! Une seule base de code entre iOS et Android !
  • 10. Code-sharing ! Une seule base de code entre iOS et Android ! Et pourquoi pas partagée avec un site web ?
  • 11. Code-sharing ! Une seule base de code entre iOS et Android ! Et pourquoi pas partagée avec un site web ? Et pourquoi pas avec… un serveur d’API ?
  • 12. Code-sharing ! Une seule base de code entre iOS et Android ! Et pourquoi pas partagée avec un site web ? Et pourquoi pas avec… un serveur d’API ? Le Saint-Graal des développeurs : WORA (Write Once Run Anywhere) Sun Microsystem
  • 13. Coder-sharingTM ! Codeur frontend réutilisable en mobile et en back ! Le Saint-Graal des RH et managers : HODA (Hire Once Dev Anywhere) Moi
  • 15. WEBAPP HYBRIDE « VRAI » CROSS-PLATFORM 1515
  • 16. Progressive Web App « Juste » une web app + API + guidelines • Possibilité d’être installée sur l’écran d’accueil • Les PWA peuvent permettre à certaines parties des sites et certaines fonctionnalités d’être disponibles en mode offline. • Possibilité d’utiliser le push de notification pour augmenter l’engagement des utilisateurs. • Pas une app, donc hors sujet… • Pas d’accès au système… • Pas de publication dans les stores… 16
  • 17. App hybride Navigateur wrappé dans une application native • Accès aux APIs système via des « ponts ». • Facilité de développement. • Publication dans les stores possible. • Impossibilité d’utiliser des composants UI natifs (pas d’AR, de filtres…), limitée par les capacités du browser • UI / UX identique entre les OS sauf à développer les composants en double… • Performances… 17
  • 19. App native cross-platform Runtime JS (JavaScriptCore / V8) embarqué dans une application native • Accès full aux APIs système • UI / UX reposant sur des composants natifs • Performances proches du full natif • Live reload en développement • Remote debugging possible • Courbe d’apprentissage pour le développement des vues 19
  • 21. 21
  • 23. 23
  • 24. 24
  • 25. 25
  • 26. 26
  • 28.
  • 29. FONCTIONNALITÉS NATIVES Photos, contacts, géolocalisation… LANCEMENT OFFLINE Démarrage hors connexion SÉCURITÉ Code source, chiffrement DONNÉES OFFLINE Résistance aux pertes de connexion en cours d’utilisation Moins bonnes performances Stockage limité : - LocalStorage : 5Mo - IndexedDB : pourcentage espace restant Oui, après un 1er lancement connecté OK sur Android, pas sur iOS + + Stockage limité : - LocalStorage : 5Mo - IndexedDB : pourcentage espace restant Bonnes performances générales Non-- - + + - - - - + - + + + ++ Push web, support limitéNOTIFICATIONS PUSH ACCESSIBILITÉ Pour mal-voyants COMPATIBILITÉ OS, navigateurs… Code source directement lisible. Données lisibles en local. Code source directement lisible. Données lisibles en local. De plus en plus de fonctions supportées (push, géolocalisation, photos, synthèse vocale…) De plus en plus de fonctions supportées (géolocalisation, photos, synthèse vocale…) Accessibilité plus limitée. Pas de zoom possible Accessibilité plus limitée. Pas de zoom possible Web et Web MobileAndroid + Web (limité) PWA WEB Bonnes performances générales BDD locale. Pas de limites de stockage. Oui, par définition OK ++ ++ BDD locale. Pas de limites de stockage. Performances maximales Oui, idem natif : tout est embarqué dans l’application ++ + ++ ++ ++ + ++ ++ ++ + ++ + - ++ Dépend du fournisseur de push (si plugin disponible) Code source mieux protégé. Possibilité stockage sécurisé des données. Code source moins protégé. Possibilité stockage sécurisé des données. Oui, par définition Oui selon les plugins (couvrent la plupart des besoins) Voiceover (iOS), TalkBack (Android), zoom… Accessibilité plus limitée. Pas de zoom possible iOS, Android, Windows + Web iOS et Android uniquement NATIF HYBRIDE ++ ++ BUDGET Mutualisation de code, maintenabilité… Tout le code source web est mutualisé entre chaque plateforme Tout le code source web est mutualisé entre chaque plateforme ++ Chaque plateforme nécessite des développements et compétences spécifiques… Tout le code source web est mutualisé entre chaque plateforme - PERFORMANCES Scrolling, transition
  • 30. Réputation ? Partage de code ? Technologie ? Maturité ?Communauté ?
  • 31.
  • 32.
  • 33. Our feeling (web dev team) • Simple concepts but hard reality for developers • Continuous integration is as simple as native • Immature Framework • Clear 2018 roadmap missing • Risk of breaking changes between versions • Helpful community • Sensitize the UX designer to avoid specific developments per device • Faster developments than pure native • Easier tests campaigns than hybride (no webviews)
  • 34.
  • 35. 35 Pourquoi ? • Code & Coder sharing ! • Compagnons ! Sidekick, Playground, Chrome DevTools • Build dans le cloud ! • Le challenge !
  • 36. Q/A

Notes de l'éditeur

  1. Commençons par le commencement (des problèmes) : 2007 arrivée de l’iPhone… les premières apps tierses arrivent en 2008 (il y a 10 ans)… grâce à la mise en place du concept de store d’applications. Dans la foulée est arrivé Android et son store.
  2. Plus simple à maintenir Moins de code, moins de bug Un seul environnement de dev Un seul projet Etc…
  3. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  4. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  5. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  6. Runtime natif -> accès à toutes les ressources systèmes, y compris virtualisation & recyclage des composants. -> accès à toutes les possibilités systèmes, ré-utilisations de composants natifs déjà développés
  7. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  8. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  9. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  10. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  11. Les Progressive Web Apps sont des applications fonctionnant dans les navigateurs standards mais utilisant des fonctionnalités additionnelles.
  12. Arbre de décision ?
  13. Matrice de comparaison ?
  14. Détailler chaque question :
  15. EXPERT EN ASSURANCE EMPRUNTEUR ET PRODUITS DE PRÉVOYANCE