Applications mobiles Cross-Platform : un rêve devenu réalité

Un point sur les trois types d'applications mobiles (Web, hybrides, natives) et sur la manière de les construire.
A l’heure de la démocratisation des plateformes mobiles, beaucoup d’entreprises sont encore frileuses, pour ne pas dire plus, à l’idée de sauter le pas car certaines idées reçues ont la vie dure.
Parmi ces idées reçues, la plus couramment rencontrée concerne la nécessité de devoir développer autant d’applications mobiles qu’il existe de plateformes (iOS, Android, Windows Phone, Windows 8, BlackBerry…).
Pourtant depuis plusieurs années, des solutions visant à pouvoir développer des applications mobiles multiplateformes basées sur un même socle et une même technologie, sortent de terre et sont de plus en plus utilisées par les développeurs.
Trois modèles de développement se dégagent
Lorsque l’on entend parler de développement multiplateforme lors de conférences ou bien au travers d’articles dans la presse ou sur des blogs, on peut se rendre compte que trois modèles de développement se dégagent :
- Les applications web
- Les applications hybrides
- Les applications natives
Les applications web sont comme leur nom l’indique, de simples sites web qui ont été rendus compatibles sur périphériques mobiles notamment grâce aux principes d’Adaptive Design et/ou de Responsive Design. Ceux-ci s’affichent directement dans le navigateur Internet du périphérique visé (smartphone, tablette, ordinateur…). Nous ne nous étendrons pas plus sur ce modèle car celui-ci reste du développement web classique.
Les applications hybrides
Les applications hybrides sont un modèle qui a fait son apparition il y a quelques années et qui correspond à une application web s’exécutant dans des vues web incorporées au sein d’une application native.
La mise en œuvre de ce modèle passe par l’utilisation de Frameworks HTML, CSS et JavaScript dont quelques grands noms, très connus des développeurs, tels que PhoneGap, Sencha ou jQuery sont les précurseurs.
Mais d’autres éditeurs connus pour être à l’origine issus du monde client-serveur ou web tels que DevExpress, Telerik, ComponentOne, etc… se sont également mis à proposer des Frameworks permettant la création d’applications web et d’applications hybrides à destination des plateformes mobiles.
Les applications natives
Afin de tirer pleinement parti d’une plateforme et avoir les performances optimales, les constructeurs ont longtemps communiqué (et c’est encore le cas aujourd’hui) sur le fait que les applications natives (qui ne s’exécutent pas dans un navigateur Internet) étaient la réponse. Ce modèle permet en effet d’avoir accès à l’ensemble des fonctionnalités (logicielles et matérielles) mises à disposition sur une plateforme donnée.
Bien qu’à l’origine, il fallait obligatoirement utiliser les outils et langages de développement mis à disposition par les constructeurs (Xcode et Objective-C pour iOS, Eclipse et Java pour Android, Visual Studio et .NET pour Windows Phone/Windows 8…), des éditeurs indépendants ont cherché des solutions pour contourner cela.
C’est ainsi que plusieurs solutions ont vu le jour sur le marché parmi lesquelles Xamarin ou Appcelerator afin de permettre, via des outils et un langage de programmation unique, de pouvoir réaliser des applications natives et pouvant s’exécuter sur plusieurs plateformes à la fois.
Avec Xamarin, vous pouvez réaliser des applications pour Windows, iOS et Android en utilisant le langage C# créé à la base par Microsoft pour sa plateforme .NET. Appcelerator utilise pour sa part le langage JavaScript pour arriver au même résultat. Bien d’autres éditeurs proposent des solutions similaires lorsque l’on effectue une recherche sur Internet.
Un choix piloté par les compétences des développeurs
La question qui découle généralement de ce rapide état des lieux est : « sur quelle solution dois-je m’orienter entre une application native ou une application hybride ? ».
Comme souvent il n’y a pas de réponse toute faite pour répondre à ce type de question et cela dépendra avant tout des compétences actuellement détenues par les développeurs.
En effet, si une équipe de développement possède de très bonnes compétences en langage C#, il serait difficilement compréhensible de partir sur une solution entièrement basée sur un Framework JavaScript car cela nécessiterait un temps de formation tout en ayant un coût non négligeable.
Le choix ne doit toutefois pas être piloté uniquement par les compétences car à l’heure actuelle, les applications hybrides restant basées sur HTML, CSS et JavaScript, elles pêchent encore au niveau des performances sur certains aspects ou au niveau des fonctionnalités disponibles quand on les compare à des applications natives.