Mobile apps : quelle technologie choisir ?

Comment créer une application mobile aujourd’hui ? Comment choisir la bonne technologie ? Commençons d’abord par un petit point historique avant de voir ce que nous proposent les technologies actuelles.

Histoire

Avant l’apparition de l’iPhone, le monde se divisait entre applications web et natives sur les OS historiques : Windows, Unix/Linux, OSX.

Pour faire du Web, on utilisait :
– Html/Javascript/Css
– Et pour le backend, .Net/Java, php, ou cgi…

Pour le Natif, c’était plutôt :
– .Net
– Java
– C++
– …

Les premiers téléphones permettaient de consulter des pages web très peu optimisées. La solution était alors de créer des pages web spécifiques au mobile (WAP). BlackBerry a démocratisé l’utilisation de l’internet sur téléphone portable, surtout grâce au push des e-mails.

Nous avions le choix entre de nombreuses technologies. Le choix le plus facile était celui du développement web. Mais, dans certain cas, le développement d’une application native était obligatoire. Par exemple, dans le cas où votre application était utilisée hors-ligne, sans connexion internet.

A l’époque, le seul acteur intéressant sur le marché des applications mobiles natives était Microsoft avec Windows Mobile. Une plateforme flexible, un SDK bien fourni, et des fonctionnalités d’entreprise (VPN,…). Mais on ne peut pas dire que Windows Mobile ait été un énorme succès.

Et maintenant ?

Apple a mis un coup de pied dans la fourmilière en apportant une chose que Microsoft n’avait pas réussi à faire jusqu’alors avec Windows Mobile : l’ergonomie ! Depuis l’iPhone et iOS, on parle de design, d’UX, d’ergonomie, de graphisme, etc. Maintenant, on veut un téléphone aussi simple qu’un grille-pain, mais avec les fonctionnalités d’un ordinateur.

L’iPhone a révolutionné l’expérience utilisateur mobile. Apple a créé un téléphone avec une ergonomie simplifiée, le premier téléphone qui répond vite avec des applications qui démarrent vite. L’interaction est rapide, tout s’utilise au doigt, pas besoin de stylo.

La société a aussi réussi à fidéliser des développeurs. Ainsi, des milliers d’applications sont développées pour iOS. Face à ce succès, Google avec Android et Microsoft avec Windows Phone ont suivi le même chemin.

Aujourd’hui, il y a donc 3 plateformes majeures qui nous permettent de développer sur mobile :
– Android
– iOS
– Windows Phone

Comment cibler ces plateformes?

Pour cibler ces 3 plateformes, nous avons le choix entre du web, du natif, et de l’hybride (Multi-plateformes).

Le Web d’aujourd’hui a beaucoup évolué : les normes sont plus respectées, avec des différences plus faibles entre chaque browser. Le Web nous permet d’intégrer des fonctionnalités intéressantes comme la géolocalisation par exemple. Le design est, quant à lui, plus souple et les applications web sont plus riches et fluides.
Les technologies HTML5/Javascript/CSS3 permettent de définir un standard et des comportements similaires en fonction des plateformes. Les frameworks Javascript, tel que AngularJS ou JQuery sont maintenant très matures et nous permettent de créer des applications riches avec un minimum de code. Toutefois, il nous manque l’accès à certaines API de la machine. Internet demeure un pré-requis pour utiliser votre application pour beaucoup de cas d’usage.

Le natif permet de profiter des performances de chaque type de mobile. Grâce au framework propre à chaque plateforme, on a accès à l’ensemble des ressources matérielles et logicielles : GPS, boussole, contacts, téléphone, Bluetooth, etc. Il n’y a presque plus de limite avec ces applications. Toutefois, chaque plateforme possède son langage de développement, son SDK, et ses patterns de programmation.
– iOS : XCode, Swift.
– Android : Java, Dalvik.
– Windows Phone : .Net, Silverlight.

Les applications hybrides (Xamarin, PhoneGap, Cordova,…) promettent de réunir le meilleur des deux mondes. L’idée est de mutualiser les développements en utilisant le même framework. Ainsi, on va utiliser le même langage et les mêmes outils pour développer sur chaque plateforme. En fonction de la technologie choisie, on peut avoir les contraintes suivantes :
– Des performances dégradées
– Des fonctionnalités en moins (pas d’accès au Bluetooth par exemple)

Il y a beaucoup d’inégalités entre les différents applications hybrides. Les performances ne sont pas les mêmes. Les outils sont différents. Les API sont différentes.
– Xamarin (Performant, C#, …)
– PhoneGap (HTML, CSS, …)
– Cordova (HTML, CSS, …)

Comment choisir ?

Pour choisir il faut prendre en compte plusieurs critères.

Natif :
Avantages:
– Look and feel du téléphone.
– Performances.
Inconvénients :
– Développement sur 3 plateformes.
– 3 SDKs.
– 3 ergonomies.
– Maintenance de 3 plateformes.

Web :
Avantages:
– Look and feel custom.
– Standard de développement (HTML5…).
– Mutualisation du code.
Inconvénients :
– Fonctionnalités limitées (pas d’accès aux API).
– Dépendance à une connexion internet.
– Performance limitée.

Hybride :
Avantages :
– Performance (Pour certains Frameworks)
– Mutualisation des développements
Inconvénients :
– Look and feel (Pas dépendant de la plateforme)
– Performance limitée (Pour certain Framework)
– Fonctionnalités limitées (pas d’accès l’ensemble des API)
– Pas matures et peu de documentation.

A mon sens, il y a un compromis à trouver entre tous ces critères.

Conclusion

Aujourd’hui, si vous souhaitez cibler les 3 plateformes, je vous conseille la solution Native. Toutefois, il faut pour cela avoir un budget dédié à la création et à la maintenance de l’application. Vous aurez alors des applications parfaitement adaptées à chaque plateforme mais vous aurez également 3 applications à maintenir simultanément et 3 équipes de développement.
Si vous possédez un site web, vous pouvez partir sur du web mutualisé avec vos services existants (voire le même site web avec du responsive design).
Si vous n’avez pas de site, préférez un framework hybride. Les applications Hybrides sont encore un peu jeunes mais elles sont très prometteuses. Ces Frameworks ne sont pas la solution idéale au multi-plateforme, mais ils ont l’avantage de mutualiser vos développements et votre maintenance. Partir sur ces architectures est un pari, mais un pari avec lequel vous avez de bonnes chances de gagner.

Un commentaire. Laisser un commentaire

Franck boher
juillet 5, 2017 02:33

Bonjour Aurélien,
J’aimerais entrer en contact avec vous pour vous parler d’un projet d’application mobile dans le domaine du sport.
Pouvez vous m’appeler au 0698360670

Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *