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
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
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...