Retours sur le Xamarin Partner Summit 2017 !

Le lundi 23 janvier 2017 a eu lieu la conférence annuelle pour les partenaires Xamarin, le Xamarin Partner Summit. Si l’année précédente l’évènement se passait à Paris, cette année c’est sur les terres de la reine, et plus précisément à Londres, qu’une fine équipe de 4 Cellenzans s’est rendue. C’est sous la forme d’un après-midi de networking et de conférences, divisées entre un track Business et un track technique que s’est déroulé cet événement.
La keynote d’ouverture, présentée par Greg Urquhart, est l’occasion de faire le point sur l’adoption de Xamarin dans le monde, avec des chiffres qui ne cessent de grimper notamment vis-à-vis des applications développées par les partenaires. Ces derniers sont bien évidemment au cœur de cette présentation, car ils s’investissent pleinement sur le sujet et participent au succès de Xamarin. Greg Urquhart revient ensuite sur le rachat de Xamarin par Microsoft il y a de cela bientôt 1 an, qui adhère avec la stratégie mise en place par Satya Nadella : Cloud first, Mobile first.
La suite de la keynote explique à quel point le domaine du mobile ne cesse d’évoluer et prouve que c’est un sujet sur lequel les partenaires ont raison de parier. En effet, en 2016 un cap a été passé pour les applications mobiles puisque leur utilisation représente maintenant 60% du temps passé en ligne aux Etats-Unis.
Ce virage technologique implique aujourd’hui que la quasi-totalité des entreprises sont des entreprises logicielles, comme c’est le cas pour Uber ou Netflix. L’autre conséquence de cette dynamique est l’arrivée d’un nouveau mode de pensée : l’application mobile devient un composant central au sein de stratégies s’axant de plus en plus vers digital.
Ce qui est sous-entendu derrière ce slide, est le besoin indéniable d’intégrer le processus de développement dans un cycle DevOps, de tirer profit des outils fournis par le cloud et aussi de l’intelligence artificielle.
C’est d’ailleurs au travers d’un graphique représentant les technologies utilisées entre 2012 et aujourd’hui, que Erik Polzin, directeur des ventes auprès des partenaires chez Xamarin, nous prouve que l’année 2017 tournera autour de l’intelligence artificielle. Le domaine est vaste et regroupe les bots, l’utilisation des cognitives services, ou encore du machine learning. Tout ceci est étroitement lié au cloud qui reste, avec le mobile, le grand axe stratégique de Microsoft.
La suite de la présentation montre l’exemple d’évolution de l’application mobile Delta entre sa première version, plutôt basique, à sa dernière version qui tire parti du cloud, stratégie récompensée par les notes excellentes des utilisateurs. Cette illustration vise à pousser les développeurs ainsi que les partenaires à marier cloud et mobile pour plus de qualité et de satisfaction utilisateur.
Quelques mots sur la session technique
Dès le début de cette session destinée aux développeurs Xamarin confirmés, le mot d’ordre est donné : le but est de fournir plus de valeur à notre projet mobile, et cela passe par écrire un code de meilleure qualité, et modulaire.
Le choix de Xamarin Forms
S’il n’est pas question ce jour-là de présenter Xamarin Forms, il est en revanche question du choix de cette solution. En effet, en début d’un projet Xamarin, l’interrogation entre les solutions Xamarin natif et Xamarin Forms revient souvent.
Se tourner vers Xamarin Forms est souvent tentant grâce au pourcentage de code partagé, naturellement plus important avec l’approche Forms que native. Mais il faut savoir prendre en compte dès le départ le design et l’UX souhaités, qui peuvent faire baisser ce pourcentage de code si la réflexion est faite durant les développements. L’idée principale est que le design prend souvent une proportion plus importante qu’on ne l’a estimée au début d’un projet.
Ce qu’il faut également prendre en considération est que si l’on choisit la solution de Xamarin Forms, il faut s’y tenir tout le long du projet. Cela commence par l’architecture du code qui doit être adaptée pour Xamarin Forms, mais aussi par les choix techniques et le design. Si on ne respecte pas l’ensemble de l’approche Xamarin Forms correctement, les avantages du partage de code très fort et de la maintenabilité peuvent très vite finir aux oubliettes.
Cependant, pour faciliter la vie des développeurs et tirer meilleur parti de la solution Forms, plusieurs nouveautés ont été introduites : ce sont les thèmes, les contrôles natifs intégrables dans un projet Forms, le Previewer pour les interfaces graphiques, ainsi que la gestion du deep linking.
Les solutions pour partager du code
Les deux approches Xamarin Forms et Xamarin natif se veulent intéressantes en termes de partage de code. On trouve toujours dans les slides de présentation et souvent, au quotidien, même nous, les développeurs, avons tendance à voir les choses sous cet angle. Cette session nous a rappelé qu’il fallait au contraire ne pas parler en pourcentages.
L’aspect crucial qui dépend directement du bon partage de code, est la maintenabilité du code.
Aujourd’hui, les deux principales solutions qui existent pour le partage de code sont l’utilisation de Portable Class Libraries (PCL) et les Shared Project. La solution .NET Standard n’a pas été abordée car jugée trop jeune et difficile à mettre en place dans l’écosystème Xamarin pour le moment.
Il existe d’autres moyens de modulariser afin d’améliorer sa maintenabilité :
- La façon de nommer les éléments du code est importante. Si cela peut paraître évident, il est néanmoins bon de le rappeler, et surtout de choisir en début de projet une politique de nommage que chaque développeur suivra scrupuleusement.
- Toujours concernant le nommage, il peut être utile de se baser sur les noms d’APIs existantes, afin que celui-ci soit plus évident par la suite. Par exemple une action sur le click d’un bouton semblera évidente à un développeur iOS si elle est nommée de cette façon “MyBouttonTouchUpInside”, car le suffixe “TouchUpInside” est très fréquent sur un projet iOS.
- Enfin, il faut veiller à ne pas réinventer la roue. Xamarin étant aujourd’hui une technologie stable et pérenne, il y a de grandes chances que plusieurs projets aient sans doute déjà fait face à la plupart des problèmes que nous rencontrons lors des développements. Il existe pour cela une page regroupant des composants Xamarin (plus ou moins maintenus), à cette adresse : https://github.com/xamarin/XamarinComponents
Et la distribution dans tout ça ?
La troisième partie de cette session aborde la distribution du code partagé et réutilisable telles que l’utilisation du GPS, afin de nous éviter de réinventer la roue.
La technique la plus employée reste celle du copier/coller depuis internet (GitHub, StackOverflow et autres…) afin de pouvoir le customiser et/ou le déboguer.
Il est également possible de référencer le repository Git d’un autre module. Cette solution s’avérant plus pratique que la solution du copier/coller et permettant également de le déboguer.
Nous pouvons également, dans certaines organisations, utiliser des repository NuGet interne afin que tous les projets d’une même entreprise puissent utiliser ces briques logicielles.
Quelques autres sujets abordés
Lors de cette session technique, où plusieurs MVP Xamarin étaient présents, le speaker a souhaité entendre les retours et points de vue des participants sur différents points. La parole revient donc aux développeurs, et le premier débat est lancé sur la gestion de la mémoire. Ce thème est fréquemment abordé notamment sur Android car les erreurs peuvent rapidement s’accumuler (que ce soit avec Xamarin ou en Android natif) et conduire à une mauvaise expérience utilisateur.
Le speaker a également demandé le nombre de personnes dans la salle qui lors du début d’un projet partaient sur un projet Xamarin Forms. Nous avons ainsi pu noter la différence de choix entre les développeurs dont une petite moitié part sur Xamarin Forms et le reste, dont font partie les Xamarin MVPs présents dans la salle, qui choisissent l’approche native.
A contrario, à la question “combien de personnes utilisent XCode Interface Builder et les Storyboard pour créer des interfaces Xamarin iOS ?”, peu de mains se sont levées, la plupart des gens présents répondant qu’ils préféraient le code-behind.
Un dernier débat a été lancé sur l’utilisation de certains framework MVVM dont MVVMCross. Nous avons pu constater un vrai schisme dans la salle sur ce sujet entre les fervents défenseur de l’utilisation poussée de tels frameworks pour le binding et les partisants d’un développement plus proche du fonctionnement natif. (* Vive le natif *)
Le mot de la fin
Cette expérience du Xamarin Partner Summit a été très enrichissante, notamment grâce à la partie networking où nous avons pu discuter directement avec des développeurs des équipes Xamarin, et récolter les avis de nos pairs.
Nous sommes confiants que cette année 2017 sera un cru exceptionnel en opportunités pour le développement mobile et le cloud et nous espérons que Cellenza sera votre partenaire privilégié !