Aujourd’hui, la richesse du domaine du mobile provient notamment du nombre toujours croissant de smartphones et tablettes ainsi que de systèmes d’exploitation disponibles. Cependant, cette richesse est difficile à prendre en compte pour les entreprises de développement mobile et a un coût élevé.

En effet, Lorsqu’une application mobile doit être créée, les entreprises décident sur quelle plateforme lancer l’application en premier. Suivant le choix de ces dernières, l’engagement du développeur varie. En effet, la plateforme choisie définira les compétences du développeur à embaucher.

Situation actuelle

Android sur près de 9 smartphones sur 10 – Sur les 344,3 millions de smartphones livrés dans le monde au 2e trimestre 2016, 86,2% étaient sous Android selon Gartner. Sur un an, l’OS Google a gagné 4 points de part de marché (82,2%). Cette progression, Android la doit en partie au recul d’Apple et dans une moindre mesure de la plateforme Windows.

Au 3e trimestre 2016, 373,2 millions de smartphones ont été vendus aux consommateurs dans le monde selon Gartner. Cela représente une croissance annuelle de 5,4%. Toutefois, la croissance est portée uniquement par les terminaux Android avec 27 millions d’unités vendues en plus.

Toutes les autres plateformes déclinent. On le sait, depuis le début d’année, l’iPhone est en recul, même si sur le dernier trimestre la baisse ralentit. En l’espace d’un an, iOS a néanmoins perdu 1,5 point de part de marché. La plateforme Apple descend à 11,5%, quand Android creuse l’écart à 87,8%.

Et pourtant, sur ce trimestre, Samsung, le leader du marché, n’a pas été au mieux avec une chute de ses ventes de smartphones (71,7 contre 83,5 millions d’unités en Q3 2015). Fort heureusement pour Google, Android n’est plus aussi étroitement que par le passé lié à la santé du coréen. Au sein du top 5 des constructeurs, seuls trois sont en croissance.

Et les trois sont chinois et fabricants de terminaux Android : Huawei, Oppo et BBK Communication Equipment (Vivo), assurent 21% des ventes mondiales de smartphones.

1. Solution de développement multiplateforme
1.1. Les applications hybrides

Observant le gain de notoriété des applications natives, et par conséquent, l’accroissement de la problématique du multiplateforme, des entreprises se sont rapidement rendues compte de l’importance de trouver des solutions permettant d’uniformiser le développement natif.
Des noms tels que PhoneGap, Appcelerator et Xamarin sont ainsi devenus aujourd’hui des incontournables du développement mobile multiplateforme grâce au succès de leurs solutions.

1.1.1.Apache Cordova / Adobe PhoneGap

PhoneGap est un framework de développement mobile multi plateforme initialement développé par Nitobi, entreprise par la suite rachetée par Adobe Systems en 2011.
Parallèlement à ce rachat, le code du projet fût cédé à la Fondation Apache et la solution renommée Apache Cordova, Adobe Systems l’utilisant par la suite pour proposer ses propres services Adobe PhoneGap puis, plus récemment, Adobe PhoneGap Build.
Apache Cordova exploite l’approche hybride pour permettre la création d’applications natives à partir de projets web HTML/CSS/ JavaScript. Une très large majorité des plateformes sont supportées tel qu’Android, iOS, Windows Phone, BlackBerry, LG webOS, Firefox OS, Tizen, Ubuntu Touch, Bada et Symbian OS.
Le framework propose notemment l’accès aux fonctionnalités avancées des appareils mobiles au travers de plug-ins (APIs) permettant au code JavaScript s’exécutant dans la WebView de communiquer avec la plateforme native. Sont accessibles via les plug-ins des fonctions telles que l’état de la batterie, l’appareil photo, la boussole, la localisation par GPS …

La solution d’Adobe PhoneGap propose elle, en complément, une application mobile,
PhoneGap Developer App, permettant de débugger directement son application sur un appareil mobile physique sans besoin de recompiler, recréer et réinstaller le package de celle-ci. Elle offre également un service de compilation basé sur le cloud, Adobe PhoneGap Build, supprimant la nécessité d’avoir installé localement les SDKs de chaque plateforme ciblée ainsi qu’une application à interface graphique pour la création du projet PhoneGap.
Lien : http://phonegap.com/

1.0.1 Xamarin

Xamarin est une entreprise américaine fondée en 2011 par l’équipe d’ingénieurs fondatrice du projet open-source Mono.
Mono fût initié en 2004 par Ximian, puis repris par Novell: Il s’agit d’un projet visant à développer des outils respectant le standard Ecma et compatibles .NET comprenant notamment un compilateur C# et un environnement d’exécution Common Language.
Novell lança par la suite MonoTouch en 2009 (renommé Xamarin.iOS) et Mono for Android en 2011 (renommé Xamarin.Android) en tant qu’implémentations mobiles commerciales du framework Mono. Les trois solutions furent ultimement reprises par Xamarin.
Actuellement, Xamarin permet de développer des applications mobiles multi-plateforme à partir du langage C# et cela de différentes manières : Son set d’outils Xamarin.Forms permet la plus grande réutilisabilité de code pour des applications exigeant peu de fonctionnalités spécifiques aux plateformes cibles tandis que Xamarin.iOS et Xamarin.Android promettent des interactions plus spécialisées et un accès plus direct aux API spécifiques des différentes plateformes.
Android, iOS et Windows Phone sont les trois plateformes supportées par les outils de Xamarin, la dernière tirant avantage du fait que C# est le langage utilisé nativement.

Xamarin propose son propre environnement de développement, Xamarin Studio, offrant notamment en plus du debugging, la complétion de code en C# et la possibilité de créer l’interface utilisateur graphiquement. Xamarin for Visual Studio, une extension pour l’IDE de Microsoft permet également la création, le déploiement et debugging sur simulateur ou sur appareil physique, de projets utilisant les outils Xamarin.
Tout comme Titanium, Xamarin est une solution de développement multiplateforme payante.

Lien : https://www.xamarin.com/

1.0.2. Appcelerator Titanium Mobile

Appcelerator est une entreprise américaine spécialisée dans les technologies mobiles et fondée en 2006.
Elle lança la première version de son framework open source, Appcelerator Titanium, fin 2008, ciblant au départ le développement d’applications multiplateforme pour ordinateurs de bureau. L’entreprise commença ensuite à concentrer son activité sur les applications mobiles
en ajoutant le support pour développement iPhone et Android l’année suivante puis en lançant son propre environnement de développement Appcelerator Studio en 2010.
Appcelerator Titanium offre la possibilité de développer des applications mobiles multiplateformes à partir de JavaScript, le code source de l’application étant interprété par un moteur JavaScript à l’exécution. Le framework supporte actuellement les plateformes Android, iOS, Windows Phone, BlackBerry OS et Tizen.

Bien que se passant du DOM, la dynamique de création d’interface utilisateur et l’expérience globale se veut intuitive et facile d’accès pour tout développeur familier avec le développement web.

Les modules Appcelerator Titanium (API) offrent la possibilité d’accéder de manière standardisée à des fonctionnalités natives de l’appareil mobile telles qu’appareil photo, contacts ou système de fichier, mais également de cibler des spécificités d’une plateforme précise. Il est également possible de développer ses propres modules.
L’environnement de développement Appcelerator Studio propose également un émulateur Android et iOS pour le debugging ainsi que la possibilité de débugger / installer directement sur un appareil physique (à partir de la version 3 de l’IDE).

Bien qu’initialement Open Source et gratuit d’utilisation, les services d’Appcelerator Titanium sont récemment devenu payants (souscription) à partir du moment où une application doit être publiée.
Lien : http://www.appcelerator.com/titanium/7/

Dans le prochain article nous étudierons les forces et les faiblesses de ses solutions.

Diégane Ahad NGOM (Lahad NGOM)
Consultant NTIC
Manager LNG Consulting

5 réponses à cet article