Xamarin Développez vos applications multiplateformes pour iOS, Android et Windows
Présentation
Les premiers chapitres détaillent l'installation de Xamarin et la configuration des environnements de développement (avec Visual Studio) et le téléchargement d'émulateurs. Viennent ensuite les chapitres relatifs à la mutualisation du code, à la mise en place de tests pour vérifier la qualité du développement, à l'accès aux systèmes de fichiers et aux paramètres utilisateurs ou encore à l'utilisation du moteur de base de données SQLite.
Dans la suite du livre, les auteurs présentent au lecteur le cycle de vie d'une application en étudiant notamment les différents états d'une application, les méthodes utilisées ou encore les principaux événements.
Enfin, les derniers chapitres traitent de la personnalisation de l'interface graphique : navigation, création d'un formulaire, mise en forme des données, gestion des médias, contrôle WebView, utilisation d'un contrôle de cartographie, etc.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
Les chapitres du livre :
Avant-propos – Introduction – Configurer vos environnements de développement – Modèle de compilation – Mutualisation de code – Les tests – Système de fichiers et paramètres – Utiliser une base de données – Consommer des webservices – Cycle de vie – Navigation – Mise en page – Les formulaires – Mise en forme des données – Gestion des médias – WebView – Cartes
Table des matières
Avant-propos
- 1. Pourquoi ce livre ?
- 2. À qui s’adresse cet ouvrage ?
- 3. Remerciements
Introduction
- 1. Qu’est-ce que la plateforme Xamarin ?
- 1.1 L’environnement .NET sur iOS et Android
- 1.2 Un accès à toutes les API natives
- 2. Installer Xamarin
- 2.1 Commencer avec Xamarin pour iOS
- 2.1.1 Créer un compte développeur Apple Store
- 2.1.2 Enregistrer son iPhone
- 2.1 Commencer avec Xamarin pour iOS
- 2.2 Commencer avec Xamarin pour Android
- 2.2.1 Créer son compte développeur Google Play
- 2.2.2 Télécharger les émulateurs Android
- 2.3 Commencer avec Xamarin pour Windows
- 2.3.1 Créer son compte développeur Windows Store
- 2.3.2 Télécharger les émulateurs Windows Phone
Configurer vos environnements de développement
- 1. Introduction
- 2. Configuration pour iOS
- 2.1 Configuration du Mac
- 2.2 Intégration avec Visual Studio
- 2.3 Ajout d'émulateurs
- 3. Configuration pour Android
- 3.1 Intégration avec Visual Studio
- 3.2 Les émulateurs
- 3.3 Android SDK Manager
- 4. Configuration pour UWP
- 4.1 Installation de Visual Studio
- 4.2 Mise à jour de Visual Studio
- 4.3 Version de Xamarin installée
- 4.4 SDK Windows 10
- 5. Conclusion
Modèle de compilation
- 1. Introduction
- 2. Comment Xamarin crée-t-il des exécutables multiplateformes ?
- 2.1 iOS et Android
- 2.1.1 Spécificité iOS
- 2.1.2 Spécificité Android
- 2.1.3 Activer LLVM
- 2.1.4 Choisir l’implémentation de HttpClient
- 2.1 iOS et Android
- 2.2 UWP
- 2.3 Différence entre Debug et Release
- 3.1 iOS et Android
- 3.1.1 Configurer son Linker
- 3.1.2 Guider le compilateur Xamarin.iOS et Xamarin.Android
- 3.1.3 Utiliser un fichier de configuration
Mutualisation de code
- 1. Introduction
- 2. Quelles sont les possibilités pour partager son code en Xamarin ?
- 2.1 Présentation
- 2.2 SharedProject
- 2.2.1 Présentation
- 2.2.2 Avantage
- 2.2.3 Inconvénients
- 2.2.4 Création d'un SharedProject
- 2.2.5 Directive préprocesseur
- 2.3 Portable Class Library
- 2.3.1 Présentation
- 2.3.2 Avantages
- 2.3.3 Inconvénients
- 2.3.4 Création d'une PCL
- 3.1 Présentation
- 3.2 Mise en place
- 3.2.1 Création de l'interface
- 3.2.2 Implémentation
- 3.2.3 La classe Locator
- 3.2.4 Utilisation
- 4.1 Présentation
- 4.2 Avantages
- 4.3 Outillage
- 4.4 MvvmCross
- 4.4.1 Présentation
- 4.4.2 Intégration de MvvmCross dans Windows, Android et iOS
- 4.5.1 Présentation
- 4.5.2 Intégration de MVVM Light dans Windows, Android et iOS
Les tests
- 1. Introduction
- 2. Tests unitaires
- 3. Créer des tests unitaires avec NUnit
- 3.1 Créer un projet NUnit
- 3.2 Créer une classe de Test
- 3.2.1 Les méthodes de la classe Assert
- 3.3 Afficher le résultat des tests
Système de fichiers et paramètres
- 1. Introduction
- 2. Accès aux fichiers
- 2.1 iOS
- 2.1.1 Présentation
- 2.1.2 Répertoires d'application
- 2.1.3 Lire et écrire dans les répertoires d'application
- 2.1 iOS
- 2.2 Android
- 2.2.1 Présentation
- 2.2.2 Récupération des emplacements de stockage
- 2.2.3 Permissions
- 2.2.4 Manipulation des fichiers et dossiers
- 2.3 Windows 10
- 2.3.1 Présentation
- 2.3.2 Dossiers et fichiers d'application
- 2.3.3 Dossiers et fichiers auxquels les applications ont accès
- 2.4 Code multiplateforme
- 2.4.1 PCL Storage
- 2.4.2 Ressources embarquées
- 3.1 iOS
- 3.1.1 Présentation
- 3.1.2 Sauvegarde des préférences
- 3.1.3 Récupération des préférences
- 3.2.1 Présentation
- 3.2.2 Sauvegarde des préférences
- 3.2.3 Récupération des préférences
- 3.3.1 Présentation
- 3.3.2 Local Settings
- 3.3.3 Roaming Settings
- 3.3.4 Donnée composite
- 3.3.5 Les conteneurs
- 3.3.6 Notifications sur les changements de données en itinérance
- 3.4.1 Settings Plugin
- 3.4.2 Créer la classe statique Settings
Utiliser une base de données
- 1. Introduction
- 2. SQLite
- 2.1 Plug-in SQLite
- 2.2 Classe de données
- 2.2.1 PrimaryKey
- 2.2.2 AutoIncrement
- 2.2.3 Autres attributs
- 2.2.4 Type de données
- 2.3 Service d’accès aux données
- 2.3.1 DataItemRepository
- 2.3.2 Repository : initialisation
- 2.3.3 DataService : accès aux données
- 2.4 Implémentation SQLite
- 2.4.1 iOS
- 2.4.2 Android
- 2.4.3 Windows 10
Consommer des webservices
- 1. Introduction
- 1.1 Verbes HTTP
- 1.2 Création de requêtes
- 1.2.1 API
- 1.2.2 Création de requêtes
- 1.2.3 Headers
- 1.2.4 Contenu de requête
- 1.3 Réponses
- 1.3.1 Statut de réponse
- 1.3.2 Lecture de la réponse
- 1.4 Format JSON
- 1.4.1 Présentation
- 1.4.2 Création dynamique des classes
- 1.4.3 Déserialisation
Cycle de vie
- 1. Introduction
- 2. Cycle de vie
- 2.1 iOS
- 2.1.1 Introduction
- 2.1.2 Les différents états d’une application
- 2.1.3 Les méthodes du cycle de vie d’une application
- 2.1.4 Les différents états d’un UIViewController
- 2.1.5 Les méthodes du cycle de vie d’un UIViewController
- 2.1 iOS
- 2.2 Android
- 2.2.1 Introduction
- 2.2.2 Les différents états d’une activité
- 2.2.3 Les méthodes du cycle de vie
- 2.2.4 Les changements de configuration
- 2.3 UWP
- 2.3.1 Introduction
- 2.3.2 Les différents états d’une application
- 2.3.3 Les principaux évènements du cycle de vie
Navigation
- 1. Introduction
- 2. La navigation
- 2.1 iOS
- 2.1.1 Présentation
- 2.1.2 Navigation simple
- 2.1.3 Gestion via storyboard
- 2.1.4 Navigation sans storyboard
- 2.1.5 Navigation avec storyboard
- 2.1.6 Passage de données entre UIViewController
- 2.1.7 Persistance des données
- 2.1.8 Enregistrement de l’état
- 2.1 iOS
- 2.2 Android
- 2.2.1 Présentation
- 2.2.2 Définition d'une activité
- 2.2.3 Navigation vers une autre activité
- 2.2.4 Passage de données entre activités
- 2.2.5 Exemple de navigation
- 2.2.6 Persistance des données
- 2.3 UWP
- 2.3.1 Présentation
- 2.3.2 La Frame
- 2.3.3 Définition d'une page
- 2.3.4 Navigation vers une autre page
- 2.3.5 Passage de données entre pages
- 2.3.6 Exemple de navigation
- 2.3.7 Persistance des données
Mise en page
- 1. Introduction
- 2. Structure d'une vue
- 2.1 iOS
- 2.2 Android
- 2.3 UWP
- 3. Mise en place d'une vue
- 3.1 iOS
- 3.1.1 Via fichier .xib
- 3.1.2 Via C#
- 3.1 iOS
- 3.2 Android
- 3.2.1 Via AXML
- 3.2.2 Via C#
- 3.3 UWP
- 3.3.1 Via XAML
- 3.3.2 Via C#
- 4.1 iOS
- 4.1.1 Présentation
- 4.1.2 Frame-Based Layout
- 4.1.3 Auto Layout
- 4.2.1 Présentation
- 4.2.2 LinearLayout
- 4.2.3 RelativeLayout
- 4.2.4 TableLayout
- 4.3.1 Présentation
- 4.3.2 Canvas
- 4.3.3 StackPanel
- 4.3.4 Grid
Les formulaires
- 1. Introduction
- 2. Les libellés
- 2.1 iOS
- 2.2 Android
- 2.3 Windows 10
- 3. Saisir un texte, un nombre
- 3.1 iOS
- 3.2 Android
- 3.3 Windows 10
- 4. Les boutons
- 4.1 iOS
- 4.2 Android
- 4.3 Windows 10
- 5. Les cases à cocher
- 5.1 iOS
- 5.2 Android
- 5.3 Windows 10
- 6. Curseur
- 6.1 iOS
- 6.2 Android
- 6.3 Windows 10
- 7. Afficher un chargement
- 7.1 iOS
- 7.2 Android
- 7.3 Windows 10
- 8. Afficher des alertes
- 8.1 iOS
- 8.2 Android
- 8.3 Windows 10
- 9. Utiliser une police personnalisée
- 9.1 iOS
- 9.2 Android
- 9.3 Windows 10
- 10. Conclusion
Mise en forme des données
- 1. Introduction
- 2. Lier la vue aux données
- 2.1 iOS et Android
- 2.2 UWP
- 2.2.1 Lier une donnée à un contrôle
- 3.1 iOS
- 3.1.1 Présentation
- 3.1.2 Créer une source de données
- 3.1.3 Désactiver le séparateur de cellule
- 3.1.4 Définir la hauteur des cellules
- 3.1.5 Gérer la sélection d'une cellule
- 3.1.6 Désactiver la sélection d'une cellule
- 3.1.7 Ajouter des actions au swipe
- 3.1.8 Pull To Refresh
- 3.1.9 Endless Scrolling
- 3.2.1 Présentation
- 3.2.2 Les attributs
- 3.2.3 Les adaptateurs
- 3.2.4 Pull To Refresh
- 3.2.5 Endless Scrolling
- 3.2.6 Listener
- 3.3.1 Présentation
- 3.3.2 Les attributs
- 3.3.3 Endless Scrolling
- 3.3.4 Implémentation générique
- 3.3.5 Utilisation d'une liste à chargement incrémentiel
Gestion des médias
- 1. Introduction
- 2. Afficher une image
- 2.1 iOS
- 2.1.1 Présentation
- 2.1.2 Charger une image
- 2.1.3 Afficher une image
- 2.1.4 Sauvegarder une image
- 2.1 iOS
- 2.2 Android
- 2.2.1 Présentation
- 2.2.2 Afficher une image
- 2.2.3 Sauvegarder une image
- 2.3 Windows 10
- 2.3.1 Présentation
- 2.3.2 Afficher une image
- 2.3.3 Sauvegarder une image
- 3.1 iOS
- 3.1.1 Charger un fichier audio
- 3.1.2 Lire une musique
- 3.1.3 Libérer les ressources du lecteur audio
- 3.1.4 Augmenter/baisser le volume de la musique
- 3.1.5 Jouer un son court (bruitage)
- 3.1.6 Exemple complet
- 3.2.1 Introduction
- 3.2.2 Utilisation du MediaPlayer
- 3.3.1 Lire un contenu multimédia
- 3.3.2 Lire un contenu vidéo dans un contrôle XAML
- 3.3.3 Intégration avec le System Media Transport Controls (SMTC)
- 3.3.4 Lire un contenu multimédia en arrière-plan
- 3.3.5 Ajuster le volume d'un contenu multimédia
- 4.1 iOS
- 4.1.1 Autoriser l'application à accéder au microphone
- 4.1.2 Définir le profil d'enregistrement
- 4.1.3 Commencer l'enregistrement
- 4.1.4 Terminer l'enregistrement
- 4.1.5 Exemple complet
- 4.2.1 Introduction
- 4.2.2 Autoriser l'application à accéder au microphone
- 4.2.3 Choisir le microphone
- 4.2.4 Créer le fichier cible
- 4.2.5 Définir le profil d'enregistrement
- 4.2.6 Commencer l'enregistrement
- 4.2.7 Terminer l'enregistrement
- 4.3.1 Autoriser l'application à accéder au microphone
- 4.3.2 Choisir le microphone
- 4.3.3 Créer le Graph audio
- 4.3.4 Définir le profil d'encodage
- 4.3.5 Créer le fichier cible
- 4.3.6 Commencer l'enregistrement
- 4.3.7 Terminer l'enregistrement
- 5.1 iOS
- 5.1.1 Créer le lecteur vidéo
- 5.1.2 Lire une vidéo
- 5.1.3 Mettre pause
- 5.1.4 Augmenter/baisser le volume audio
- 5.1.5 Désactiver les boutons
- 5.2.1 Créer le lecteur vidéo
- 5.2.2 Lire une vidéo
- 5.2.3 Arrêter une vidéo
- 5.3.1 Créer le lecteur vidéo
- 5.3.2 Lire un contenu vidéo dans un contrôle XAML
- 5.3.3 Maintenir l'écran allumé
- 5.3.4 Déterminer si le contenu est de la vidéo
- 5.3.5 Redimensionner une vidéo
WebView
- 1. Introduction
- 2. Le contrôle WebView
- 2.1 iOS
- 2.2 Android
- 2.3 UWP
- 3. Navigation vers une page externe
- 3.1 iOS
- 3.1.1 Affichage d'une URL HTTPS
- 3.1.2 Affichage d'une URL HTTP
- 3.1.3 ScalePageToFit
- 3.1 iOS
- 3.2 Android
- 3.3 Windows
- 4.1 iOS
- 4.1.1 Ajout du fichier HTML dans l’application
- 4.1.2 Navigation vers le fichier local
- 4.2.1 Ajout du fichier HTML dans l’application
- 4.2.2 Navigation vers le fichier local
- 5.1 iOS
- 5.1.1 Navigation vers une chaîne de caractères
- 5.1.2 Navigation vers une chaîne de caractères qui utilise un contenu embarqué dans l’application
- 5.2.1 Navigation vers une chaîne de caractères
- 5.2.2 Navigation vers une chaîne de caractères qui utilise un contenu embarqué dans l’application
- 5.3.1 Navigation vers une chaîne de caractères
- 5.3.2 Navigation vers une chaîne de caractères qui utilise un contenu embarqué dans l’application
- 6.1 iOS
- 6.2 Android
- 6.3 Windows
- 6.3.1 Évènements disponibles
- 6.3.2 Navigation par protocole
- 7.1 iOS
- 7.1.1 Appeler du code JavaScript depuis le code C#
- 7.1.2 Appeler du code C# depuis le code JavaScript
- 7.2.1 Appeler du code JavaScript depuis le code C#
- 7.2.2 Appeler du code C# depuis le code JavaScript
- 7.3.1 Appeler du code JavaScript depuis le code C#
- 7.3.2 Appeler du code C# depuis le code JavaScript
Cartes
- 1. Introduction
- 2. Autoriser la localisation
- 3. Utiliser une application de carte existante
- 3.1 iOS
- 3.1.1 Présentation
- 3.1.2 Carte standard lancée par une URL
- 3.1 iOS
- 3.2 Android
- 3.2.1 Présentation
- 3.2.2 Carte standard
- 3.2.3 StreetView
- 3.3 Windows 10
- 3.4 Code multiplateforme
- 3.4.1 Présentation
- 3.4.2 Installation du plug-in de l'application
- 3.4.3 Lancement de l'application
- 4.1 iOS
- 4.1.1 Présentation
- 4.1.2 Contrôle
- 4.1.3 Centrage
- 4.1.4 Affichage de la position de l'utilisateur
- 4.1.5 Zoom
- 4.1.6 Points d'intérêt
- 4.2.1 Présentation
- 4.2.2 Prérequis
- 4.2.3 Permissions
- 4.2.4 Contrôle
- 4.2.5 Centrage
- 4.2.6 Affichage de la position de l'utilisateur
- 4.2.7 Zoom
- 4.2.8 Points d'intérêt
- 4.3.1 Présentation
- 4.3.2 Contrôle
- 4.3.3 Centrage
- 4.3.4 Récupération de la position de l'utilisateur
- 4.3.5 Zoom
- 4.3.6 Points d'intérêt
Auteurs
Jérôme GIACOMINIEn savoir plus
Jérôme GIACOMINI est référent technique sur les technologies cross-plateform chez Infinite Square. Également créateur indépendant d'applications mobiles avec les technologies .NET, il s'est naturellement intéressé à Xamarin pour contenter un plus grand nombre d'utilisateurs. Il participe également activement aux meet-up Xamarin en tant que speaker pour partager sa passion et son expertise sur cette technologie.
Maxime FRAPPATEn savoir plus
Maxime FRAPPAT est consultant sénior chez Aneo. Il est reconnu Microsoft MVP (Most Valuable Professional) dans la catégorie Visual Studio and Development Technologies, et depuis quelques années, il se passionne pour le développement multiplateforme. Il est auteur d’un livre sur le développement de jeux vidéo avec Unity3D aux Editions ENI.
Michaël FERYEn savoir plus
Après avoir été développeur Universal Windows Platform, Michaël FERY est aujourd’hui coach technique chez SOAT, cabinet de conseil informatique, de développement et de coaching. Il accompagne au quotidien ses clients dans la conception et la transformation durable de leurs applications. Tour à tour consultant, formateur et conférencier, il intervient également régulièrement lors d’événements Microsoft ou de meet-up pour y apporter son expertise de Microsoft MVP (Most Valuable Professional) Windows Development.
Thomas LEBRUNEn savoir plus
Thomas LEBRUN est architecte chez Infinite Square, cabinet d'expertise spécialisé dans le design et le développement d’applications logicielles pour les entreprises. Speaker régulier lors d'évènements Microsoft ou de meet-up, il est reconnu MVP (Most Valuable Professionnal) Visual Studio and Development Technologies. Il s'intéresse à Xamarin depuis les débuts de cette technologie, ce qui en fait un expert reconnu sur le sujet. Vous pouvez le suivre sur son blog http://blogs.infinitesquare.com/users/tlebrun ou sur son compte Twitter (http://twitter.com/thomas_lebrun).
Caractéristiques
- Niveau Confirmé à Expert
- Nombre de pages 478 pages
- Parution octobre 2017
- Livre (broché) - 17 x 21 cm
- ISBN : 978-2-409-00747-7
- EAN : 9782409007477
- Ref. ENI : EPXAM
- Niveau Expert
- Parution octobre 2017
- HTML
- ISBN : 978-2-409-01057-6
- EAN : 9782409010576
- Ref. ENI : LNEPXAM
Téléchargements
- Des fichiers complémentaires (104 Mo)