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...

Aucun commentaire:

Enregistrer un commentaire