Xamarin

Technique ・ Niveau : Compétent ・ Expérience : 3 ans ・ Temps de lecture : 4 minutes

Xamarin permet de créer des applications natives pour Android et iOS en utilisant du code .NET et des interfaces utilisateur spécifiques à la plateforme. La société a été rachetée par Microsoft en 2016, qui a ensuite rendu le SDK Xamarin open source et proposé les outils de la plateforme gratuitement.

Contexte d'utilisation

Tout au long de ma carrière de développeur, j'ai eu l'opportunité de travailler sur des applications mobiles. Les possibilités qu'offre Xamarin en matière de multiplate-forme sont très intéressantes pour ne pas avoir à coder la même application pour Android et iOS.

Le projet MobiFarm était ma première expérience avec la technologie Xamarin. Il s'agissait d'une application mobile permettant de localiser des producteurs et des marchés. Son objectif était de pouvoir être compatible avec les appareils Android et iOS. Le fait de pouvoir développer des composants graphiques pouvant s'adapter aux deux systèmes d'exploitation nous a fait gagner énormément de temps.

De plus, nous avons dû utiliser les coordonnées GPS des téléphones, afin de tracer des itinéraires entre la position de l'utilisateur et une ferme à visiter par exemple. Le SDK Xamarin nous a grandement facilité la tâche en fournissant des API répondant facilement au besoin.

Autocritique

Xamarin est une technologie qui a déjà fait ses preuves pour des applications mobiles grand public. De plus en plus de langage cherche aujourd'hui à proposer du multiplate-forme aux développeurs afin de limiter les coûts de production d'une application ainsi que la dette technique qu'impliquent d'avoir deux codes différents répondants au même besoin. Xamarin a été une des premières technologies à proposer cette solution ce qui en fait une référence dans ce domaine.

De plus, le langage utilisé pour réaliser des applications Xamarin est le C# ce qui représente une force due à la grande communauté de développeurs utilisant le Framework .NET pour d'autres types de projets (sites internet, applications console et clients lourds).

Concernant ma marge de progression, il me reste beaucoup de particularité propre au développement mobile en multiplate-forme à apprendre. Ayant acquis les bases grâce aux projets sur lesquels j'ai pu travailler, je me considère comme compétent en matière de niveau sur cette compétence. Une marge de progression qui m'intéresse est consacré aux performances d'une application Xamarin étant exécutée sur des terminaux avec des versions Android assez anciennes.

Xamarin est une compétence importante par rapport à mes responsabilités car nous avons migré plusieurs de nos applications en Xamarin afin d'avoir un code mutualisé pour les utilisateurs Android et iOS. J'ai déjà suivi des cours en ligne pour m'autoformer sur cette compétence et je souhaite continuer afin d'améliorer mon niveau pour avoir un regard expert sur cette technologie.

Conclusion

Pour avoir utilisé Xamarin dans plusieurs projets, j'ai pu identifier des limitations qu'implique le multiplate-forme. A mon sens, la réalisation d'application mobile complexe doit être faite avec le langage natif à savoir Java ou Kotlin pour Android et Swift pour iOS. Dans le cas où le rôle de l'application reste assez simple, l'utilisation du multiplate-forme est une véritable aubaine.