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

Pour ceux qui ne le con­nais­sent pas encore, Xam­arin est un out­il de développe­ment cross-plat­form qui per­met de créer des ver­sions Win­dows, iOS et Android d’une même appli­ca­tion en util­isant un seul lan­gage (C#).

code-sharing2x

En avril 2016, on apprend que cet out­il est main­tenant inté­gré dans Visu­al Stu­dio, dont la Com­mu­ni­ty Edi­tion, qui est pro­posée gra­tu­ite­ment. Bon, si vous n’aimez pas Visu­al Stu­dio, Xam­arin pos­sède son pro­pre IDE pour Mac: Xam­arin Stu­dio, disponible égale­ment gra­tu­ite­ment. Donc, plus de lim­i­ta­tion à 32K lignes de code comme avant !

medium-157210

Pour l’histoire, tout a com­mencé avec Mono, ce pro­jet open-source visant à dot­er Unix d’une plate­forme com­pat­i­ble .NET (en sup­por­t­ant la Com­mon Lan­guage Infra­struc­ture CLI). L’idée est de  pou­voir coder des appli­ca­tions mul­ti­plate­forme (Win­dows, Mac, Lin­ux) en C# en util­isant les API et class­es exis­tantes de la Base Class Library (BCL) de .NET.

Les créa­teurs de Mono ont créé ensuite Xam­arin afin d’offrir du sup­port et con­tin­uer le dev de Mono. Ca a telle­ment bien marché qu’ils ont fini par se faire racheter en févri­er dernier par Microsoft. A ce moment là, plus d’un mil­lion de développeurs utilisent déjà ce moteur et Xam­arin compte 15 000 clients dans 120 pays ! Traduire: si vous développez sous Android et iOS et que vous n’avez pas encore essayé Xam­arin, filez vite le télécharg­er ! Bon, en même temps, je vous le con­seille surtout si vous voulez dévelop­per en cross-plat­forms (et ce n’est pas encore par­fait coté porta­bil­ité: env­i­ron 75% du code est portable). Coté perf, pour l’instant, Xam­arin Stu­dio sem­ble meilleur que de pass­er par l’intégration Visu­al Stu­dio. Mais avec Microsoft der­rière, cela pour­rait chang­er… (non, sérieux — arggg…)

Par­mi le élé­ments sym­pas:

  • Les appli­ca­tions écrites avec Xam­arin et C# ont un accès com­plet aux API de la plate­forme sous-jacente, et per­me­t­tent de créer des inter­faces util­isa­teur natives et de com­pil­er en mode natif. En sor­tie de la com­pi­la­tion, nous obtenons un binaire natif pour chaque plate­forme cible. Les appli­ca­tions pro­duites en Xam­arin sont donc très per­for­mantes. Sous Android, le code généré est exé­cuté par la machine virtuelle Mono. Cette dernière est aus­si rapi­de que sous Dalvik. Pour iOS, c’est du binaire natif (com­pi­la­tion AOT).
  • Les Forms per­me­t­tent de définir l’ensemble de l’interface en C# et XAML, exacte­ment comme les Win­dows Forms util­is­ables en envi­ron­nement .NET : Gestes tac­tiles, dis­po­si­tion, bou­tons, listes et autres con­trôles peu­vent ain­si être tous défi­nis de cette manière.

ic810358

  • On peut dévelop­per à la fois sous Win­dows & iOS: Un out­il, iOS Sim­u­la­tor pour tester et déboguer des applis iOS sous Win­dows
  • Con­nex­ion aisée aux ser­vices Microsoft Azure
  • Xam­arin Test Cloud pour automa­tis­er les tests sur 2 000 appareils réels dans le cloud ! Qui dit mieux ?
  • Sup­port des PCL (Portable Class Librairies) pour amélior­er la réu­til­i­sa­tion du code.
  • Sup­port de F#
  • Le typage fort ou dynamique lié à C#
  • Du fait du nom­bre impor­tant de développeurs, la com­mu­nauté est très active. Entre la doc­u­men­ta­tion exhaus­tive, le forum offi­ciel et Stack Over­flow, la majorité des ques­tions trou­vent réponse.

Coté  fonc­tion­nement:

Le développeur com­mence par créer une base de code com­mune. Elle con­tient notam­ment la logique méti­er, le stock­age en base de don­nées, les appels réseaux, les élé­ments d’interface com­muns. Ce pro­jet peut être facile­ment encadré par des tests uni­taires car son code est indépen­dant de tout sys­tème spé­ci­fique.

Ensuite, un pro­jet est crée par plate­forme cible. Il con­tient l’interface graphique, la nav­i­ga­tion et les com­posants pro­pres à chaque SDK. Ain­si, on peut tir­er par­ti des spé­ci­ficités pro­pres à Android ou iOS sans réduire l’expérience util­isa­teur au plus petit com­mun dénom­i­na­teur.

La dernière ver­sion ?

Fin sep­tem­bre, le frame­work passe en ver­sion 6.1 et prend en charge désor­mais iOS 10, Android 7, mais égale­ment Win­dows 10 et OSX 10.11. On notera aus­si le sup­port mul­ti-fenêtres sous Android et le sup­port des inter­ac­tions tac­tiles.

Pour télécharg­er Xam­arin: site offi­ciel - il suf­fit de rem­plir le for­mu­laire et vous pour­rez directe­ment télécharg­er l’installateur. Après, vous aurez besoin du SDK/NDK d’Android pour dévelop­per pour Android, Xcode pour iOS, etc.

Si on peut simuler iOS sous Xam­arin Win­dows, il est toute­fois oblig­a­toire d’avoir un Mac/Xcode/Xamarin pour builder l’appli et génér­er les sig­na­tures (con­sul­tez cette page pour plus d’infos sur le dev iOS sous Win­dows):

ic847505-jpeg

Bon, et ce n’est pas lim­ité au développe­ment d’applications — on peut aus­si créer des jeux :

kimberly-clark2x-1sspqp9m bastion2x-geomi2du

Pour con­fig­ur­er et installer, c’est ici. Une petite vidéo de 15 min­utes pour présen­ter le coté cross-plat­forms de Xam­arin. Plusieurs développeurs free­lance ici.

Con­cer­nant les per­spec­tives, Xam­arin devrait s’ouvrir prochaine­ment à Holosens (voir Github).

Et si tu codes déjà avec cet out­il, mer­ci de me laiss­er un petit témoignage dans les com­men­taires !

2 réflexions sur « Xamarin, un outil de développement cross-platform pour Android/iOS/Windows 10 Mobile »

  1. Pas mal comme info. Xam­arin, c’est nou­veau pour moi. Mer­ci en tout cas pour ces infos. Je m’y mets tout de suite.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.