17/07/2019

Xamarin

Xamarin

Tu es un jeune développeur ambitieux et tu souhaites développer une application mobile pour devenir (très) riche, ou, plus humblement, tu travailles pour une entreprise qui a un vrai besoin métier en mobilité ? Pas de doutes, Xamarin est fait pour toi !

Et ça tombe bien car c'est vraiment, il me semble, le bon moment pour s'y metttre. En effet, je regarde de près et depuis de très nombreuses années le développement du projet Xamarin et force est de constater qu'il avance maintenant à grands pas, notamment depuis le rachat de la société Xamarin, qui portait le projet, par Microsoft. Ce rachat s'est accompagné logiquement de la promotion des deux fondateurs à des postes clés chez Microsoft, ce qui a contribué aussi à redonner de la coolitude, de fraîcheur, à cette vieille dame qui s'était endormie sur ses lauriers (Windows/Office) et avait complétement raté le train du mobile.

Le nombre d'années de gestation peut paraître énorme comparé à des startups dont le time-to-market est de 6 mois, mais il faut dire que le projet Xamarin est vraiment très ambitieux; il s'agit de proposer une solution de développement mobile unique, native et robuste pour toutes les plateformes mobiles du marché (Android, iOS et, accessoirement, Windows 10)... Bref, rien de moins que l'anneau pour les contrôler tous ! Pardonnez du peu :)

Mais revenons un instant en arrière pour un peu d'histoire. A l'origine de Xamarin était le projet Mono, lui-même issu du projet Duplo, si on devait remonter jusqu'à la genèse. Lancé en 2001 par Miguel de Icaza, le projet Mono avait pour but de fournir une implémentation libre et Open Source de la plateforme de développement .NET, lancée quelques années avant par Microsoft pour concurrencer l'omniprésence de JAVA... Depuis cette date le projet a connu des fortunes diverses, dont 3 rachats. Mais après presque 20 ans de développement, Xamarin est finalement devenu un des projets phares de Microsoft, qui pourrait bien à son tour s'appuyer sur Xamarin pour revenir dans la course dans le domaine du mobile, logiciellement et matériellement parlant, avec le très prometteur projet Centaurus, ce dispositif pliant unique se situant entre le smartphone et la petite tablette avec clavier type Surface GO... Il y a bien là une place à prendre, notamment dans les usages professionnels en mobilité, là où un smartphone est trop petit pour travailler mais une tablette encore trop grande et encombrante.

Bon, d'accord, c'est donc le bon moment pour s'y mettre, c'est entendu. Mais on commence par où ?

C'est très simple, jeune padawan ;-) Il te faut d'abord un bon PC à jour ou un Mac afin d'y installer VisualStudio 2019 Community edition et la "charge de travail" dénommée 'Développement mobile en .NET'. Prévoir au moins 8 Go de RAM et 10 Go d'espace libre sur votre périphérique de stockage (de préférence un SSD).

Une fois équipé de VisualStudio et prêt à coder, on prend une grande respiration et on rend sur le site d'elearning de Microsoft, Microsoft Learn pour y suivre très attentivement le cursus Créer des applications mobiles avec Xamarin.Forms. Ce cursus est particulierement bien fait, interactif et très progressif, et à l'issue duquel tu devrais y voir plus clair sur le monde Xamarin en général et, pour les plus rapides, être en capacité de développer une petite application mobile multi-plateformes !

Cette formation permet au passage d'aborder des concepts forts de la conception de logiciel, que sont le Binding, les interfaces, le patron de conception MVVM, l'asynchronisme (async/await), et, pour finir en beauté, l'inversion de contrôle (IoC).

Autant de concepts indispensables à l'architecture des applications mobiles modernes, robustes et maintenables. Concepts clés que je vais tenter d'expliquer aussi sur ce blog, mais à ma manière, en commençant doucement par un billet sur l'inversion de contrôle (IoC) et les interfaces.