Native ou Web App, que choisir?

native-app-web-app

Faut-il investir dans le développement d’une Native App ou d’une Web App? Un débat qui a fait et continue à faire couler beaucoup d’encre depuis la démocratisation des applications mobiles.

Commençons par définir les termes : Native App et Web App.

  • Une Native App est une application développée exclusivement pour un système d’exploitation défini, dans le langage de programmation et la plateforme SDK (Software Development Kit) supporté par ce dernier.  Une Native App s’installe et s’exécute, en locale, sur le mobile de l’utilisateur.

Ci-dessous un tableau de correspondance entre les principales plateformes et leur univers de développement respectif.

Plateforme

Langage

Outils

Système   d’exploitation

 

IOS

Objective-C et iOS SDK

C# et MonoTouch

Xcode

MonoDevelop

AppCode

 

Mac OS

Android

Java et Android SDK

C# et MonoDroid

Eclipse

IntelliJ IDEA

Mac OS

Windows

Linux

 

Windows Phone

 

C# et Microsoft .NET Framework 4

Microsoft Visual Studio

Windows

Blackberry

Java et BlackBerry SDK

Eclipse

Mac OS

Windows

Linux

 

Symbian

C++ et Qt SDK

Qt Quick

Mac OS

Windows

Linux

 

 

 

  • Une Web App est une application développée avec les standards du web : Html, CSS et Javascript. Elle s’installe sur un serveur web et s’exécute via le navigateur du mobile de l’utilisateur.

À travers les définitions ci-dessous, on peut donc dégager une notion d’application locale et distante.

  • Une application locale a donc la particularité de s’installer sur le mobile de l’utilisateur et par conséquent est capable de fonctionner sans aucune connexion Internet.
  • À la différence, une application distante s’installe sur un serveur web et de fait à besoin d’une connexion Internet pour être active.

 

Détaillons maintenant les principales caractéristiques liées aux deux types d’application : locale et distante

Une application locale :

  • est capable d’accéder aux fonctionnalités proposées par le mobile qui l’héberge tel que : l’accéléromètre, la messagerie textuelle, l’appareil photo, les performances graphiques, la puissance de calcul du microprocesseur et bien plus
  • présente une exécution fluide du fait que la navigation se réalise localement sur le mobile de l’utilisateur. De ce fait, très peu de requêtes sont envoyées à un serveur distant car elles concernent généralement l’identification, la mise à jour de données utilisateurs ou encore la réalisation d’une transaction sécurisée
  • se déploie via un appstore spécifique à chaque système d’exploitation. La mise à disposition de l’application sur un appstore se fait après son approbation.

Une application distante :

  • est compatible avec tout mobile possédant une connexion Internet et un navigateur
  • envoie une requête à un serveur à chaque fois qu’une demande d’affichage d’une nouvelle page est effectuée. Ce qui rend la fluidité de la navigation tributaire de la bande passante du serveur et de la qualité de la connexion Internet du mobile de l’utilisateur
  • doit prendre en compte les particularités techniques (taille de l’écran, système de navigation) de chaque plateforme susceptible de l’utiliser
  • se déploie instantanément

 

En nous appuyant sur les points mentionnés plus haut, nous pouvons tirer les conclusions suivantes :

- une Native App correspond à des projets nécessitant des fonctionnalités complexes et des ressources graphiques élevées. Par contre, elle nécessite un développement par plateforme, mais en contrepartie bénéficie de l’exposition et du modèle économique des appstores

- une Web App correspond à des réalisations standards visant à toucher une large audience (différentes plateformes). Elle permet également de centraliser le développement ainsi que les mises à jour de l’application

 

Tableau comparatif Native App/Web App

Accès aux fonctionnalités de l’appareil

Vitesse d’exécution

Coût du développement

Appstore

Processus d’approbation

Native App

 

Total

Très rapide

Elevé

Oui

Obligatoire

Web App

 

Partiel

Normal

Raisonnable

Non

Aucun

 

Ce billet n’est évidemment pas exhaustif, le but étant ici de représenter une vue globale des éléments définissant les deux principaux types d’application mobile.