Si le succès incontestable des iPhone et Android à l’heure actuelle ont remis en avant les applications « natives » via leurs plateformes de distributions dédiées (AppStore et Android Market), il ne faut pas oublier que ces technologies n’ont pas que des avantages.
Avant tout, petit rappel des faits, on est en 2007, Apple sort son bébé en fanfare : l’iPhone EDGE. L’appareil en soit n’est pas révolutionnaire, mais toute l’approche du domaine qu’en a fait Apple rend la chose unique. Certes on avait déjà eu des téléphones tactiles, mais aucun n’était aussi efficace à utiliser de la sorte. Son plus grand pouvoir : surfer sur le véritable « Internet » ! Même si la connexion en mobilité reste limitée à un pauvre EDGE, le rendu et la puissance du navigateur masquent le souci et les gens sont prêt à patienter plus pour avoir leurs contenus réels et non une version atrophiée d’un site web décliné en version WAP digne des heures du minitel…
Le pari de Steve Jobs était d’ailleurs très clair à l’époque : le web est et devra être le moteur du contenu de l’appareil. En effet, on l’a souvent oublié, mais le premier iPhone ne disposait pas du fameux « AppStore », seules les applications fournies par Apple étaient natives. Tout le reste devait se faire via des applications web qui utiliseraient les fonctions évoluées de Safari et du futur HTML5. Apple a même fait les choses bien en ouvrant une section de son site web dédiée à l’indexation de toutes les applications adaptées à son appareil : http://www.apple.com/webapps/
Seulement voilà, en 2007, le HTML5 n’est pas franchement une réalité. Les rares navigateurs qui commencent à prendre en compte les éléments évolués de celui-ci sont encore bien peu évolués et surtout bien peu efficaces. Même Safari Mobile, pourtant très en avance sur les autres à l’époque, ne peut rivaliser avec une application native. Dès lors, ces applications lentes et peu pratiques, associées au fait que la connexion EDGE était tout de même un sacré frein, ont finalement eu peu de succès.
La chose a commencé à bouger peu après les premiers hacks de l’iPhone, la communauté du Jailbreak a commencé à découvrir que l’iPhone était plein de possibilités et qu’il était possible de développer des applications natives. Dès l’été 2007, une application nommée « Installer.app » permettait d’installer des applications tierces sans l’aval d’Apple. Début 2008, une application concurrente a pris le relais de manière plus élégante et est devenue la quasi source officielle des applications non validées par Apple sur iOS : Cydia.
Devant tant d’évènements et sentant la demande en applications très forte, Apple a su réagir intelligemment. Plutôt que d’essayer de tuer la chose, ils ont eu la bonne idée d’en profiter et de récupérer la chose. A la sortie de la version 2 d’iOS, en même temps que du premier iPhone 3G, Apple officialise son SDK et l’AppStore. En plus de permettre aux développeurs qui avaient déjà commencé à travailler sur la chose de pouvoir sortir réellement leur travail de l’ombre, ils offrent la possibilité à tout développeur de créer officiellement des applications. On sait tous quel succès a connu cette plateforme, et Apple ne se gène pas de s’en vanter, la phrase « there’s an app for that » déposée par la firme à la pomme en est une des preuve.
Seulement, peu de temps après la sortie de l’iPhone 3G, certains n’ont pas voulu laisser à Apple la seule possibilité de proposer au public un OS tactile puissant. Google ayant annoncé quelques mois plus tôt un nouvel OS, sort la première version officielle d’Android en même temps que le G1 HTC Dream en octobre 2008. Dès la première version il est possible d’installer des applications tierces via l’Android Market. Des applications qui, si elles tournent mieux que leurs équivalents HTML pur, sont toutefois ralenties par les performances de la machine virtuelle Java et les limitations techniques des téléphones de l’époque. Depuis, le matériel a bien évolués, et le passage à une JVM JIT (Just In Time) ont grandement accéléré les choses.
Les autres plateformes ne sont pas en reste, que ce soit sur Symbian, WebOS, Blackberry ou encore Windows Phone 7, toutes proposent l’installation d’applications tierces via un équivalent plus ou moins réussit à l’AppStore.
Le domaine des applications est en plein boom, l’AppStore affiche plus de 400000 applications au compteur, Android s’en rapproche et devrait même dépasser ce chiffre d’ici peu, et tout le monde semble avoir besoin d’être présent sur les appareils. On retrouve un peu une situation assez similaire à celle de la fin des années 90 ou tout le monde voulait un site web… Seulement là ou à l’époque, un site web unique suffisait (même si le rendu d’un navigateur à l’autre était parfois un peu hasardeux), il faut aujourd’hui développer une application dédiée à chaque plateforme ! On se croirait revenu des années en arrière ou aucun système n’était compatible avec l’autre…
Et c’est un comble, car dans le même temps, les solutions pour pouvoir exploiter des applications sur différents appareils ont été développées. Que ce soit Java, Flash, Adobe Air ou autres, les options ne manquent pas. Mais ont toutes des défauts assez contraignants (lourdeur d’exécution via une machine virtuelle, non adaptation au tactile, pas de SDK centralisé) et surtout ne sont pas supportés de manière correcte sur l’ensemble des appareils. Là ou iOS ne proposera certainement jamais Flash, il commence à peine à être exploitable sur Android…
Pourtant une solution est là, disponible, ouverte, et simple : le HTML !
Mais, vous allez me dire, c’était le choix initial d’Apple ! En effet… Mais depuis 2007, les choses ont tout de même bien changé aussi du côté HTML. La norme commence enfin à prendre une tournure stable, même si il reste encore du travail sur certains éléments, et surtout le support et l’accélération au sein des navigateurs a été impressionnante. Entre les premières versions de Safari Mobile en 2007 et le Safari Mobile de 2011, tout ou presque a été revu et accéléré ! iOS 4.3 a même apporté un nouvel interpréteur JavaScript bien plus puissant. La concurrence n’est pas en reste, Chrome Mobile n’a rien à envier à son grand frère, dont ils partagent une grande partie du code via le moteur WebKit. Et même Microsoft se prends à être un promoteur du HTML5 depuis la sortie d’IE9 !
Mais tout n’est pas encore rose… Si pour la majorité des cas une version HTML peut suffire, dès qu’on essaye de faire quelque chose de plus évolué, avec des animations, des transitions, des effets graphiques, de la 3D ou même des jeux, il est évident qu’une application native a encore de l’avance techniquement. Ceci dit, les choses sont tout de même de plus en plus exploitables. Les framework dédiés se multiplient, que cela soit jQuery Mobile, Sencha Touch ou autres, et certains ont même bien senti le filon en proposant des outils permettant de fournir à chaque « AppStore » une application native qui a été développée en utilisant les technologies du web. C’est ce que proposent entre autre PhoneGap et Appcelerator Titanium.
Il est évident que les applications natives vont conserver encore un moment la majorité du marché, mais à terme, il sera clairement plus évident de proposer une solution basée sur le HTML5 afin de toucher d’emblée l’ensemble des plateformes à moindre coût sans forcément se limiter sur les fonctionnalités. Ce jour n’est pas encore arrivé et on reste encore sur de la démonstration technologique au cas par cas, mais dans ce domaine, les choses bougent très vite ! Et je suis persuadé que d’ici 2 à 3 ans, une bonne partie des applications seront proposées via le HTML5 à toutes les plateformes. On prends les paris ? 🙂