Développement d’application mobile : pensez à Xamarin.Forms !

Il est indispensable aujourd’hui de développer rapidement des applications qui soient compatibles avec la plus grande majorité des périphériques, quelle que soit leur OS. Plusieurs choix s’offrent à nous : développer nativement sur Android, iOS et Windows, ou utiliser une solution cross-plateformes, comme par exemple React Native et Xamarin.

Ces dix dernières années, l’essor de la téléphonie mobile et l’explosion des smartphones ont considérablement changé la donne vis à vis du développement mobile. Il est indispensable aujourd’hui de développer rapidement des applications qui soient compatibles avec la plus grande majorité des périphériques, quelle que soit leur OS. Il faut considérer plusieurs aspects 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, iOS et Windows, ou utiliser une solution cross-plateformes, comme par exemple React Native et Xamarin.  

Les types d'applications mobile

  • Les applications natives

Les applications natives sont des applications mobiles développées spécifiquement pour un système d’exploitation (iOS, Android, etc…). Les avantages sont une meilleure gestion des fonctionnalités avancées du périphérique (caméra, GPS ou accéléromètre) et l’amélioration des performances de l'application. En effet, le développement est directement réalisé dans le langage du téléphone pour une expérience utilisateur optimale. Le principal inconvénient est la portabilité ; l’application devra être redéveloppée sur chaque OS, rallongeant donc le temps de développement.

  • Les applications hybrides

Les applications hybrides représentent le premier pas vers l’universalité. Elles utilisent souvent des langages communs issus du web comme HTML, CSS, JS, etc. Toutefois, on se trouve limités en termes de fonctionnalités sur l’OS.

  • Les applications cross-plateformes

Le troisième type d’application que l’on peut rencontrer sont les applications cross-platform. Dans ce cas, un même code est capable de fonctionner sur la majorité des systèmes d’exploitation connus. Pour cela, l’idée est d’écrire dans un langage unique qui est ensuite compiler dans une forme native à la plateforme cible. L’exemple le plus connu pour ce type d’application est Xamarin.  Les frameworks les plus connus pour ce type d’applications sont React Native ou Xamarin. Ce type d’applications est donc le compromis entre les applications natives et les applications hybrides : le temps de développement est réduit et en même temps, toutes les fonctionnalités peuvent être exploitées.

Présentation de Xamarin.Forms

 

Xamarin est un framework de développement d’application mobile, ayant pour but de rendre possible la création d’applications mobiles Android, iOS et Windows. Et ce en utilisant un seul langage : C#, le langage de programmation phare de Microsoft. Xamarin offre la possibilité d’exploiter à 100% les plateformes mobiles sans devoir apprendre un langage spécifique à chaque OS mobile. Ainsi, en maîtrisant le langage C#, le développeur est capable d’écrire pour iOS, Android ou Windows. Xamarin.Forms est une couche d’abstraction qui permet de développer les interfaces utilisateurs pour les partager à travers toutes les plateformes. Utilisé par un nombre important et grandissant de professionnels, il permet de réaliser des applications web, mobile, desktop et bien d’autres.

  • L’environnement de développement

Pour développer une application cross-plateformes avec Xamarin, on peut utiliser comme environnement Visual Studio. L’éditeur est gratuit et disponible sous Mac et Windows et est complet puisqu’il permet de développer, tester, générer, profiler et faire des interfaces graphiques.

  • Réutilisation du code

Xamarin.Forms facilite la réutilisation du code. En effet, une grande majorité du code et des interfaces sont développés en une seule fois pour toutes les plateformes. Résultat : l’accueil des demandes de changements est facilité car ces demandes n’entraînent pas la réouverture du code à plusieurs endroits.   Malgré tous ces avantages, Xamarin possède quelques points faibles :

  • Il est nécessaire de bien connaître C#. Xamarin étant un framework C#, la non-connaissance de ce langage est rédhibitoire.
  • Forms est une couche d’abstraction par-dessus ce que Xamarin offre, ce qui 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.