SlideShare une entreprise Scribd logo
1  sur  27
1
Orange
Applications
for Business
XUG
Lyon
04/04/2017
2
Présentateurs
1. Sébastien PALTRIE – @ sebastien.paltrie@orange.com
2. Antonin MARTIN – @ antonin.martin@orange.com
3. Arnaud de BOCK – @ arnaud.debock@orange.com
4. Sebastien SEGOND – @ sebastien.segond@orange.com
3
Sommaire
1. REX LPA Parking avec Xamarin.Forms
2. Quelles Bonnes pratiques Xamarin
3. L’obfuscation avec Xamarin
4. Questions / Réponses
4
LPA Parking
REX Xamarin Forms
5
Présentation
LPA Parking
6
LPA : référence du stationnement de la Métropole de Lyon
Lyon Parc Auto, société d’économie mixte fondée en 1969
59,2 M€ de CA en 2016
165 salariés
 LPA Stationnement :
32 parcs de stationnement et 21 140 places
6,7 millions de clients horaires et 13 900 abonnés (2016)
38 000 places de stationnement sur voirie
7
1 constat :
Le smartphone est l’outil
spontané et indispensable
dans les moments de mobilité.
1 évidence :
LPA Parking, une application mobile
pour fluidifier les parcours clients
du début à la fin des trajets
Une appli mobile, pour quoi faire ?
8
Rechercher
et trouver un parking
avec des places disponibles
Base de données parkings, tarifs...
Recherche dynamique
Données en temps réel
Géolocalisation
Favoris
9
Navigation GPS pour rejoindre
le parking
Géolocalisation
Calcul itinéraire et temps de trajet
Guidage GPS
Navigation vers applications spécialistes
(Maps, Plans, Waze ...)
10
Accès NFC :
Ticket dématérialisé
et carte d’abonné dématérialisée
[Android only]
Équipement NFC de + de 20 parkings LPA
Badge ID NFC d’Orange
Contrôle d’accès
11
Mémoriser son N° de place
de parking
Fonctionnalité ultra pratique
12
Pourquoi avoir
choisi Xamarin ?
13
78%
Pourcentage d’exigences
fonctionnelles communes aux deux
applications
25%Estimation du
pourcentage de charges
de développement en
moins avec une solution
« cross plateform »
3
Nombre de jours d’écart
estimé entre une
réalisation Cordova et
une réalisation Xamarin
Forms pour ce projet
Analyse
du projet
2Nombre d’applications
mobiles cibles à réaliser
14
Chaine d’intégration
industrialisée avec :
Gestion des compétences
avec :
2Deux applications
« natives »
Des composants
« Forms » prédéfinis
pour iOS et Android
Promesses
Techniques
Xamarin Forms
1
• comme un seul
environnement de
développement
• comme une seule
équipe de réalisation
de BUILD puis de
RUN
15
Difficultés rencontrées
16
1/Faire matcher le design souhaité avec Forms
• Un menu vertical en bas sur Android (guideline récent Google)
• Un carrousel
Conseil : Intégrer le sachant Xamarin aux ateliers de Think / UX
2/Cartographie : implémentation spécifique
• Customization de Google Maps et Plan
17
Bilan
18
8%
Pourcentage du code spécifique
(pour les écrans Carte utilisant
« Plans »)
73 %Pourcentage du code
partagé dans
l’application Android
27 %X
Pourcentage du code
spécifique pour les
écrans Carte utilisant
Google Maps et le Sans
contact NFC
Xamarin
Forms
Promesses tenues
• Mutualisation du code
92%Pourcentage du code
partagé dans
l’application iOS
19
Cas technique
#4
Navigation par onglets
Xamarin.Forms
Problème :
• TabbedPage de Xamarin.Forms positionne les onglets en haut de page sur Android
Solution :
• Utiliser une TabbedPage dont les onglets sont masqués et gérer la navigation associée
Rendu par défaut Rendu souhaité
#4
Navigation par onglets
Xamarin.Forms
Android iOS
Utilisation d’un fichier de style pour masquer les
onglets
CustomRenderer permettant de cacher les onglets
ViewModel indépendant pour le composant BottomBar contenant le menu
NavigationService spécifique pour naviguer entre/dans les onglets
PCL Xamarin.Forms - Views + ViewModels
#4
Xamarin
Outils – Bonnes pratiques
#4
Avant le projet
Xamarin – Bonnes pratiques
Se poser les bonnes questions
• Quelles sont les plateformes cibles ?
• Quelles sont les versions des différents OS à supporter ?
• Quels types de devices ? (mobile/tablette)
• Y-a-t-il des frameworks déjà identifiés comme nécessaires ? (paiement, geofencing…)
• Les designs UI et UX ont-ils déjà été réalisés ? Si oui sont-ils complexes ? Sont-ils commun à toutes plateformes ?
#4
Pendant le projet
Xamarin – Bonnes pratiques
Programmation asynchroneUI Tests
• A inclure dans la chaîne d’intégration continue
• Tester une large plage de mobiles
• Page Object Pattern (POP)
Problématiques génériquesProblématiques génériques
• Test de connectivité
• Taille de l’application
• Utilisation de la batterie
Programmation asynchrone
• Ne pas bloquer le thread UI
• Privilégier les traitements en parallèle
Système de stockage
• SQLite
• Akavache
• Realm
• Fichiers (PCL Storage)
• Settings
#4
Préconisations Xamarin.Forms
Xamarin – Bonnes pratiques
• Suivre les releases sur https://releases.xamarin.com
• 3 canaux de releases : Stable, Beta et Alpha
• utiliser le canal Stable pour toute application de production
• l’utilisation du canal Beta peut se discuter, le Alpha est à proscrire
• Identifier les problématiques avant de démarrer les développements
• design
• peut souvent être solutionné
• navigation
• complique la résolution car dépend fortement des plateformes
• performance
• demande une analyse plus approfondie (volumétrie, plateformes cibles …)
• Eviter les préjugés
• Xamarin.Forms ne divise pas le temps de développement par 2 ou 3
• Développement spécifique par plateforme est quasi-obligatoire
#4
Pendant le projet – Focus Xamarin.Forms
Xamarin – Bonnes pratiques
• Eviter d’imbriquer trop de layouts
• Préférer l’utilisation de Grid lorsque c’est possible, en évitant les size « Auto »
• Activer la compilation XAML au niveau du namespace adéquat
• Eviter l’utilisation de Messenger Service  risque de memory leaks, « affaiblit » l’architecture
• Optimiser les ListView
• Activer le recyclage des cellules via la propriété « CachingStrategy »
• Limiter au maximum le nombre de bindings par cellule
• Optimiser les layouts en évitant les calculs
• Utiliser les cellules natives plutôt que les templates custom
la sécurité sur iOS
sommaire
1. enjeux de la sécurité
2. organismes
3. top 10 OWASP Mobile 2017
4. sécurité au cœur du projet
5. conclusion
danke schön
grazie
Thank you
merci
shukrān
merci
ta
gracias

Contenu connexe

Similaire à Xug Lyon du 04-04-2017

PhoneGap VS Appcelerator
PhoneGap VS AppceleratorPhoneGap VS Appcelerator
PhoneGap VS Appcelerator
Tiyab K.
 
Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...
Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...
Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...
Ensighten
 

Similaire à Xug Lyon du 04-04-2017 (20)

Conférence windows phone 7
Conférence windows phone 7Conférence windows phone 7
Conférence windows phone 7
 
Talend Integration Cloud spring 16 launch
Talend Integration Cloud spring 16 launch Talend Integration Cloud spring 16 launch
Talend Integration Cloud spring 16 launch
 
Xamarin - Programmation C# multi-plateforme pour iOS, Android et Windows
Xamarin - Programmation C# multi-plateforme pour iOS, Android et WindowsXamarin - Programmation C# multi-plateforme pour iOS, Android et Windows
Xamarin - Programmation C# multi-plateforme pour iOS, Android et Windows
 
Parlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usageParlons App Economie : du dev à l'usage
Parlons App Economie : du dev à l'usage
 
Développement mobile hybride ou natif : quid du ROI ?
Développement mobile hybride ou natif : quid du ROI ?Développement mobile hybride ou natif : quid du ROI ?
Développement mobile hybride ou natif : quid du ROI ?
 
Tk04 Iphone Vs Android Fr
Tk04 Iphone Vs Android FrTk04 Iphone Vs Android Fr
Tk04 Iphone Vs Android Fr
 
Réaliser une application mobile pour un groupe de presse avec PhoneGap
Réaliser une application mobile pour un groupe de presse avec PhoneGapRéaliser une application mobile pour un groupe de presse avec PhoneGap
Réaliser une application mobile pour un groupe de presse avec PhoneGap
 
PhoneGap VS Appcelerator
PhoneGap VS AppceleratorPhoneGap VS Appcelerator
PhoneGap VS Appcelerator
 
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
 
Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)Les solutions mobiles (potentiel et enjeux)
Les solutions mobiles (potentiel et enjeux)
 
L’expérience utilisateur, 
plus importante que jamais: le cas STM.info
L’expérience utilisateur, 
plus importante que jamais: le cas STM.infoL’expérience utilisateur, 
plus importante que jamais: le cas STM.info
L’expérience utilisateur, 
plus importante que jamais: le cas STM.info
 
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
 
Amp 2 ans après, quel impact sur votre seo en 2018
Amp 2 ans après, quel impact sur votre seo en 2018Amp 2 ans après, quel impact sur votre seo en 2018
Amp 2 ans après, quel impact sur votre seo en 2018
 
Responsive web design new14
Responsive web design new14Responsive web design new14
Responsive web design new14
 
Xamarin : DevOps Cloud, Re-Build et retour d'expérience
Xamarin : DevOps Cloud, Re-Build et retour d'expérienceXamarin : DevOps Cloud, Re-Build et retour d'expérience
Xamarin : DevOps Cloud, Re-Build et retour d'expérience
 
DrupalCamp Paris 2013 : Sites mobiles avec Drupal
DrupalCamp Paris 2013 : Sites mobiles avec DrupalDrupalCamp Paris 2013 : Sites mobiles avec Drupal
DrupalCamp Paris 2013 : Sites mobiles avec Drupal
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement Mobile
 
Introduction à Xamarin
Introduction à XamarinIntroduction à Xamarin
Introduction à Xamarin
 
Mobilité && SAP
Mobilité && SAPMobilité && SAP
Mobilité && SAP
 
Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...
Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...
Le Tag Management, ingrédient indispensable d’une stratégie digitale internat...
 

Xug Lyon du 04-04-2017

  • 2. 2 Présentateurs 1. Sébastien PALTRIE – @ sebastien.paltrie@orange.com 2. Antonin MARTIN – @ antonin.martin@orange.com 3. Arnaud de BOCK – @ arnaud.debock@orange.com 4. Sebastien SEGOND – @ sebastien.segond@orange.com
  • 3. 3 Sommaire 1. REX LPA Parking avec Xamarin.Forms 2. Quelles Bonnes pratiques Xamarin 3. L’obfuscation avec Xamarin 4. Questions / Réponses
  • 6. 6 LPA : référence du stationnement de la Métropole de Lyon Lyon Parc Auto, société d’économie mixte fondée en 1969 59,2 M€ de CA en 2016 165 salariés  LPA Stationnement : 32 parcs de stationnement et 21 140 places 6,7 millions de clients horaires et 13 900 abonnés (2016) 38 000 places de stationnement sur voirie
  • 7. 7 1 constat : Le smartphone est l’outil spontané et indispensable dans les moments de mobilité. 1 évidence : LPA Parking, une application mobile pour fluidifier les parcours clients du début à la fin des trajets Une appli mobile, pour quoi faire ?
  • 8. 8 Rechercher et trouver un parking avec des places disponibles Base de données parkings, tarifs... Recherche dynamique Données en temps réel Géolocalisation Favoris
  • 9. 9 Navigation GPS pour rejoindre le parking Géolocalisation Calcul itinéraire et temps de trajet Guidage GPS Navigation vers applications spécialistes (Maps, Plans, Waze ...)
  • 10. 10 Accès NFC : Ticket dématérialisé et carte d’abonné dématérialisée [Android only] Équipement NFC de + de 20 parkings LPA Badge ID NFC d’Orange Contrôle d’accès
  • 11. 11 Mémoriser son N° de place de parking Fonctionnalité ultra pratique
  • 13. 13 78% Pourcentage d’exigences fonctionnelles communes aux deux applications 25%Estimation du pourcentage de charges de développement en moins avec une solution « cross plateform » 3 Nombre de jours d’écart estimé entre une réalisation Cordova et une réalisation Xamarin Forms pour ce projet Analyse du projet 2Nombre d’applications mobiles cibles à réaliser
  • 14. 14 Chaine d’intégration industrialisée avec : Gestion des compétences avec : 2Deux applications « natives » Des composants « Forms » prédéfinis pour iOS et Android Promesses Techniques Xamarin Forms 1 • comme un seul environnement de développement • comme une seule équipe de réalisation de BUILD puis de RUN
  • 16. 16 1/Faire matcher le design souhaité avec Forms • Un menu vertical en bas sur Android (guideline récent Google) • Un carrousel Conseil : Intégrer le sachant Xamarin aux ateliers de Think / UX 2/Cartographie : implémentation spécifique • Customization de Google Maps et Plan
  • 18. 18 8% Pourcentage du code spécifique (pour les écrans Carte utilisant « Plans ») 73 %Pourcentage du code partagé dans l’application Android 27 %X Pourcentage du code spécifique pour les écrans Carte utilisant Google Maps et le Sans contact NFC Xamarin Forms Promesses tenues • Mutualisation du code 92%Pourcentage du code partagé dans l’application iOS
  • 20. #4 Navigation par onglets Xamarin.Forms Problème : • TabbedPage de Xamarin.Forms positionne les onglets en haut de page sur Android Solution : • Utiliser une TabbedPage dont les onglets sont masqués et gérer la navigation associée Rendu par défaut Rendu souhaité
  • 21. #4 Navigation par onglets Xamarin.Forms Android iOS Utilisation d’un fichier de style pour masquer les onglets CustomRenderer permettant de cacher les onglets ViewModel indépendant pour le composant BottomBar contenant le menu NavigationService spécifique pour naviguer entre/dans les onglets PCL Xamarin.Forms - Views + ViewModels
  • 23. #4 Avant le projet Xamarin – Bonnes pratiques Se poser les bonnes questions • Quelles sont les plateformes cibles ? • Quelles sont les versions des différents OS à supporter ? • Quels types de devices ? (mobile/tablette) • Y-a-t-il des frameworks déjà identifiés comme nécessaires ? (paiement, geofencing…) • Les designs UI et UX ont-ils déjà été réalisés ? Si oui sont-ils complexes ? Sont-ils commun à toutes plateformes ?
  • 24. #4 Pendant le projet Xamarin – Bonnes pratiques Programmation asynchroneUI Tests • A inclure dans la chaîne d’intégration continue • Tester une large plage de mobiles • Page Object Pattern (POP) Problématiques génériquesProblématiques génériques • Test de connectivité • Taille de l’application • Utilisation de la batterie Programmation asynchrone • Ne pas bloquer le thread UI • Privilégier les traitements en parallèle Système de stockage • SQLite • Akavache • Realm • Fichiers (PCL Storage) • Settings
  • 25. #4 Préconisations Xamarin.Forms Xamarin – Bonnes pratiques • Suivre les releases sur https://releases.xamarin.com • 3 canaux de releases : Stable, Beta et Alpha • utiliser le canal Stable pour toute application de production • l’utilisation du canal Beta peut se discuter, le Alpha est à proscrire • Identifier les problématiques avant de démarrer les développements • design • peut souvent être solutionné • navigation • complique la résolution car dépend fortement des plateformes • performance • demande une analyse plus approfondie (volumétrie, plateformes cibles …) • Eviter les préjugés • Xamarin.Forms ne divise pas le temps de développement par 2 ou 3 • Développement spécifique par plateforme est quasi-obligatoire
  • 26. #4 Pendant le projet – Focus Xamarin.Forms Xamarin – Bonnes pratiques • Eviter d’imbriquer trop de layouts • Préférer l’utilisation de Grid lorsque c’est possible, en évitant les size « Auto » • Activer la compilation XAML au niveau du namespace adéquat • Eviter l’utilisation de Messenger Service  risque de memory leaks, « affaiblit » l’architecture • Optimiser les ListView • Activer le recyclage des cellules via la propriété « CachingStrategy » • Limiter au maximum le nombre de bindings par cellule • Optimiser les layouts en évitant les calculs • Utiliser les cellules natives plutôt que les templates custom
  • 27. la sécurité sur iOS sommaire 1. enjeux de la sécurité 2. organismes 3. top 10 OWASP Mobile 2017 4. sécurité au cœur du projet 5. conclusion danke schön grazie Thank you merci shukrān merci ta gracias

Notes de l'éditeur

  1. Forte culture de l’innovation que nous souhaitons entretenir : 1er système d’encaissement électronique en 1975 (autonome puis centralisé), jalonnement dynamique en voirie, espaces motos et vélos, bornes de recharge électrique...