Partager via


Résumé du chapitre 1. Comment s’intègre-t-il Xamarin.Forms ?

Remarque

Ce livre a été publié au printemps 2016 et n’a pas été mis à jour depuis. Il y a beaucoup dans le livre qui reste précieux, mais certains documents sont obsolètes, et certains sujets ne sont plus entièrement corrects ou complets.

L’un des travaux les plus désagréables de la programmation consiste à porter une base de code d’une plateforme à une autre, en particulier si cette plateforme implique un langage de programmation différent. Il existe une tentation lors du portage du code pour le refactoriser également, mais si les deux plateformes doivent être conservées en parallèle, les différences entre les deux bases de code rendent la maintenance future plus difficile.

Développement mobile multiplateforme

Ce problème est courant lors du ciblage des plateformes mobiles. Actuellement, il existe deux plateformes mobiles majeures, la famille Apple d’iPhones et iPad exécutant le système d’exploitation iOS, et le système d’exploitation Android qui s’exécute sur une variété de téléphones et tablettes. Une autre plateforme importante est la plateforme Windows universelle de Microsoft (UWP), qui permet à un programme unique de cibler Windows 10.

Un fournisseur de logiciels qui souhaite cibler ces plateformes doit gérer différents paradigmes d’interface utilisateur, trois environnements de développement différents, trois interfaces de programmation différentes, et, peut-être, trois langages de programmation différents : Objective-C pour l’iPhone et l’iPad, Java pour Android et C# pour Windows.

Solution C# et .NET

Bien que Objective-C, Java et C# soient tous dérivés du langage de programmation C, ils ont évolué par des chemins très différents. C# est le plus récent de ces langues et a été de maturité de manière très utile. De plus, C# est étroitement associé à une infrastructure de programmation entière appelée .NET, qui prend en charge les mathématiques, le débogage, la réflexion, les collections, la globalisation, les E/S de fichiers, la mise en réseau, la sécurité, le threading, les services web, la gestion des données et la lecture et l’écriture JSON et XML.

Xamarin fournit actuellement des outils pour cibler les API Mac, iOS et Android natives à l’aide de C# et .NET. Ces outils sont appelés Xamarin.Mac, Xamarin.iOS et Xamarin.Android, collectivement appelés plateforme Xamarin. Il s’agit de bibliothèques et de liaisons qui expriment les API natives de ces plateformes avec des idiomes .NET.

Les développeurs peuvent utiliser la plateforme Xamarin pour écrire des applications en C# qui ciblent Mac, iOS ou Android. Mais lorsque vous ciblez plusieurs plateformes, il est très judicieux de partager un certain nombre de code entre les plateformes cibles. Cela implique de séparer le programme en code dépendant de la plateforme (généralement impliquant l’interface utilisateur) et le code indépendant de la plateforme, qui nécessite généralement uniquement le .NET Framework de base. Ce code indépendant de la plateforme peut résider dans une bibliothèque de classes portables (PCL) ou un projet partagé, souvent appelé projet de ressource partagée ou SAP.

Remarque

Les bibliothèques de classes portables ont été remplacées par des bibliothèques .NET Standard. Tous les exemples de code du livre ont été convertis pour utiliser des bibliothèques .NET standard.

Présentation des Xamarin.Forms

Lorsque vous ciblez plusieurs plateformes mobiles, Xamarin.Forms cela permet un partage de code encore plus grand. Un programme unique écrit pour Xamarin.Forms peut cibler ces plateformes :

  • iOS pour les programmes qui s’exécutent sur l’iPhone, iPad et iPod touch
  • Android pour les programmes qui s’exécutent sur des téléphones et tablettes Android
  • la plateforme Windows universelle pour cibler Windows 10

Remarque

Xamarin.Forms ne prend plus en charge Windows 8.1, Windows Phone 8.1 ou Windows 10 Mobile, mais Xamarin.Forms les applications s’exécutent sur le bureau Windows 10. Il existe également une prise en charge de la préversion pour les plateformes Mac, WPF, GTK# et Tizen .

L’essentiel d’un Xamarin.Forms programme existe dans une bibliothèque ou un SAP. Chacune des plateformes se compose d’un petit stub d’application qui appelle ce code partagé.

Les Xamarin.Forms API mappent aux contrôles natifs sur chaque plateforme, afin que chaque plateforme conserve son apparence caractéristique :

Triple capture d’écran du partage de visuels de plateforme

Les captures d’écran de gauche à droite montrent un iPhone et un téléphone Android :

Sur chaque écran, la page contient un Xamarin.FormsLabel pour afficher du texte, un Button pour lancer des actions, un Switch pour choisir une valeur activée/désactivée et pour Slider spécifier une valeur dans une plage continue. Tous les quatre de ces points de vue sont des enfants d’un sur un StackLayout ContentPage.

Également attaché à la page est une Xamarin.Forms barre d’outils composée de plusieurs ToolbarItem objets. Elles sont visibles sous forme d’icônes en haut des écrans iOS et Android, et en bas de l’écran Windows 10 Mobile.

Xamarin.Forms prend également en charge XAML, le langage extensible de balisage d’application développé chez Microsoft pour plusieurs plateformes d’application. Tous les visuels du programme indiqués ci-dessus sont définis en XAML, comme illustré dans l’exemple PlatformVisuals .

Un Xamarin.Forms programme peut déterminer la plateforme sur laquelle il s’exécute et exécuter un code différent en conséquence. Plus puissant, les développeurs peuvent écrire du code personnalisé pour les différentes plateformes et exécuter ce code à partir d’un Xamarin.Forms programme de manière indépendante de la plateforme. Les développeurs peuvent également créer des contrôles supplémentaires en écrivant des renderers pour chaque plateforme.

Bien qu’il Xamarin.Forms s’agit d’une bonne solution pour les applications métier, ou pour le prototypage, ou pour effectuer une démonstration rapide de preuve de concept, il est moins idéal pour les applications qui nécessitent des graphiques vectoriels ou une interaction tactile complexe.

Votre environnement de développement

Votre environnement de développement dépend des plateformes que vous souhaitez cibler et des machines que vous souhaitez utiliser.

Si vous souhaitez cibler iOS, vous aurez besoin d’un Mac avec Xcode et la plateforme Xamarin installée. La prise en charge d’Android nécessite également l’installation de Java et les kits SDK requis. Vous pouvez ensuite cibler iOS et Android à l’aide de Visual Studio pour Mac.

L’installation de Visual Studio permet sur le PC que vous ciblez iOS, Android et toutes les plateformes Windows. Toutefois, le ciblage d’iOS à partir de Visual Studio nécessite toujours un Mac avec Xcode et la plateforme Xamarin installée.

Vous pouvez tester des programmes sur un appareil réel connecté par USB à l’ordinateur ou sur un simulateur.

Installation

Avant de créer et de créer une Xamarin.Forms application, vous devez essayer de créer et de générer séparément une application iOS, une application Android et une application UWP, selon les plateformes que vous souhaitez cibler et votre environnement de développement.

Les sites web Xamarin et Microsoft contiennent des informations sur la procédure à suivre :

Une fois que vous pouvez créer et exécuter des projets pour ces plateformes individuelles, vous ne devez pas avoir de problème lors de la création et de l’exécution d’une Xamarin.Forms application.