Nous sommes plus qu’à quelques jours de la Build de Microsoft. Un évènement que je vais avoir le plaisir de vivre de l’intérieur, en direct de Seattle. La Build, c’est l’évènement annuel organisé par Microsoft pour les développeurs. L’édition 2017 abordera les sujets suivants :

  • Mixed-reality experiences
  • Cutting edge, intelligent cloud apps
  • Simplified end-to-end dev ops experiences
  • Mobile experiences for nearly any device
  • Apps that make your customers more productive
  • AI-powered apps we have yet to imagine

Je vais me pencher sur le sujet qui présente le plus d’intérêt à mes yeux : l’expérience mobile pour pratiquement tous les appareils. Je développe des applications mobiles depuis quelques années et je suis particulièrement attaché à la plateforme Windows Phone. En bon fan qui se respecte, je me pose tout un tas de questions autour de l’avenir de cette plateforme, d’autant que les choix que Microsoft entreprend ont un impact direct sur mon métier de développeur. La Build représente l’évènement idéal pour présenter la roadmap et annoncer les nouveautés. C’est donc plein d’espoir que je me prépare à suivre ce marathon de 3 jours.

L’espoir que j’évoque se fonde sur 3 piliers que j’aimerais voir se réaliser et qui doivent être annoncés à la Build 2017 :

Surface Phone

La Build me tient particulièrement à cœur, cette année plus que jamais. Ce vif intérêt est alimenté depuis quelques mois par l’absence de communication de la part de Microsoft sur l’avenir du Windows Phone. Je dois bien être le seul à encore croire qu’un avenir existe. Et j’y croirais tant qu’aucune communication officielle n’aura pointé le bout de son nez. En effet, cela fait quelques mois que Microsoft semble laisser à l’abandon la plateforme mobile. Aucune communication sur les perspectives à court ou long terme. La seule zone claire dans ce néant, c’est les mises à jour régulières sur Windows 10 Mobile. Et encore, il semblerait que les prochaines versions ne soient pas supportées par tous les téléphones.

La conséquence directe de cette absence de communication, ce sont les rumeurs, qui vont bon train depuis des mois. Elles annoncent un nouveau device Microsoft, le fameux Surface Phone. Oui, cela fait quelques mois qu’on en parle mais les choses semblent se préciser. Ce téléphone “ultime” serait capable d’exécuter des applications x86 sur processeurs ARM, il serait pliable et remplacerait ainsi les pc portables.

Vous imaginez ? Un téléphone qui remplacerait votre pc portable. La continuité logique de “Continuum”. J’arrive au bureau, mon téléphone détecte mon dock et s’affiche sur mon écran. Je suis prêt à travailler. De toute façon, nous y viendrons ! Je pense que dans quelques années les pc portables auront disparu au profit des “docks” pour téléphone. Pour cela, il faut des téléphones innovants et très performants. Pour résumer, je reste persuadé que si Microsoft avait voulu tuer sa branche mobile, ça aurait été annoncé. Le fait qu’ils restent muets cache quelque chose. Et le moins qu’on puisse dire, c’est qu’ils savent garder des secrets ! Pour preuve, le Surface Studio, un écran tactile de 28 pouces. Personne ne s’y attendait. Ou encore le Surface Book qui se révèle être une tablette tactile. Alors oui, j’ai envie d’y croire. Et si Microsoft doit annoncer un nouveau device, la Build est l’endroit idéal. Croisons les doigts !

Continuum

Je l’évoquais à l’instant, Continuum représente la transition entre le mobile et le PC. Cette technologie permet d’utiliser un Windows 10 Mobile en mode Windows 10 Desktop. A terme, il permettra au mobile de remplacer le PC. C’est la trajectoire qu’emprunte Microsoft en proposant Continuum. Et cela fait encore plus sens avec le support des applications x86 que proposerait le Surface Phone. Pour rappel, Continuum est déjà disponible sur Windows 10 Mobile, mais ce mode est encore assez limité puisqu’il ne permet d’exécuter que des applications ARM. On ne peut donc pas faire tourner Visual Studio, ou Photoshop sur Continuum. J’espère donc que Continuum aura sa place à la Build et que la technologie aura suffisamment évolué et pris en maturité pour proposer une expérience aussi complète qu’un ordinateur portable.

Convergence Xamarin & UWP

Un Surface Phone oui, mais il faut à tout prix séduire les développeurs ! Ce sont les développeurs qui contribuent à l’enrichissement de la plateforme. On l’a bien vu avec Windows Phone. Le problème majeur qu’a rencontré Microsoft a été le manque d’applications sur son store. Pour le coup, ce ne sont pas les développeurs qui ont manqué, mais à sa sortie, Window Phone avait déjà 2 ans de retard par rapport à iOS et Android. Aujourd’hui, c’est un peu différent. La plateforme ayant été désertée de toute part, les développeurs se sont tournés progressivement vers iOS et Android. C’est mon cas. Je n’ai pas choisi de me tourner vers ces plateformes concurrentes. C’est le marché qui m’y a obligé. (Je précise que je n’ai pas pour autant abandonné la plateforme Windows Phone ! D’ailleurs, j’en profite pour saluer Dona Sarkar…) Je travaille donc depuis plus d’1 an sur le développement d’applications Xamarin à destination d’iOS et Android. Les clients ne s’intéressent plus à Windows Phone. Ils observent le marché. Et la réalité du marché, c’est que Windows Phone est mort.

Quel dommage ! Je vais faire une petite parenthèse et apporter un avis très tranché et très personnel: le développement d’une application Windows Phone est 3 fois plus simple, 3 fois plus agréable et 3 fois plus rapide à développer qu’une application Xamarin iOS/Android.Je n’ai jamais ressenti autant de frustration qu’en écrivant des écrans en Xamarin Forms ou qu’en manipulant des fichiers Android axml. La frustration de ne pas obtenir un rendu précis et rapide tel qu’il aurait été en UWP.

Les principales raisons à cela: .NET Core & XAML

Le XAML, c’est le langage utilisé pour créer l’interface graphique des applications WPF, Silverlight, WinRT, UWP. Ces applications sont exécutables sur plateformes Windows. La spécificité de UWP, c’est la capacité à exécuter une même application ainsi bien sur PC que sur Mobile, tablette, Raspberry Pi, Hololens et Xbox. Tous partagent le même noyau Windows 10.

Si j’aborde ce sujet, ce n’est pas par hasard. Je pense que le XAML du framework .NET Core doit profiter à la technologie Xamarin Forms, encore trop jeune et trop contraignante.

La force du Xamarin Forms réside dans la mutualisation des plateformes iOS et Android. En effet, le Forms permet d’écrire une seule interface graphique qui sera la même pour Windows, iOS et Android. En revanche, cela implique des contraintes fortes: impossibilité de réaliser certains types de contrôles (obligation d’écriture spécifique par plateforme pour personnaliser ses contrôles) et performance médiocre.

L’un des points-clés, selon moi, qui permettrait de séduire les entreprises et les développeurs réside dans la faculté à unifier UWP et Xamarin.Forms. Plus précisément, à unifier les frameworks .NET Core et Xamarin. Cela permettrait d’exploiter la puissance et la richesse du XAML .NET Core pour écrire des applications iOS, Android et Windows.

Hypothèse .NET Cross

 

Hypothèse Xamarin Core

Une telle unification a déjà été réalisée avec le framework ASP.NET Core qui unifie en partie .NET Core et .NET 4.6:

Pour résumer, il existe une proximité forte entre Xamarin Forms et l’UWP. Si Microsoft venait à fusionner en partie ces frameworks, on bénéficierait de la puissance du XAML .NET Core pour écrire nos interfaces graphiques iOS, Android et Windows. Le développement cross-plateforme prendrait tout son sens. Il serait moins coûteux et plus maintenable. L’impact serait immédiat:

  • De nombreux développeurs iOS et Android se tourneraient vers le XAML de Microsoft, séduits par le nombre de plateformes ciblées
  • En plus d’iOS et Android, les clients opteraient pour le développement sur Windows.
  • Le store Microsoft s’enrichirait des applications officielles qui lui manquent aujourd’hui.

Conclusion

Pour conclure, la question qui se pose n’est pas tant de savoir si Windows Phone est mort, mais plutôt comment Microsoft va s’y prendre pour réinvestir le marché du mobile. Quelles transitions va t-il opérer ? Sortir un nouveau téléphone ne suffira pas, il faut innover, avec des appareils qui viennent bousculer le marché. Faire quelque chose d’unique. Le couple Surface Phone, Continuum et Xamarin Core me semblent incontournables. Il révolutionnerait le marché du mobile.

Une remarque pour finir: les sujets que j’ai abordés se basent sur des réflexions et des convictions personnelles. C’est la trajectoire que j’aimerais que Microsoft emprunte et c’est d’ailleurs la seule solution que je vois aujourd’hui que la branche mobile revienne sur le devant de la scène. Elle me semble cohérente et réaliste.

J’espère avoir des réponses lors de la Build. Il est temps de lever le voile. Le mutisme qui pèse depuis 2 ans sur le mobile a assez duré. Cache-t-il une révolution technologique ?

Rendez-vous le 10 Mai 2017 !