Xamarin, un outil de développement cross-platform pour Android/iOS/Windows 10 Mobile

Pour ceux qui ne le connaissent pas encore, Xamarin est un outil de développement cross-platform qui permet de créer des versions Windows, iOS et Android d’une même application en utilisant un seul langage (C#).

code-sharing2x

En avril 2016, on apprend que cet outil est maintenant intégré dans Visual Studio, dont la Community Edition, qui est proposée gratuitement. Bon, si vous n’aimez pas Visual Studio, Xamarin possède son propre IDE pour Mac: Xamarin Studio, disponible également gratuitement. Donc, plus de limitation à 32K lignes de code comme avant !

medium-157210

Pour l’histoire, tout a commencé avec Mono, ce projet open-source visant à doter Unix d’une plateforme compatible .NET (en supportant la Common Language Infrastructure CLI). L’idée est de  pouvoir coder des applications multiplateforme (Windows, Mac, Linux) en C# en utilisant les API et classes existantes de la Base Class Library (BCL) de .NET.

Les créateurs de Mono ont créé ensuite Xamarin afin d’offrir du support et continuer le dev de Mono. Ca a tellement bien marché qu’ils ont fini par se faire racheter en février dernier par Microsoft. A ce moment là, plus d’un million de développeurs utilisent déjà ce moteur et Xamarin compte 15 000 clients dans 120 pays ! Traduire: si vous développez sous Android et iOS et que vous n’avez pas encore essayé Xamarin, filez vite le télécharger ! Bon, en même temps, je vous le conseille surtout si vous voulez développer en cross-platforms (et ce n’est pas encore parfait coté portabilité: environ 75% du code est portable). Coté perf, pour l’instant, Xamarin Studio semble meilleur que de passer par l’intégration Visual Studio. Mais avec Microsoft derrière, cela pourrait changer… (non, sérieux – arggg…)

Parmi le éléments sympas:

  • Les applications écrites avec Xamarin et C# ont un accès complet aux API de la plateforme sous-jacente, et permettent de créer des interfaces utilisateur natives et de compiler en mode natif. En sortie de la compilation, nous obtenons un binaire natif pour chaque plateforme cible. Les applications produites en Xamarin sont donc très performantes. Sous Android, le code généré est exécuté par la machine virtuelle Mono. Cette dernière est aussi rapide que sous Dalvik. Pour iOS, c’est du binaire natif (compilation AOT).
  • Les Forms permettent de définir l’ensemble de l’interface en C# et XAML, exactement comme les Windows Forms utilisables en environnement .NET : Gestes tactiles, disposition, boutons, listes et autres contrôles peuvent ainsi être tous définis de cette manière.

ic810358

  • On peut développer à la fois sous Windows & iOS: Un outil, iOS Simulator pour tester et déboguer des applis iOS sous Windows
  • Connexion aisée aux services Microsoft Azure
  • Xamarin Test Cloud pour automatiser les tests sur 2 000 appareils réels dans le cloud ! Qui dit mieux ?
  • Support des PCL (Portable Class Librairies) pour améliorer la réutilisation du code.
  • Support de F#
  • Le typage fort ou dynamique lié à C#
  • Du fait du nombre important de développeurs, la communauté est très active. Entre la documentation exhaustive, le forum officiel et Stack Overflow, la majorité des questions trouvent réponse.

Coté  fonctionnement:

Le développeur commence par créer une base de code commune. Elle contient notamment la logique métier, le stockage en base de données, les appels réseaux, les éléments d’interface communs. Ce projet peut être facilement encadré par des tests unitaires car son code est indépendant de tout système spécifique.

Ensuite, un projet est crée par plateforme cible. Il contient l’interface graphique, la navigation et les composants propres à chaque SDK. Ainsi, on peut tirer parti des spécificités propres à Android ou iOS sans réduire l’expérience utilisateur au plus petit commun dénominateur.

La dernière version ?

Fin septembre, le framework passe en version 6.1 et prend en charge désormais iOS 10, Android 7, mais également Windows 10 et OSX 10.11. On notera aussi le support multi-fenêtres sous Android et le support des interactions tactiles.

Pour télécharger Xamarin: site officiel – il suffit de remplir le formulaire et vous pourrez directement télécharger l’installateur. Après, vous aurez besoin du SDK/NDK d’Android pour développer pour Android, Xcode pour iOS, etc.

Si on peut simuler iOS sous Xamarin Windows, il est toutefois obligatoire d’avoir un Mac/Xcode/Xamarin pour builder l’appli et générer les signatures (consultez cette page pour plus d’infos sur le dev iOS sous Windows):

ic847505-jpeg

Bon, et ce n’est pas limité au développement d’applications – on peut aussi créer des jeux :

kimberly-clark2x-1sspqp9m bastion2x-geomi2du

Pour configurer et installer, c’est ici. Une petite vidéo de 15 minutes pour présenter le coté cross-platforms de Xamarin. Plusieurs développeurs freelance ici.

Concernant les perspectives, Xamarin devrait s’ouvrir prochainement à Holosens (voir Github).

Et si tu codes déjà avec cet outil, merci de me laisser un petit témoignage dans les commentaires !

Ces articles pourraient aussi vous intéresser …