Pourquoi considérer Xamarin Forms pour une application mobile développée avec une approche Agile?

Plusieurs aspects sont à considérer lors du démarrage d’un projet, qu’il soit Agile ou non. Parmi ceux-ci, on retrouve évidemment la technologie à utiliser. Dans le cas d’une application mobile, plusieurs choix s’offrent à nous : développer nativement sur Android et iOS, ou encore utiliser une solution multi-plateformes, comme par exemple React Native ou Xamarin (plusieurs autres choix sont disponibles).

Regardons ce qu’une plateforme comme Xamarin Forms peut apporter comme avantages aux développeurs, mais aussi au Product Owner.

Pour ceux qui ne connaissent pas Xamarin, il permet de faire du développement natif pour Android, iOS et Windows en C#, en ayant accès aux API spécifiques à chaque plateforme et donc à toutes les fonctionnalités qu’elles offrent. De plus, tout ceci est fait dans l’optique de partager le code via une librairie commune à tous les projets. Xamarin Forms est une couche d’abstraction qui permet de développer les interfaces utilisateurs pour les partager à travers toutes les plateformes.

Dans un projet Agile, un des buts est de livrer rapidement de la valeur au client par le biais de courtes itérations. Pour une application mobile, Xamarin Forms facilite cela grâce au fait qu’une grande majorité du code et des interfaces sont développés une seule fois pour toutes les plateformes. Cela aura aussi comme impact de faciliter l’accueil des demandes de changements, car celles-ci n’entraînent pas la réouverture du code à plusieurs endroits.

Prenons l’exemple d’un projet où les sprints sont d’une durée d’une semaine. Du point de vue de l’avancement des fonctionnalités, cela risque de prendre plusieurs semaines pour qu’une fonctionnalité soit complétée sur les multiples plateformes soutenues. Grâce à un code majoritairement partagé, cette mesure devrait se faire sur de plus courts intervalles.

De par son unique langage de programmation (C#), la simplicité que Xamarin Forms apporte à un projet de ce genre, est un élément très important à considérer. Essentiellement, il n’est pas nécessaire de penser et coder en fonction de deux plateformes et deux langages différents.

Tout cela semble très intéressant, mais y aurait-il des raisons pour NE PAS considérer Xamarin Forms ?

Dans le cas où l’expérience visuelle doit être distincte entre les plateformes, ou que beaucoup d’API et d’éléments spécifiques à Android ou iOS sont utilisés, nous n’aurions pas avantage à utiliser Forms. Xamarin.Android et Xamarin.iOS offrent une implémentation complète de leur API respectifs. Il n’y a donc aucune limitation de ce qui est implémenté par Forms et il y a un contrôle total de ce qu’on utilise. Aussi, comme Xamarin Forms est une couche d’abstraction par-dessus ce que Xamarin (Android et iOS) offre, cela ajoute un risque de problème d’implémentation qui forcerait à se rabattre sur une implémentation complète d’une fonctionnalité sur chacune des plateformes.

Il ne faut pas non plus orienter son choix vers Xamarin Forms en pensant que le temps de développement sera automatiquement réduit de moitié. Malgré qu’une partie importante du code est écrite une seule fois, certaines portions devront être écrites différemment pour les plateformes soutenues. Il se peut aussi que le partage de code ne soit pas un élément critique à la réalisation du projet. Par exemple, si l’essentiel du projet est basé sur une expérience visuelle unique à chaque plateforme, il n’y aurait aucun gain, autant pour le client que le développeur, à utiliser Forms. Au contraire, en plus de définir chaque fonctionnalité spécifiquement sur chaque plateforme, il faudrait en plus définir notre propre interface d’abstraction pour la rendre utilisable dans notre projet Forms.

Chaque projet est différent et Xamarin Forms n’est pas la solution à tous les besoins d’applications mobiles. Par contre, dans le but de se concentrer sur une seule technologie et de réduire le temps et les coûts de développement pour au final livrer de la valeur plus rapidement à vos clients, c’est une plateforme plus qu’intéressante pour vous aider à réaliser vos projets.

Billet précédent

Le Bracket Show - Épisode 3

Billet suivant

L’Agiliste et l’amateur de voitures

Bruno Barrette

Bruno a passé près de trois ans en vente au détail à développer ses aptitudes en communication, passant d’un emploi qui devait être temporaire à un poste de gestionnaire, avant de réorienter sa carrière en informatique en 2004. Ayant œuvré longtemps dans le domaine pharmaceutique, il a acquis son expérience sur des bases de rigueur et de souci de la qualité. Sa curiosité l’a amené à toucher à de multiples technologies et domaines connexes au développement, comme la gestion de projets, la validation logicielle et l’implantation de solutions. Bruno est quelqu’un de polyvalent vers qui on peut se tourner, peu importe la nature du projet. Il vise toujours à étendre ses connaissances et à les partager avec ses pairs.

Pas de commentaire

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *