Par Cyril Cathala qui est Expert Microsoft et MVP chez SOAT
Très dynamique, le marché du développement multiplateforme et des applications mobiles connaît de nombreuses mutations pour répondre toujours plus rapidement aux attentes des utilisateurs. Dans ce contexte, il nous paraît important de faire un focus particulier sur les apports de la plateforme Xamarin qui est en train de créer une véritable petite révolution sur le marché.
Xamarin, une plateforme de développement multiplateforme permettant de lancer rapidement ses projets mobiles
Concrètement, Xamarin fournit une plateforme complète. Que ce soit pour mutualiser les développements, tester les interfaces graphiques ou diagnostiquer les bugs, Xamarin intègre les outils nécessaires pour mettre en œuvre une démarche qualité. Reste que le développement d’applications avec Xamarin peut prendre deux formes : l’approche traditionnelle et l’approche Xamarin Forms, qu’il faut bien distinguer.
L’approche traditionnelle de Xamarin
Elle permet de développer des applications natives au plus près de chaque plateforme (Android, iOS, Windows et OS X) et dans le langage C#, permettant productivité et partage de code.
Au même titre qu’une application développée avec les outils et langages “natifs”, il est possible d’appeler les fonctions du système, débloquant ainsi toutes les possibilités et communiquer par exemple avec une Apple Watch sur iOS, ou intégrer un widget sur l’écran d’accueil d’Android. L’interface graphique respecte le design et l’expérience utilisateur du système, mais nécessite la réalisation d’écrans spécifiques à chaque OS, pour s’adapter au mieux au design de l’OS.
Bien que les compétences .NET soient réutilisées, il ne faut pas négliger la montée en compétence pour maîtriser les concepts de chaque plateforme, même si de nombreux concepts généraux sont identiques.
Xamarin Forms
Xamarin propose une extension à son approche traditionnelle : un framework qui unifie le développement d’interfaces graphiques. On écrit ainsi le code régissant l’interface une seule fois, à un endroit unique, puis Xamarin Forms procède ensuite à la traduction afin qu’un élément graphique ait l’apparence adéquate sur chaque plateforme (iOS, Android et Windows).
Cette interface peut être écrite dans un format très similaire au XAML, bien connu des développeurs Windows (WPF, Windows Phone, etc.). Ce format apporte un énorme gain de temps en formation et en productivité.
Attention toutefois, l’intérêt de cette approche reste limité à des applications relativement simples ou orientées métier. Si l’application doit avoir une interface complexe, bien différente d’une plateforme à l’autre, ou si elle fait appel à de nombreuses fonctionnalités du système, il vaudra mieux privilégier l’approche traditionnelle.
Les autres composants de Xamarin
L’univers Xamarin est composé d’une multitude de produits contribuant à développer et renforcer une démarche qualité.
Parmi ces dernières, nous pouvons mentionner :
Xamarin Test Cloud permet d’exécuter des tests automatisés des interfaces graphiques sur plus de 1 600 téléphones et tablettes compatibles iOS et Android.
Xamarin Insights permet de récolter des rapports de crash et analyser le parcours utilisateur. Le monitoring se fait via des rapports très détaillés et surtout adaptés au contexte Xamarin.
Xamarin University permet de se former en ligne et d’aborder tous les sujets fondamentaux autour de la mobilité. C’est également un moyen de valider ses connaissances au travers d’une certification.
Anticiper l’avenir
La plateforme Xamarin ne se contente pas de fournir des outils pour construire des applications mobiles, mais permet également d’adresser les “wearables” dont notamment Android Wear et Apple Watch.
Xamarin a su se projeter dans l’avenir, détecter les opportunités et investir sur un périmètre bien plus large que celui de la mobilité. On pense bien évidemment à celui des objets connectés, domaine dans lequel tous les grands acteurs investissent et sortent des OS adaptés.
Une solution pour tout ?
Xamarin peut-il répondre à toutes les attentes ? La solution idéale n’est malheureusement pas de ce monde et il est uniquement question de compromis.
Bien sûr, des solutions pour applications hybrides web telles que PhoneGap ou ionic existent, mais supposent des compromis en termes d’expérience utilisateur et surtout de performance. Cette approche est intéressante dans plusieurs cas : design strictement identique pour chaque OS, fonctionnalités limitées, peu d’exigences en termes de performance.
Tenter de mimer un design ou une expérience native en web peut être dangereux et souvent source de frustration, tant pour le développeur que pour l’utilisateur. Il est donc important de bien jauger les différentes approches possibles.
Pour des applications de qualité sans compromis, Xamarin s’avère l’une des solutions les plus adaptées. Performance, fonctionnalités, expérience native, outillage, tout est là.
Pour des applications orientées business ou à l’interface peu complexe, Xamarin Forms est une option favorable, dans la mesure où l’on peut atteindre jusqu’à 100% de partage de code sur toutes les plateformes.
En environnement Microsoft, Xamarin gagne énormément en intérêt puisqu’il devient alors possible de partager du code entre un projet ASP.NET MVC, une couche métier, ou une application WPF / Windows Universal App. En outre, Xamarin ne se limite pas au mobile et permet le développement d’applications bureau sur Mac OS X.
Conclusion
Xamarin répond à des enjeux sur le long terme. Plutôt que d’avoir recours à une équipe mixte, la solution unifie les compétences, permet le partage de code et simplifie les phases de maintenance, tout en bénéficiant des avantages d’une approche native.
Xamarin devrait donc connaître un avenir radieux, notamment grâce à ses partenariats forts (Microsoft, SAP, IBM, etc.) et ses investissements dans les chaînons indispensables au bon développement d’applications.