Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

MonoDroid : et si la double connaissance Android / WinRT était la clé du succès ?

[new:31/08/2012]MonoDroid est cette version spéciale de Mono conçue par Xamarin pour produire des logiciels natifs Android. La version “pro” ne coute que 399$ et s’installe en un clic (la démo est gratuite). WinRT c’est la nouvelle plateforme de Windows 8 pour les applications Metro Style. Quel rapport entre ces deux orientations totalement différentes de prime abord ?

MonoDroid c’est Mono et Mono c’est C# / .NET

MonoDroid est une solution spéciale bâtie sur Mono, la version Open Source de .NET. Spécialisée pour Android cette version de Mono est un produit commercial, frère jumeau de MonoTouch, la même chose mais pour le système iOS d’Apple.

MonoDroid s’installe en clic, et simplifie le setup des différents SDK Android. C’est vraiment très bien fait et en quelques minutes on dispose d’un environnement de développement complet près à l’utilisation avec les émulateurs Android (vous pouvez tester vous-mêmes la version de démo pour Android ou iOS).

MonoDevelop ou VS ?

 

L’ensemble est fourni avec MonoDevelop, la “copie” Mono de Visual Studio, mais MonoDroid s’installe en même temps dans VS 2010 ce qui laisse à chacun le choix de son environnement. A noter tout de même qu’on ne dispose pas sous VS du concepteur visuel que propose MonoDevelop. D’ailleurs certains fichiers de MonoDroid peuvent être manipulés aussi via Eclipse, l’environnement “naturel” pour Android.

Le plus intéressant c’est bien entendu de disposer d’un environnement complet comme MonoDevelop avec le designer Visuel, on ne cherche pas comme sous Eclipse les entrées de menu ou les raccourcis, c’est quasiment VS.

Mieux, tout cela étant du Mono au départ, donc portable, vous pouvez choisir une version Apple si vous développez sur un Mac ! Cela peut intéresser des infographistes disposant d’un Mac mais ayant acquis des compétences de développement C# avec Silverlight ou WPF par exemple.

Emulateur Froyo lancé depuis MonoDevelop

La portabilité des applications WinRT / Android

Personnellement ce que je vise et ce que je conseille à mes clients c’est la double compétence Windows 8 / Android.

Exactement comme en 2008 je disais dans une interview que “les Delphistes seront les cobolistes des années 2010” et que je préconisais à tous les développeurs Delphi d’avoir la double compétence C#. Les années qui suivirent me donnèrent raison...

Windows 8 et WinRT j’en ai beaucoup parlé et je vais encore en parler car je suis convaincu techniquement par les solutions que Microsoft propose. Je reste certes critique par rapport à certains choix, mais être critique est le tout d’un expert indépendant. Je ne suis pas un VRP Microsoft et je peux, et même je me dois d’honorer mon statut de MVP par mon indépendance intellectuelle. Et je crois en la solution Windows 8 notamment par la cohérence qu’elle propose des Smartphones aux PC en passant par les tablettes.

Toutefois c’est là qu’intervient l’indépendance d’esprit : je regarde aussi ce qui se passe autour de moi et je note la suprématie de plus en plus nette d’Android (60% de part de marché en France sur les Smartphones).

Pourquoi pas Apple ?

Apple ? je n’ai jamais aimé leur façon de traiter les clients, et ça ne date pas d’hier mais de l’Apple IIC que j’avais acheté à sa sortie (cherchez sur Google, il y a des chances que certains lecteurs n’étaient pas encore nés à cette époque...) et d’un G3 dont j’ai hérité et que j’ai réussi à refourguer après avoir constaté que les problèmes chez Apple étaient les mêmes 20 ans après.

L’IPhone ? Un succès incontestable, mais “friable” comme un gâteau trop sec. Désormais Android a aussi ses stars comme Samsung. Et des volumes de vente qui grignotent de jour en jour la suprématie d’Apple, ce qui est déjà consommé sur le marché français.

L’IPad ? Un autre succès incontestable mais tout aussi “soluble” qui est en train de se dissoudre dans l’acide puissant de la concurrence et du manque d’innovation désormais d’Apple. On ne refait pas tous les jours le coup de l’IPhone et de l’IPad, surtout quand celui qui est en l’instigateur est mort... Et Apple n’a jamais su apporter de réponses séduisantes en entreprise. Mon métier est de conseiller les entreprises, pas les mamies du Cantal aussi sympathiques soient-elles... Je ne conseillerais jamais à une entreprise de faire du BYOD surtout avec de l’Apple. C’est une hérésie, une économie de bouts de chandelle qui finit par couter une fortune (en équipes techniques formées).

Alors bien sûr, Apple existe, l’Apple mania aussi, l’Apple Store qui fait briller les yeux comme ceux d’Oncle Picsou avec les dollars qui défilent, tout cela est vrai.

Pour tous ceux qui considèrent, à tort ou à raison, qu’Apple est incontournable, il suffit dans ce billet de remplacer “MonoDroid” par “MonoTouch” puisque Xamarin propose les deux produits.

Chacun fera en fonction de ses besoins et de ses préférences, je ne juge pas.

Mais en ce qui me concerne, Apple c’est no way.

L’intérêt d’un code C# et d’une plateforme .NET

Le grand intérêt de MonoDroid (et MonoTouch aussi) c’est de proposer à la fois un environnement de développement qui ne dépayse pas, donc pas de perte de temps, et, à la fois, un langage qu’on sait manipuler et une plateforme qu’on maitrise.

Pouvoir développer pour Android en réutilisant du code qui sert aussi à une application Tablette (ou phone ou PC) sous Windows 8 ou WPF est un sacré avantage !

Un cœur pour deux

Pouvoir développer le cœur d’une application en C# et réutiliser ce cœur pour une version WinRT, voire Silverlight et WPF, et pour une version Android est à mes yeux essentiels.

Android, grâce à la gratuité de l’OS, grâce au large choix des machines dans toutes les gammes de prix, grâce aussi, il faut l’avouer, à son succès technique (ça marche très bien) et commercial, mais aussi par la puissance de Google, est aujourd’hui une variable du marché qui ne peut plus être ignorée. Un développeur, un éditeur de logiciel, un DSI, ne peuvent plus négliger l’importance de cette plateforme et surtout la place qu’elle détient sur le marché. Surtout en France où 60% des Smartphones sont déjà sous Android.

Se pose alors le problème de savoir comment centraliser le code, comment le pérenniser.

Choisir WinRT en entreprise est un choix d’avenir et de cohérence. Les mêmes équipes, la même plateforme, la même formation pour attaquer tous les terminaux du plus petit au PC, c’est le choix de l’intelligence.

Sans ignorer Android...

Et c’est là que MonoDroid permet le tour de force irréalisable autrement : pouvoir réutiliser le même code métier sous WinRT, WPF, Silverlight et Android.

(Comme expliqué plus haut on peut ajouter iOS à la liste avec MonoTouch).

Conclusion

A la différence de mon appel de 2008 qui sous-tendait une migration définitive de Delphi vers C#, ici je parle vraiment de double compétence Android / Windows 8 dans la durée.

Les deux marchés vont se côtoyer, parfois se croiser et entrer en concurrence, mais en réalité pour l’essentiel il s’agira de deux approches différentes. Windows pour l’entreprise, avec de la tablette et du Smartphone WinRT, mais aussi du BYOD avec du matériel Android.

Plus loin il va y avoir le besoin pour toute entreprise, même un site Web, même un vendeur de savons parfumés, et a fortiori un éditeur de logiciels d’assurer sa présence sous la forme d’applications natives vendeuses et efficaces. A la fois sous WinRT et sous Android (voire iOS pour certains marchés où cela est incontournable : musique assistée par ordinateur, graphismes...).

Je pense ainsi qu’il est essentiel pour tout développeur, tout éditeur, toute entreprise en générale, de cultiver la double culture WinRT et Android. Mais pas à n’importe quel prix. Pas en multipliant les équipes et les formations. Pas en utilisant des compétences rares donc chères. Non. Tout cela peut être fait en pérennisant les compétences C# et .NET des équipes en place.

Ce tour de magie est une réalité technique, MonoDroid (et MonoTouch) le permet aujourd’hui. Le fait que Xamarin a réussi à lever 12 millions de dollars dernièrement est un bon gage d’assurance pour le futur. Le fait que tout cela repose sur le SDK Google original est essentiel. Le fait que l’environnement de développement MonoDevelop soit du Mono, portable et Open Source est aussi une sécurité non négligeable.

La seule barrière qui restait n’existe plus, celle du tooling et des langages.

Aujourd’hui, développez pour les marchés du présent et du futur en investissant dans WinRT et Android. Mais ne restez pas scotché à une seule compétence, cela serait une erreur.

Je vais donc parler dans le futur autant de développement WinRT que de développement C# et .NET sous Android.

Bon développement multi-plateforme en C# ...

... Et Stay Tuned !

blog comments powered by Disqus