Il était une fois Xamarin et Microsoft…

« Nous aimons C# et nous voulons que chaque développeur soit en mesure de tirer parti de la puissance du Framework.Net dans toutes les applications et sur tous les appareils« . Nath Friedman – 18 mars 2016

Ainsi débute cette belle histoire du rachat de Xamarin par Microsoft. Vous allez me dire que tous les contes populaires commencent par « Il était une fois… » mais cette histoire est tout sauf un conte de fées. Où quand le rêve devient (enfin..) réalité…

Mais revenons rapidement sur le début d’année 2016 :

  • Février 2016 : Microsoft annonce le rachat de la société Xamarin. Le monde informatique n’a pas été étonné par cette nouvelle car elle était dans les bacs depuis très longtemps.
  • Avril 2016 : Nous sommes le 1er avril à San Francisco quand Microsoft annonce la gratuité des outils Xamarin. Poisson d’avril ? Et bien non, la prochaine mise à jour de Visual Studio intégrera la dernière mouture de Xamarin, que vous soyez en édition « Professional », « Enterprise » ou « Community ». Fini les licences payantes pour Xamarin Ios, Xamarin Android et Xamarin Studio Mac !

Fini aussi la frustration et les limitations pour les développeurs ayant voulu essayer le produit. En effet, la version « Trial » proposait 30 jours de tests et une énorme limitation concernant la taille du package (ou le poids du code utilisateur). Rajoutez à cela :

  • une certaine infrastructure pour tester une application sur les plateformes Android et iOS,
  • un temps conséquent pour ce faire une idée des possibilités de l’outil,
  • de nouveaux concepts à appréhender surtout quand l’utilisateur n’a aucune connaissance de l’univers Android et iOS…

Tout cela pour dire qu’il n’était pas évident de se faire une idée sur la solution « Cross-Platform » sans débourser un centime ! Mais ça c’était avant. Microsoft a donc fait beaucoup d’heureux en ce 1er Avril 2016 lors de la BUILD2016  en annonçant cette importante nouvelle mais aussi en présentant les nouveautés ci-dessous.

Xamarin Insights et HockeyApp : la fusion

Petit rappel sur ces deux produits. Xamarin Insights et HockeyApp permettent de collecter et d’analyser les erreurs d’une application avant ou pendant sa mise en production. Ils offrent un large éventail d’outils et s’intègrent assez rapidement dans le projet (sous forme de package NuGet) :

Xamarin insight

Ce rapprochement tout récent ne permet pas encore aujourd’hui de savoir si les utilisateurs de Xamarin Insights vont devoir reprendre toute leur intégration pour HockeyApp. Xamarin annonce une transition en douceur et un suivi de celle-ci, mais l’on peut déjà constater sur la toile certaines interrogations de la part de pas mal d’utilisateurs. Les deux sociétés sont conscientes du travail que cela va engendrer et rassurent leurs utilisateurs quant à la prise en charge et l’accompagnement lors de cette transition.

Xamarin Test Cloud : l’outil de tests unitaires

Xamarin Test Cloud est un Framework permettant de tester son application à travers plus de 2000 périphériques. Le développement « Cross-Platform » mobile est assez complexe à tester. En effet, chaque plateforme (tablette, phablette, portable, pc, téléphone, …) à ses propres spécificités matérielles auquel il faut rajouter des différences importantes de système d’exploitation ainsi que des différences de versions de système d’exploitation.

xamarin test cloud

En gros, vous mélangez tout cela et vous obtenez un coût extrêmement important pour permettre de tester les applications sur un panel de périphériques assez représentatifs pour valider la mise en production de celles-ci. Heureusement, Xamarin Test Cloud va vous permettre d’automatiser des tests UI (interface utilisateur) à travers deux types de Framework :

  • UITest: basé sur la librairie de tests NUnit, permet d’écrire ses tests en C#,
  • Calabash: basé sur le développement piloté par les tests, permet d’écrire ses tests en Ruby avec Cucumber.

Ainsi, Xamarin frappe fort en proposant un véritable outil de tests pour les développeurs (automatisations, enregistrements, traçabilités, …) mais aussi des tableaux d’analyses et de suivis pour les responsables de projets (rapports, performances, …).

xamarin serveur de tests

Xamarin Test Cloud ne s’arrête pas là. Il permet aux développeurs d’effectuer ses tests manuellement ou de faire de l’intégration continue. Dans ce cas, à chaque compilation, une version de l’application est envoyée vers Xamarin Test Cloud et le système se charge d’effectuer les tests et de diffuser les résultats :

Xamarin systeme test cloud

Xamarin Forms 2.2 : les contrôles utilisateurs

Mais la nouveauté la plus importante concerne les Forms. Ce sont ces contrôles qui permettent de définir l’interface utilisateur via XAML et C# (amis du WPF/Silverlight et des Winforms, bienvenue…). Xamarin se charge de changer tout cela en contrôles natifs lors de la compilation et suivant les plateformes cibles.

La nouvelle version Xamarin Forms 2.0 annonce des performances encore plus rapides, toujours plus de contrôles et de fiabilité et toujours plus d’interactions utilisateur « gestuel » (par exemple, les adeptes d’Android connaissent bien le « tirer vers le bas » pour rafraîchir certaines applications).

La dernière version de Xamarin Forms s’enrichit de nouveautés :

  • ControlTemplate s’enrichit de nouveaux types de conteneurs permettant maintenant l’application de style exactement comme un contrôle visuel standard Xaml. De plus, il embarque le « TemplateBindings» : un binding classique dont la liaison est faite directement sur le contrôle parent,
  • DataTemplateSelector qui permet de pouvoir appliquer des styles conditionnels, c’est-à-dire la possibilité d’obtenir des rendus graphiques différents suivant des états distincts : par exemple un bouton qui s’afficherait d’une certaine forme et d’une certaine couleur suivant les valeurs d’une zone de texte,
  • Effects permet de personnaliser graphiquement les contrôles natifs suivant les plateformes,
  • CarrouselView est le nouveau contrôle qui remplace CarrouselPage : il embarque surtout la virtualisation et de nombreuses nouveautés concernant les rendus et la personnalisation visuelle,
  • Le support des UWP (Universal Windows Plateform) application,

Xamarin démontre ainsi sa volonté de vouloir partager ses interfaces utilisateurs pour toutes les plateformes. On est certes encore loin de pouvoir se passer de code natif (surtout pour des interfaces de type jeu ou des contrôles très personnalisés) mais la société ne cesse de rajouter toujours plus de composants supportés par tous les appareils.

Mais aussi…

Xamarin Mac Agent : Le nouveau Mac Agent (la passerelle entre Visual Studio et le Mac permettant le rendu graphique et la compilation pour iOS) devient beaucoup plus rapide et se dote de nouveaux outils.

Xamarin 4.1 : la release 4.1 est déjà dans les tuyaux et disponible ici. Elle intègrera :

  • un éditeur d’Assets (gestionnaire de ressources),
  • un nouveau template projet pour la gestion du périphérique tvOS incluant des nouveaux contrôles, un simulateur pour exécuter et tester l’application, un designer sous Visual Studio, …
  • un éditeur pour les interfaces graphiques Android (.xaml) comprenant l’IntelliSense, la coloration et tous les avantages que propose Visual Studio (indentation, sélection verticale, rechercher/remplacer, …)

xamarin 4.1

  • et plus encore…

Conclusion

Les prochains mois vont certainement apporter plus de clarté et de lisibilité sur la politique qui sera adoptée par Microsoft concernant sa solution « Cross-Platform ». A l’heure où celui-ci accentue ses efforts sur sa nouvelle plateforme Windows 10, pourquoi ne pas commencer à rêver de véritables applications universelles qui cibleraient iOS, Android et Windows, le tout réuni dans un seul environnement de développement : Visual Studio 2016… (l’IDE de Microsoft qui devrait être dévoilé très prochainement).

Ainsi se termine cette belle histoire. Mais je préfère la clôturer comme je l’ai commencé : « … et ils vécurent heureux et eurent beaucoup d’enfants. The end… ».

Source image : Blog Xamarin

 

0 commentaires

votre commentaire

Se joindre à la discussion ?
Vous êtes libre de contribuer !

Laisser un commentaire

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

Inscription newsletter

Ne manquez plus nos derniers articles !