Développement mobile : choisir son environnement de développement

Publié le 13 septembre 2012 par Brokenbird @JournalDuGeek

La marché du mobile a énormément évolué depuis le début de l’année 2012. Apple, Google, Windows et Nokia sont en compétition constante pour récupérer des parts de marché : Android rattrape et dépasse dans certains pays iOS, et Windows Phone commence à se développer. Le marché des OS sur mobile est donc particulièrement dynamique.

Ainsi, les OS se multiplient; en conséquence, les développeurs doivent faire face à un nombre croissant d’environnements de développement à maîtriser. Afin de réduire les délais et donc les coûts de développement, des plateformes de développement multi-OS (appelées cross-platform) ont commencé à voir le jour. Néanmoins, ce n’est pas pour autant qu’elles ne nécessitent aucune compétence de développement : elles requièrent aussi un temps d’adaptation pour les développeurs, voire d’apprendre un nouveau langage (le HTML5 pour ne nommer que lui). Seul Windev, que l’on pourrait qualifier d’exception à la française, propose un environnement de développement accessible aux grands débutants.

Cette explosion des plateformes de développement sur mobile est donc un problème épineux pour les entreprises, qui doivent faire preuve d’adaptation.

Ci-dessous se trouve un rapide tour d’horizon des plates-formes de développement sur mobile qui permet de constater toute l’étendue des choix offerts aux développeurs et des compétences nécessaires pour pouvoir tout maîtriser.

Xcode – iOS

Langage : Objectif-C

Xcode est un environnement de développement pour Mac OS X. Il est fourni avec une suite logicielle complète pour développeurs.

Eclipse – Android

Langage : Java

Eclipse est un environnement de développement en Open-Source dont la suite logicielle est particulièrement fournie.

Netbeans – Android

Langage : Java

À l’instar d’Eclipse, Netbeans est un IDE utilisant le Java. Un pack « Netbeans Mobile » est disponible, donnant accès à une suite logicielle complète pour pouvoir développer sous Android.

Silverlight et XNA – Windows Phone

Silverlight

Proposé comme une alternative au flash, Silverlight est un plug-in multi-plateforme pour navigateur Web. Il fonctionne de façon similaire à son concurrent direct Adobe Flash.

XNA

XNA est un environnement de développement utilisé principalement pour développer des jeux sur Windows Phone.

Blackberry

Langage : Java

BlackBerry Java Development Environment (développement sur mobile) :

BlackBerry Java Development Environment est une suite logicielle incluant des outils de modification et de débugage. BlackBerry Java Development Environment inclut des outils pour pouvoir développer sur des environnements tiers comme NetBeans ou Eclipse.

Blackberry WebWorks (développement sur tablette) :

Pour pouvoir développer sur son système d’exploitation Blackberry Tablet OS équipant ses tablettes tactiles (les tablettes PlayBook), Research in Motion amis en place un IDE dédié intitulé Blackberry WebWorks. Celui-ci permet développer des Web Apps entièrement en HTML5 et JavaScript capables d’interagir avec les fonctionnalités des tablettes Blackberry.

Symbian^3 – Symbian (Nokia)

Symbian^3 est un IDE en open source utilisant des technologies Web comme le HTML, le CSS ou le JavaScript. C’est aussi une suite logicielle complète comprenant de coutils de débugage et de déploiement.

Les IDE multiplateformes

Windev mobile – Windows Phone, Android, iOS
Langage = Wlangage (dérivé du C++ et de Pascal)
Créé par la société française PC Soft, Windev mobile est un atelier de logiciel complet orienté vers la gestion de bases de données embarquées. Cet IDE est pensé pour être accessible aux débutants.

Les IDE basés sur HTML5 (PhoneGap, NS Basic, RedFoundry…)
Ces frameworks multi-plateformes se basent sur des technologies web, en particulier le HTML5. La partie native de l’application est donc très simple ; elle n’utilise qu’un simple composant natif, à savoir une WebView (une instance du navigateur). Les applications réalisées dans ces IDE souffrent des défauts inhérents aux Web Apps : problèmes de stabilité, interfaces lourdes et animations saccadées.

Les IDE basés sur l’User Interface native (Titanium, Rhomobile, Corona…)
Ces IDE se rapprochent davantage du développement natif de par l’utilisation du kit de développement natif de chaque OS. La gestion de l’interface est la même que celle utilisée pour le développement en langage natif, sauf qu’ils sont manipulés via un unique langage pour toutes les plateformes.
L’intérêt est de diminuer les temps de développement par rapport au développement en langage natif : la majeure partie du code peut être réutilisée d’une plateforme à l’autre.

Face à cette multitude de plateformes, comment choisir ?

Que vous travailliez en interne ou en régie, la réponse est délicate. Le choix de l’environnement de développement ne doit pas être arrêté et doit être en adéquation avec la nature même du projet. Le multi-plateforme trouve en effet vite ses limites, et pour un projet lourd ou complexe, le natif restera à privilégier.

Ainsi, il est nécessaire de se constituer une équipe polyvalente sachant s’adapter à des projets de toute nature. Néanmoins, les profils de développeur sachant maîtriser le natif et le crossplatform sont rares sur le marché de l’emploi. La régie peut être une solution, mais reste relativement coûteuse et peu viable pour des projets de long terme.

En conclusion, il est nécessaire pour une entreprise d’analyser avec finesse ses besoins en développement sur le court, moyen et long terme avant d’envisager de se placer sur un environnement précis. Un environnement en crossplatform sera utile pour des projets d’applications « grand public » où toucher toutes les plates-formes est nécessaire pour pouvoir assurer la rentabilité. En revanche, le natif restera à privilégier sur des projets plus lourds (type ERP/CRM).

Un travail conséquent en amont est donc nécessaire, sous peine de multiplier sensiblement les coûts de développement.

Glossaire :

OS : Operating System, ou système d’exploitation.

IDE : integrated development environment, ou environnement de développement intégré.

SDK : Software Development Kit, ou kit de développement à destination des programmeurs.

Multi-plateforme/crossplatform : IDE permettant de développer sur plusieurs OS différents.

Article rédigé par Qualia Systèmes.