jeudi 17 novembre 2011

Android ? iPhone ? Windows Phone ? Quelle plateforme pour mon application ?


Jusqu'à l'arrivée massive des smartphones, le développement d'applications était devenu assez simple. Pour l'entreprise, deux possibilités s'imposaient d'elles-même : soit développer une application Windows, soit développer une application en mode "saas", c'est à dire accessible via un navigateur.  Le mode "saas" s'impose de plus en plus comme le choix le plus raisonné, pour des raisons de coût de maintenance et de simplification. Les outils "RIA" - rich internet application - tel que Flex et Silverlight permettent même de retrouver facilement un look & feel très proche de ce qu'une application "windows" peut proposer. 


Hélas, les smartphones ont complètement chambouler cette situation, et l'on se retrouve, comme à la pré-histoire de l'informatique, à devoir faire des choix décisifs et radicaux. 
Plusieurs plateformes distinctes se partagent le marché, et bien malin celui qui peut dire, aujourd'hui, quelle plateforme sera prédominante dans 6 mois, un an, 3 ans : iPhone, Android, Windows Phone, BlackBerry ? 
Donc, pour quelle plateforme allez-vous développer ?


La réponse à cette question dépend de qui vous êtes. C'est le profil de votre entreprise qui va, maintenant, déterminer la technologie que vous allez utiliser pour développer votre application smartphone.


Si vous développez des applications pour des tiers, vos clients, vous allez certainement pouvoir cibler une seule plateforme. Le client va spécifier quelle est sa flotte d'appareils mobiles, et c'est lui qui fera le choix de la plateforme. Reste pour vous à avoir en interne des équipes de développement qui soient capables de développer sur chacune des plateformes.


Si vous êtes un éditeur de logiciel, le choix est plus complexe. Soit vous privilégiez une plateforme, et vous prenez un risque énorme : le risque de voir vos investissements (en connaissance, en briques logiciels ) réduits à néant par des facteurs qui vous sont complètement étrangers. 
Soit vous décidez d'être multi plateforme, et de multiplier par un coefficient non négligeable les coûts de développement et de maintenance.


La troisième solution est de ne pas développer pour une plateforme, mais de vous orienter vers une application html, consultable sur mobile. Cette solution, si elle résout le problème en première approche, vous coupe cependant de nombreuses fonctionnalités importantes :
- vous ne pourrez pas utiliser tous les raffinements des smartphones (adieux gps, gyroscope, accès aux contacts, etc...). Votre application fera un peu vieillotte, mal adaptée, cheap.
- vous n'aurez pas la possibilité de vous rappeler au bon souvenir de vos utilisateurs avec les notifications, et, pire, les mises à jour. 
- Votre visibilité sera amputée par l'absence sur les app stores. Angry birds n'aurait pas eu 500 millions d'utilisateurs sans une présence sur les app stores. 


Il reste une dernière solution, qui, heureusement, commence à devenir sérieuse : utiliser des outils de développement multi-plateforme. A ma connaissance, deux produits distincts permettent, à ce jour, d'envisager plus sereinement le développement multi plateforme :
- Mono, de la société Xamarin (http://xamarin.com/), permet de s'affranchir partiellement du problème de plateforme. Une grosse partie du code de votre application sera commun à toutes les plateformes, seul la couche présentation sera spécifique à chaque plateforme.
- WinDev mobile, de PCSoft (http://www.pcsoft.fr/windevppc/index.html), vient de sortir sur le marché, et promet un développement entièrement multi plateforme. 


Avant de choisir une approche, une plateforme, il sera certainement judicieux d'investir dans des tests approfondis de ces deux outils. J'ai commencé à tester Mono, je ferai des retours réguliers sur ces tests. Quant à WinDev mobile, la version "gratuite" est en cours de téléchargement sur mon poste. Affaire à suivre...

lundi 7 novembre 2011

Encore une fois, c'est la pomme



Oui, encore une fois, tout est une affaire de pomme. Je ne sais pas si le symbole était voulu par ses créateurs, mais Apple porte bien son nom. Eve a "révolutionné" le monde en mangeant une pomme, et il faut bien avouer qu'Apple a fait de même...

Le premier vrai Personnal Computer était ... un Mac. Un Apple II, en fait. Il a complètement révolutionné le monde. Ensuite, bien sûr, IBM et surtout Microsoft sont arrivés et ont copié le principe (il faut bien le dire) et l'ont amélioré (il faut bien le dire aussi).

Après des années de survie, parfois sous perfusion sévère - je me souviens d'une époque ou la mort d'Apple était annoncée pratiquement tous les ans - Apple est revenu avec un objet révolutionnaire. L'iPhone, quoi que l'on puisse en dire, a complètement tout bouleversé.

J'avais, dans le cadre de mon travail, passé de longues heures sur Pocket PC. L'ancêtre (?) de l'iPhone n'avait rien de particulièrement attirant. On ne pouvait rien en faire, c'était moche, inutilisable sans un stylet qui avait une fâcheuse tendance à se perdre. Un sous PC. Bref, ça n'a jamais marché.

L'iPhone a tout balayé. De la même façon que l'Apple II a montré au reste du monde ce qu'était l'avenir, l'iPhone a, selon moi, donné une impulsion nouvelle à l'informatique, et est, avec quelques autres (Facebook, Le bon coin, Google ?), l'un des inventeurs de ce nouveau principe : SOLOMO.

Bien sûr, l'histoire risque, malheureusement pour Apple, de se répéter. D'autres (Google , Microsoft -encore !!) ont copié le principe et vont l'améliorer, le débarrasser de ses défauts de jeunesse, comme pour l'Apple II.
Il ne restera à Apple qu'à recommencer, courber l'échine, et attendre un prochain éclair de génie.

Pour l'instant, concentrons nous sur le présent, et essayons d'intégrer les bouleversements qu'Apple nous a apporté.