Début novembre, se tenait chez Microsoft à Issy les
Moulineaux une conférence autour de Xamarin… après avoir longtemps hésité sur
la manière dont j’allais tourner cet article sans me faire lapider sur la place
publique car mon sentiment est plus que mitigé ; voici donc mon avis sur ce framework à la
fois « révolutionnaire » et « révoltant ».
L’approche technique
Fidèle utilisateur Microsoft depuis des années, je possède
et je développe des applications pour les plateformes Windows Phone 8.x et
Windows 8…
Les parts de marchés de Windows Phone sont malheureusement
faibles, donc si je veux que mes applications rencontrent un certain succès,
j’ai tout intérêt à viser iOS et Android. Pour cela, je dois me former sur ces
plateformes et redévelopper intégralement chacun de des composants de mes
applications : ce n’est pas très grave sur de petites applications, mais
pour les applications nécessitant plusieurs semaines de développement, c’est
clairement une perte de temps et finalement d’argent.
Heureusement, j’ai aussi un esprit ouvert, ma machine,
personnelle et principale, est un MacBook Pro, et Parallels Desktop me permet de faire
tourner Windows 8.1 et Linux, j’ai donc tous les outils nécessaires pour faire
du développement multiplateforme.
U-NI-FI-CA-TION !!!
Xamarin propose une plateforme de développement unifiée
offrant aux développeurs la possibilité de « porter » leur travail
sur les 3 grandes plateformes mobiles du moment (Android, iOS et Windows Phone
/ Windows 8).
L’offre est plutôt alléchante : imaginez le temps que
vous gagneriez : fini les plannings à rallonges !
Xamarin a réussi le pari d’unifier les développements autour
d’une plateforme et ça tombe bien parce que c’est celle que nous (développeurs
Microsoft) connaissons bien : Microsoft .net, C# et Visual Studio. Le code
est ensuite compilé nativement pour chaque plateforme ce qui garanti un maximum
de performance. Xamarin annonce des performances meilleures que les outils
standard sur Android. Est-ce marketing ou est-ce vrai, je n’ai pas pu le
vérifier, mais si c’est vrai, c’est preuve que ce n’est pas uniquement une
surcouche mais bel et bien une recompilation native.
I have a dream !
Xamarin fait rêver : support de Visual Studio,
déploiement sur les devices de tests, déploiements sur les stores respectifs,
taille illimitée des applications, framework Xamarin.Forms permettant de
développer les UI simplement… ça donne le vertige tellement il y a en a !
Les démos finissent de nous achever : à coup de drag
& drop, de double-clics dans le designer ; on build, on débug, on
déploie… Wow ! Mais pourquoi a-t-il fallu attendre Xamarin pour
cela ?
Les éditeurs ont tellement peur de voir leurs développeurs
partir ailleurs qu’ils les cloisonnent sur leur plateforme. Pourtant,
l’interopérabilité permet a chacun d’eux de profiter la communauté du voisin.
Bref, c’est un long débat et ce n’est pas le sujet de cet article.
Continuons à rêver : Xamarin propose depuis peu de
tester vos applications dans le cloud, ils émulent plus de 1000 mobiles et vous
permettent de détecter très rapidement les problèmes que vous pourriez
rencontrer : résolution, sous version d’un OS, hardware, … c’est
bluffant ! Malheureusement, malgré cette liste démesurée, il manque encore
Windows 8 et Windows Phone 8, espérons qu’ils arriveront rapidement !
L’intervenant nous a assuré qu’ils travaillaient dessus.
Voilà, techniquement rien à dire, ça vend du rêve et
comme dirait un de mes anciens collègue : Ça envoi du poney dans l’espace !
L’approche financière
J’aurais pu arrêter cet article ici… pour vous laissez
rêver… mais par honnêteté, je ne peux m’empêcher d’aborder le sujet qui fâche :
le prix ! oui, on est habitué à payer cher l’innovation, mais il y a
parfois des abus.
Prenons comme exemple le plan « Business », qui
d’après leur boutique serait le plus populaire : il est affiché à 999$ /
an ; au premier abord on se dit cool, le tarif est plutôt raisonnable, à
moi iOS, à moi Android !!!
Que nenni ! c’est 999$ par an et par
plateformes ciblées. Donc en réalité si vous souhaitez développer votre
applications sur iOS et Android, vous devrez vous acquitter à quelques
cents près de 1.800$ / an (oui, dans leur grande bonté, ils vous font une
ristourne de 10%)… et forcément, oubliez la licence globale, multipliez ce coût
par le nombre de développeurs voulus. C’est beau et ça doit rapporter gros !
Imaginez le coup de revient pour une équipe de 10 personnes ?!?
Notons qu’un geste est fait en direction des startups de
moins de 3 ans et des entreprises de moins de 20 employés, pour cela, il faut
contacter le service commercial de Xamarin par mail ou par téléphone.
Il vous faudra donc trouver le juste milieu et ajuster au
mieux vos commandes si vous voulez dégager un peu de bénéfice.
Et Test Cloud ?
Mais ce n’est pas tout ! Xamarin Test Cloud, le très
révolutionnaire outil de test dans le cloud, n’est pas inclus dans l’offre
ci-dessus. Xamarin Test Cloud bénéficie d’une tarification toute spéciale et
comme ce service est nouveau et qu’apparemment il n’existe pas
d’équivalent : il va falloir vendre beaucoup, mais vraiment beaucoup
d’applications pour en amortir son utilisation.
Pour 1000$ par mois, mais payable annuellement (donc 12.000$
/ an) vous pourrez tester 2 applications (oui 2 !) et vous aurez 200
devices / heures… ensuite les prix s’envolent et deviennent carrément gargantuesque :
jusqu’à 144.000$ / an pour 20 applications !!! A ce tarif là, la qualité
du service a intérêt à être plus qu’irréprochable !
La question que je me pose aujourd’hui : quelles
sociétés sont ciblées par Xamarin ? Quels éditeurs sont capable de d’investir
autant d’argent dans ce genre d’outil ?
Bref…
Si je dois monter un pole de développement multi devices,
composé d’une petite dizaine de développeurs, ai-je intérêt à utiliser
Xamarin ? Quel budget est-il raisonnable de consacrer à cet « outillage » ?
Malheureusement, je n’arrive pas à trouver la réponse à ces
questions… peut-être aurez vous plus de chance que moi !
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :