Quand on parle de développement pour iOS et Android, ce sont Objective-C, Swift et Java qui viennent d’abord à l’esprit. Bien connus comme piles techniques natives, ils sont de loin les plus employés. On peut pourtant bâtir des applications commodes et agréables de bien des façons. Examinons Xamarin et comparons-le aux approches natives et multiplateformes.
Qu’est-ce que Xamarin ?
Xamarin est un outil de développement mobile multiplateforme qui permet de partager environ 90 pour cent du code entre les principales plateformes. Relativement jeune, il repose sur la pile technique de Microsoft et compte déjà une communauté de plus de 1,4 million de développeurs.
La plateforme a été bâtie par les mêmes personnes qui étaient derrière Mono, une plateforme de développement à source ouverte fondée sur le .NET Framework, présentée pour la première fois en 2001. La société Xamarin a été fondée le 16 mai 2011.
Xamarin fut d’abord un projet commercial, mais en 2016 Microsoft a racheté la société. Xamarin est devenu un produit multiplateforme apprécié de la communauté gravitant autour de l’écosystème Microsoft, et l’obstacle financier à son usage est tombé. Lorsque Microsoft a ouvert le code du SDK Xamarin, celui-ci est entré dans l’environnement Xamarin Visual Studio.
Les principales possibilités
Pour bâtir des applications sur toutes les plateformes mobiles, Xamarin n’emploie qu’un langage : C#. Xamarin se compile en natif, ce qui le rend bien adapté aux applications rapides au ressenti natif.
C# est un langage à plusieurs paradigmes, au typage strict, qui préserve le code des comportements inattendus. Il fait partie des langages .NET, si bien que l’on dispose aussi des lambdas, de LINQ et de la programmation asynchrone.
Techniquement, Xamarin emploie C# et les bibliothèques natives de la couche .NET pour le développement multiplateforme.
De telles applications se comparent aux applications natives, aussi bien sous iOS que sous Android, tant par la rapidité que par le confort d’usage. Mieux encore : Xamarin donne accès à toutes les interfaces natives et les plus récentes pour exploiter les capacités de la plateforme, comme ARKit sous iOS ou le mode multifenêtre d’Android.
Avec Xamarin, on peut bâtir une couche d’interface propre à chaque plateforme tandis que le code de la logique métier, de l’accès aux bases et des échanges réseau reste commun. C’est pourquoi les applications multiplateformes bâties avec Xamarin paraissent parfaitement natives sur n’importe quel appareil et offrent une meilleure expérience que les applications hybrides ordinaires.
Comment se passe la compilation ?
La plateforme Xamarin a deux produits centraux, pour iOS et pour Android, et la compilation diffère.
- Xamarin.iOS. Le code source est compilé directement en code natif ARM (compilation anticipée).
- Xamarin.Android. Les applications Android sont d’abord compilées en langage intermédiaire, puis en code natif à l’exécution.
Malgré cette différence, dans les deux cas la compilation se déroule d’elle-même et prend en charge des questions telles que l’allocation de mémoire, le ramassage des données inutilisées et l’entente avec la plateforme.
Structure d’un projet Xamarin
La plupart des projets Xamarin supposent un ordinateur sous Windows où Visual Studio et Xamarin sont installés. L’application se met au point directement depuis le bureau, sur des appareils ou dans des émulateurs. Développer des applications iOS sous Windows est aussi possible : Visual Studio se relie au concepteur de storyboards et au simulateur iOS.
Xamarin conquiert le monde. En un peu plus de sept ans d’existence, il a grandi jusqu’à 1,6 million de développeurs dans 120 pays, et Microsoft l’a racheté pour l’intégrer à son environnement Visual Studio. Xamarin est ainsi devenu la technique de choix de 15 000 entreprises dans des domaines comme l’énergie, les transports, les médias, la santé et bien d’autres. (c) Source