Application iPhone native ou webapp embarquée ?

Aujourd'hui j'aimerais aborder un sujet qui commence à sérieusement m'exaspérer . Il est de plus en plus fréquent, lorsque je télécharge une application sur l'App Store, que cette dernière ne soit en réalité qu'une application web embarquée sous forme d'application native. Pour les non-initiés, la différence ne sera pas forcément flagrante au premier abord, mais dès que l'utilisateur essaiera de se servir de l'application, il va vite en constater les désagréments.

Tout d'abord, expliquons la différence entre une application native et une application web, avant de détailler pourquoi ces dernières devraient finir à la poubelle à quelques exceptions près.

Une application native est développée à l'aide du framework Apple nommé SDK en langage objectiv-c. Grâce au SDK, il est possible d'accéder à l'ensemble des API (fonctionnalités) de l'iPhone/iPad. L'Objectiv-C permet d'avoir un programme compilé directement compréhensible et utilisable par le système d'exploitation (iOS).

Une application web est développée à l'aide des technologies du web, à savoir via le couple Html/Javascript. Certaines librairies javascripts ont été conçues pour faciliter le développement et le résultat se rapproche visuellement de l'interface d'une application iPhone. Parmi les librairies les plus connues, nous pouvons citer jQTouch ou iUI.

Une application web classique peut être utilisée directement en appelant son url dans Safari. C'est un peu le descendant des sites mobiles wap (pour ceux qui ont connus) en plus évolué. Sauf que devoir saisir une url dans Safari n'est pas très pratique et exclut d'emblée de se retrouver dans l'App Store. En partant de ce constat, certaines sociétés ont très vite proposé d'intégrer ces développements web à l'intérieur d'une application native, avec parfois plus ou moins de transparence auprès de leurs clients.

L'intégration d'une application web sous forme d'application natives est très simple. Ceci est possible grâce à un composant du SDK proposé par Apple, les UIWebView. Ce composant permet d'appeler une url, d'en charger le contenu et d'afficher le résultat à l'écran. Il suffit donc de créer un squelette d'application (native) constitué de x composants UIWebView et le tour est joué. En moins d'une heure, votre application native est prête.

Un autre avantage est qu'il est possible de faire la même chose avec une application Android. Ainsi, avec un seul développement (application web), vous pouvez à la fois cibler les utilisateurs de l'App Store et de l'Android Market (moyennant quelques adaptations minimes). Vu ainsi, en se mettant à la place d'un client, cette technique semble parfaite.

Pour les agences web, c'est aussi idéal car elles peuvent se positionner sur ce marché florissant des applications tout en continuant à utiliser leurs ressources internes ; pas nécessaire de recruter des développeurs iPhone/Android, qui pour l'instant sont encore des ressources rares et chères. De plus, elles peuvent facturer un développement iPhone et proposer l'application Android à coût réduit, ce qui ne leur coûte rien puisque le développement web aura déjà été effectué. C'est un bon moyen de se faire une marge confortable.

Les applications web semblent donc idéales, à la fois pour les clients et pour le business. Pourtant chez iDevotion, nous avons choisi dès le début de ne pas proposer ce type de développement. Cela aurait été plus simple puisque nous venons du monde du mobile et que nous avons développé de nombreux sites mobiles dans nos vies antérieures. Mais dès 2008, nous avons préféré nous former au développement natif pour une simple et bonne raison : donner entière satisfaction aux utilisateurs des applications. A notre sens, et cela n'engage que nous, ceci n'est pas possible à l'heure d'aujourd'hui avec les applications web.

Revenons donc sur ce que je disais précédemment. Les applications web intégrées dans une application native devraient finir dans la poubelle, et ce pour une raison essentielle : elles ressemblent à une application native mais elles ne réagissent pas pareil. Et toute la différence est là. Ces applications sont lentes, avec une ergonomie peu réactive, et donc source de déceptions auprès des utilisateurs, qui bien souvent vont finir par ne plus l'utiliser et la jeter à la poubelle après quelques secondes d'utilisation. D'ailleurs, je rencontre de plus en plus de clients qui veulent me montrer des applications jolies graphiquement, mais qui souffrent de lenteur. A chaque fois, le discours est le même : “J'espère que notre application ne sera pas aussi lente.” Et à chaque fois que je regarde de plus près les applications en question, il s'agit d'applications web “maquillées” en native.

Pourquoi cette lenteur ? Contrairement à une application native, pour pouvoir afficher une page il faut aller la chercher sur un serveur (code de présentation, ressources telles que les images/boutons…, et les données). Même en étant plus malin et en intégrant les pages html dans l'application afin de récupérer uniquement les données (via Ajax), le résultat sera toujours plus lent qu'une application native. Et pour cause : le composant UIWebView est un composant lent à s'initialiser.

A contrario, je pourrais énumérer les avantages des applications natives, tels que l'accès complet aux APIs de l'appareil, la gestion des achats intégrés, le multitâche, la persistance des données (même si avec l’avènement du html 5 et son système de cache les choses vont évoluer), l'intégration avec les autres applis, et surtout la rapidité, la fluidité de l'application.

En résumé, lorsque vous recevez une proposition de développement d'applications iPhone, assurez- vous qu'il s'agit bien d'un développement natif et non pas d'une appli web embarquée dans un squelette natif. Sauf si la lenteur n'est pas un problème pour vous ou vos futurs utilisateurs.

Enfin, il me semble important de rappeler un dernier point. Faire développer une application iPhone en natif ne va pas forcément coûter beaucoup plus cher qu'un développement web, à condition de faire appel à de vrais experts qui maîtrisent le langage et le sdk Apple et possèdent une grande expérience de ce type de développement. C'est le cas d'iDevotion ou d'autres sociétés spécialisées, mais rarement des agences Web.

Christophe / Gérant iDevotion

Sidebar