AXOPEN

Application mobile en 2017 – Quelle technologie ?

« Quelle technologie utiliser pour développer mon application mobile ? » C’est à partir de cette question récurrente et légitime de nos clients que nous avons décidé de réaliser cet article. En effet, le choix des technologies à utiliser pour le développement d’applications mobiles, est déterminant pour de longues années ; il convient donc d’y réfléchir sérieusement !

D’autant plus que ça bouge ! Le foisonnement des technologies mobiles croise celui des technologies web, il est de plus en plus complexe de faire un choix pour le développement de son application mobile. Dans cet article, nous allons donc essayer d’apporter des éléments de réponse concernant le choix de technologies pour le développement d’une application mobile en 2017.

Les plateformes de développement mobile : état des lieux 2017

La première question à se poser quand on souhaite développer une application mobile est celle de la plateforme cible. En effet, il existe de nombreux OS. Voici un rapide état des lieux des forces en présence.

iOS (Apple)

L’environnement Apple représente à lui seul 20% des parts de marché. L’avantage de cette plateforme est qu’elle est très intégrée et que l’homogénéité des versions des OS est très bonne. Le plus gros point négatif est le prix prohibitif des terminaux ainsi que la fermeture de l’OS qui impose des lignes de développement très précises et cadre les possibilités des applications (on ne peut pas faire tout ce que l’on veut).

Un point important à noter : le potentiel achat des utilisateurs Apple.

Bien souvent, les utilisateurs d’Apple sont considérés comme un public plus riche que la moyenne et, de fait, plus enclin à réaliser des achats sur mobile. Si votre application est à destination du grand public et se finance par des achats (que ce soit des achats in’app ou directement de l’app), à application équivalente, les utilisateurs d’iOS sont de bien meilleurs payeurs.

En savoir plus sur le développement d’applications mobiles iOS

La plupart du temps, quand le budget de développement d’application est restreint, les clients nous demandent : « sur quel OS dois-je partir ?« . Notre réponse est souvent la suivante : sur iOS, car le modèle économique est plus viable ! Avec seulement 20% de part de marché pour l’OS, il est fréquent de constater que les recettes générées par leurs applications représentent pas moins de 80% du total de recettes. Encore une fois, on retrouve la fameuse règle des 20/80.

Android (Google)

Avec un score de plus de 80% de part de marché, Android représente de loin la plateforme plus ouverte, malgré une hétérogénéité importante des versions des OS. Si vous souhaitez toucher un maximum d’utilisateurs, Android est la plateforme rêvée.

Parmi les points positifs de la plateforme, on peut citer :

  • une très grande ouverture de la plateforme
  • des terminaux à des prix abordables
  • des facilités de développement et de déploiements d’application.

En savoir plus sur le développement d’applications mobiles Android

Windows

Bon dernier aux vues des parts de marché, Windows reste une alternative intéressante dans certains cas d’application, surtout pour l’utilisation sur tablette et l’utilisation de briques pré-existantes dans le SI. De plus, un grand de choix de tablettes tactiles et convertibles sont disponibles sur le marché, et, petit à petit, le store de Windows s’améliore.

(Attention néanmoins, il semblerait que pour la partie pur mobile, Microsoft ait décidé d’abandonner la partie…) Affaire à suivre ! 

Par où partir ?

Une autre solution pour choisir sa technologie est de se poser les questions suivantes:

Choisir son public (B2C / B2B)

Cette question n’est pas des moindres puisque le choix de technologies pour le B2B n’est pas du tout le même que pour le B2C. Dans le premier cas, vous avez la main sur les périphériques (logique de flotte), alors que dans le cas du B2C, le développement mobile doit toucher 100% des utilisateurs, ce qui est beaucoup plus compliqué (surtout sur Android).

Choisir sa plateforme – Prendre en compte la maintenance

Autre question à intégrer dès le début des réflexions : la maintenance applicative. Pourquoi me direz vous ? Le choix de technologies peut-il avoir un impact sur la maintenance ? Eh bien oui !

Déjà, car le choix de développement en natif vous forcera à faire évoluer deux applications à la fois, donc double travail, et que les solutions de développement unifié posent d’autres problèmes en termes de maintenabilité dans le temps. Quelque soit le choix que vous proposera votre prestataire, il convient donc de se poser la question dans la pérennité et des coûts dans le temps de votre choix.

Il n’y a pas de bon ou mauvais choix en soi, mais les choix impliquent de nombreuses répercussions.

Les technologies de développement mobile

Voici un rapide panorama des solutions de développement.

Développement natif – SWIFT / Java / C# (Universal)

Développer en natif est souvent la seule solution envisageable car c’est celle qui permet d’obtenir les meilleures performances et l’assurance de pouvoir tirer pleinement parti des fonctionnalités des terminaux. De plus, ceci permet d’être certain de la compatibilité de vos développements dans le futur. En effet, que ce soit Apple ou Google, ils assurent toujours une très bonne rétrocompatibilité avec leurs versions d’OS. Ainsi, un développement réalisé en SWIFT 2 sera globalement assez facilement migrable en SWIFT 3 etc.

Pourquoi est-ce important ? Car le cycle de développement mobile est souvent très court et qu’il faut être en mesure de sortir des versions d’applications fréquemment. De plus, Android et Apple sortent une version majeure de leur OS par an. Il faut donc être capable d’agir vite et bien lors d’une montée de version, et, en partant en pur natif, vous êtes certain d’y arriver facilement.

Le principal défaut de cette solution est qu’il faut développer deux versions de l’application, une pour Android en JAVA et l’autre pour iOS en SWIFT (donc plus ou moins le double du prix). A cela, il faut rajouter le double du prix pour chaque évolution…

Vous ne serez jamais bloqué mais la liberté à un prix relativement élevé.

Développement Hybride – Ionic / Cordova

Il existe de nombreuses solutions de développement cross plateform hybrid qui proposent de ne pas redévelopper l’application deux fois, mais, de mutualiser des parties importantes du code ou d’utiliser un code source identique en utilisant un langage de développement neutre type JavaScript ou C#. Cette solution permet de réaliser facilement des applications sur les deux principaux OS, au détriment de la performance.

De plus, la maintenance est rendue plus complexe car il est nécessaire de suivre, en plus des montées de version des OS, les montées de version des framework… et vous n’êtes jamais à l’abri que le framework disparaisse !

Le futur ? – Progressive Web app

Depuis peu, il existe une troisième voie poussée par le géant Google : les progressive web app. Cette solution permet de réaliser un site web qui se transforme en une application parfaitement fonctionnelle sur les deux OS. Cette solution, bien que récente, est sûrement l’avenir du développement mobile mais son support est encore partiel dans iOS, ce qui pose encore de nombreux soucis quand à son adoption.

Gestion de projet pour le développement d’application mobile

  • Obligation d’avoir des équipes serveurs et clients

Rare sont les applications qui n’ont pas besoin de serveur pour fonctionner. Il faut donc préparer deux équipes bien distinctes pour réaliser les deux développements.

  • Peu d’écran d’application, peu de développeurs : ne garder que les meilleurs !

Une application mobile est souvent plus simple qu’une application web classique puisqu’elle contient généralement beaucoup moins d’écrans. Vous devez prendre ce fait en compte et limiter le nombre de développeurs qui interviennent sur le projets en ne gardant que les meilleurs. Il faut éviter à tout prix de faire rentrer et sortir des développeurs comme vous le feriez sur un projet classique.

  • Préparer dès le jour 1, la mise en production (certificat Apple / Android…)

Déployer des applications sur les stores relève souvent du parcours du combattant, tellement il est complexe, et des fois ubuesque, d’arriver à faire valider vos apps dans les stores. Pour ceci, il est impératif de préparer cela dès le jour 1 de lancement du projet pour ne pas se retrouver la tête dans l’eau à quelques jours de la mise en production.

  • Prévoir une flotte de terminaux pour les tests

On ne le dira jamais assez mais les tests, c’est le plus important ! Prévoir à minima autant de temps pour le test que pour le développement ! Surtout sur Android, ou vous allez avoir une foule d’appareils à tester.

La maintenance des applications mobiles

Voici une liste de points de vigilance concernant la maintenance des applications mobiles.

  • La mise à jour est forcée par les plateformes

Vous n’avez pas la main sur la MAJ des OS des terminaux mobiles. Vous devez donc les subir et les anticiper si vous souhaitez les réussir. Rien de pire qu’un utilisateur avec son terminal flambant neuf et votre application se crashant lamentablement.

  • Les utilisateurs sont habitués à des MAJ régulières

Dans le domaine du mobile, les utilisateurs sont habitués à voir leurs retours pris en compte rapidement. Il convient donc de dimensionner vos équipes pour être en mesure de réaliser rapidement des MAJ.

  • La gestion des erreurs est moins aisée

Contrairement au monde historique de l’entreprise, vous n’aurez pas accès au périphérique présentant l’erreur. Vous serez donc démuni lorsque vous verrez un commentaire négatif sur le store. Il faut donc anticiper ce problème et préparer des framework pour vous faire remonter les erreurs avec le plus de détail possible.

  • La notation de votre application dans le store

Les gens sont impitoyables sur les stores et les notes sont souvent là pour sanctionner les applications qui ne sont pas au niveau. Il convient donc de s’en prémunir et d’être capable d’assurer la communication avec vos utilisateurs pour garder une relation de bonne qualité.

Nos retours d’expérience

Pour faire un peu le point, voici nos recommandations issues de notre expérience :

  • Le développement natif est le plus performant, le mieux maintenu mais aussi le plus cher.
  • Attention, vous n’êtes plus complètement maître de la distribution de l’app : il faut donc l’anticiper !
  • Ne pas négliger la gestion des notifications : quand, quoi et à qui ?
  • Ne pas utiliser de design trop complexe.
  • Toujours rester dans la philosophie des plateformes.

Les progressives Web App sont le futur mais, comme tout futur, il est encore incertain !

Merci d’avoir lu cet article, n’hésitez pas à nous envoyer vos retours 🙂