Si tu ne sais pas ce qu'est Xamarin, puis-je te suggérer de commencer par lire mon article d'introduction avant de continuer avec celui-ci ?

Pour ceux qui savent, entrons dans le vif du sujet :

Xamarin Forms 
Xamarin.Forms est une librairie de code qui permet de construire des interfaces graphiques natives qui peuvent être partagées sur Android, iOS et Windows Phone, complètement en C#, a partir d'une base de code C# unique et partagée. Les interfaces grahiques sont affichées à l'aide des contrôles natifs de la plate-forme cible, ce qui permet aux applications Xamarin.Forms de conserver l'aspect et la sensation appropriés pour chaque plate-forme. Cela signifie que les applications peuvent partager une grande partie de leur code d'interface utilisateur et conservent toujours l'apparence native de la plate-forme cible.
Xamarin.Forms permet un prototypage rapide des applications qui peuvent évoluer au fil du temps vers des applications complexes. Étant donné que les applications Xamarin.Forms sont des applications natives, il est possible de créer des applications qui auront certaines parties de leur interface utilisateur créées avec Xamarin.Forms tandis que d'autres parties seraient créées à l'aide d'outils UI natifs.

 

Les Custom Renderers
Comme on le voyait précédemment, les interfaces utilisateur Xamarin.Forms sont rendues à l'aide des contrôles natifs de la plate-forme cible, ce qui permet aux applications Xamarin.Forms de conserver l'apparence appropriée pour chaque plate-forme. Les Custom Renderers permettent aux développeurs d'annuler ce processus pour personnaliser l'apparence et le comportement des contrôles Xamarin.Forms sur chaque plate-forme. Ils peuvent être utilisés pour de petits changements de style ou pour une personnalisation sophistiquée de la mise en page et du comportement spécifique à la plate-forme.

 

SQLite
La plupart des applications ont besoin d'enregistrer des données sur le périphérique, localement. À moins que la quantité de données ne soit trivialement petite, il faut généralement une base de données et une couche de données dans l'application pour gérer l'accès à la base de données. SQLite est un moteur de base de données relationnelle accessible par le langage SQL.
Contrairement aux serveurs de bases de données traditionnels, comme MySQL ou SQL Server, sa particularité est de ne pas reproduire le schéma habituel client-serveur mais d'être directement intégrée aux programmes. Facile d’usage, l'intégralité de la base de données (déclarations, tables, index et données) est stockée dans un fichier indépendant sur la plateforme.
SQLite est le moteur de base de données le plus utilisé au monde, grâce à son utilisation dans de nombreux logiciels grand public comme Firefox, Skype, dans certains produits d'Apple et d'Adobe. De par son extrême légèreté (moins de 300 Ko), il est également très populaire sur la plupart des smartphones modernes.
IOS et Android ont tous deux le moteur de base de données SQLite "intégré" et l'accès aux données est simplifié par la plateforme Xamarin.

 

Boites de Dialogue ACR
Une bibliothèque multiplate-forme qui te permet d'invoquer les boites de dialogue habituelles à partir d'une bibliothèque partagée et portable: feuilles d'actions, alertes, confirmations, demandes de confirmation, chargement, connexion, progression, etc.

 

Xlabs
Un projet open source qui vise à fournir un ensemble puissant et multiplate-forme de contrôleurs et d'assistants ajustés pour travailler avec Xamarin Forms: suggestions semi-automatiques, contrôles de Calendrier, boutons-images, étiquettes d'hyperliens, etc.

 

UI Sleuth
Un outil de débogage et un inspecteur d'interface utilisateur. Si tu as déjà fait un site Web, c'est très similaire aux outils F12 de Microsoft Edge ou aux outils de développement de Google Chrome. Tu peux l'utiliser pour analyser efficacement les problèmes de mise en page, pour prototyper un nouveau design, ou encore contrôler un appareil à distance.

 

Émulateur Android GenyMotion
Si tu veux tester Android, mais sans un smartphone Android, il y a plusieurs solutions disponibles comme l’émulateur officiel d’Android qui vient avec le SDK (kit de développeur), le populaire Bluestacks App Player qui est plus axé sur l’exécution des applications Android sur PC. Cependant, l’émulateur du SDK est connu pour être très lent tandis que Bluestacks est limité en fonctionnalités si tu veux faire du développement. Si tu cherches un émulateur Android plus rapide et complet pour ordinateur, Genymotion est ce qu’il te faut.
Genymotion est un émulateur pour Android, rapide et facile, pour tester le fonctionnement et les performances d'applications. C'est l'émulateur Android le plus puissant pour les testeurs et les développeurs d'applications. Conçu par la start-up française Genymobile, Genymotion permet l'émulation d'un grand nombre de marques et de modèles de tablettes et de smartphones. S'appuyant sur des technologies de virtualisation grâce à VirtualBox, il crée une machine virtuelle qui émule en temps réel Android sur ton PC Windows, Mac ou Linux. il est ainsi possible d'émuler différents terminaux comme la gamme des Samsung Galaxy Note, Google Nexus, HTC One ou encore les tablettes Sony Xperia. GenyMotion offre la possibilité de paramétrer facilement la résolution d’écran, le type de connexion Internet, le GPS, le statut de la batterie (simuler un déchargement), etc.

 

Simulateur iOS à distance
Pour tester et déboguer les applications iOS dans Visual Studio sous Windows. La plupart des ordinateurs Windows modernes ont des écrans tactiles et le simulateur iOS distant vous permet de toucher la fenêtre du simulateur pour tester les interactions de l'utilisateur dans votre application iOS. Cela inclut les pincements, les glissements et les gestes tactiles avec plusieurs doigts, des choses qui, auparavant, ne pouvaient être testées que sur iPhone, directement.