PhoneGap : des applis pour smartphone en HTML

4

phrase_phonegap

Les applications sont le nerf de la guerre des smartphones et les plus grandes marques se doivent d’être présentes sur les « app stores » avec leur application maison.

Seulement voilà, il ne suffit pas de faire une appli iPhone pour toucher tout le monde. Il existe plusieurs systèmes (iOS, Android, Blackberry, Windows Phone…) et chacune de ces plateformes utilise ses propres langages et possède son propre « market ».

Et les applis web ?

Donc, comment créer des applications universelles fonctionnant sur le plus grand nombre d’appareils ? En utilisant la plateforme commune : le web !

Grâce à l’évolution des langages HTML / CSS / JS ainsi que des navigateurs mobiles (Safari, Webkit, Opera, Firefox…), il devient possible de créer des « web apps » rivalisant avec les applis natives.

Les navigateurs mobiles permettent, entre autre, de gérer :

  • Les événements « touch » (swipe, drag…)
  • La géolocalisation
  • Le Local Storage

Mais… ce n’est pas l’idéal non plus…

La « web app » ainsi créée tourne au sein du navigateur, ce qui ne donne pas le même ressenti qu’une appli native :

  • Il n’y a pas d’icône sur le bureau
  • L’appli ne se trouve pas non plus sur le « market »
  • Une partie de l’écran est occupée par la barre d’adresse du navigateur

Exemple de Twitter : à gauche, l’appli web ; à droite, l’appli native.

Twitter version webTwitter version native

PhoneGap à la rescousse !

PhoneGap est un framework dont l’objectif est de réduire le fossé (gap) qui sépare les applis web des applis natives. Plus précisément, il permet d’encapsuler une appli web DANS une appli native et de lui fournir des outils supplémentaires.

Process

Avec PhoneGap, il est par exemple possible d’accéder aux fonctionnalités suivantes directement en javascript :

  • Accéléromètre
  • Vibreur
  • Notifications (bip système)
  • Appareil photo
  • Carnet d’adresses
  • Boutons physiques (sur Android par exemple : menu, retour…)

Exemples d’applis PhoneGap :

Démineur

Comment ça fonctionne ?

La procédure d’installation est expliquée en détails sur le site de PhoneGap. En gros, pour chaque plateforme ciblée, il faut installer le SDK et compiler soi-même l’application.

Par exemple pour Android, on peut utiliser Eclipse.

Eclipse

Et c’est si bien que ça ?

Les puristes diront que rien n’est aussi fluide qu’un programme écrit en langage natif, et ils n’ont pas tort. Ce qui est le plus souvent reproché aux applis PhoneGap, c’est leur feeling « non natif ». Cette impression est souvent causée par une interface moins réactive qu’un programme natif.

Il faut se souvenir que le moteur de rendu de l’appli reste le moteur du navigateur. Il existe heureusement des bonnes pratiques pour optimiser les performances du javascript sur mobile ou des techniques pour accélérer la réactivité des clics. Au final, si un programme est lent, ce n’est pas forcément la faute de PhoneGap, c’est souvent le code qui est en cause 😉

PhoneGap n’échappe pas non plus aux contraintes habituelles du web : les différences de rendu et comportement entre navigateurs. Les versions Android, iPhone, Blackberry… d’une application PhoneGap auront fatalement quelques différences liées aux capacités de l’appareil.

Conclusion

Il ne faut pas voir dans PhoneGap un miracle permettant de créer six applis en un clic, mais il abaisse considérablement la barrière à l’entrée pour le développement sur mobile. En effet, il permet à des développeurs web de « porter » des programmes sur différents systèmes sans apprendre les langages spécifiques à chaque plateforme.

Depuis peu, il est même possible de compiler son application « dans le cloud » sans avoir à installer les différents SDK.

Le framework devrait sortir en version stable 1.0 dans quelques jours.

Charger les commentaires

4

Commentaires

  1. Particulier Répondre

    Le problème avec ce genre d’application facilitant le portage c’est l’optimisation.

    Les risques de ralentissement, bugs augmentent.
    Et derrière, il n’est pas toujours facile de retravailler pour faire soi-même l’optimisation.

    Mais ça a le mérite d’exister et pourra surement répondre à de nombreux besoins.

  2. Bastien Répondre

    oui certainement moins performant que des applis développées en langage dédié, mais tellement moins couteux à réaliser. Pour de mes applis, c’est largement suffisant.

    Par contre, je ne comrpends pas tes arguments contre la webapp :
    – Il n’y a pas d’icône sur le bureau => il suffit de créer un raccourci sur le bureau qd le user clique comme pour télécharger l’appli

    – L’appli ne se trouve pas non plus sur le « market » => OK mais pour une appli BtoB par ex, on s en fout. et la comm est là pour ça aussi.

    – Une partie de l’écran est occupée par la barre d’adresse du navigateur => pas si en cliquant sur l’icône, tu lances ton navigateur en full screen.

    par contre, la webapp, meme avec les websockets, gère le push de manière moins propre qu’une app dédiée.

  3. Bastien Répondre

    ah oui, il est maintenant possible de se passer des SDK et de compiler directement en ligne.
    on peut donc développer sur ihpone sans MAC ! 🙂

  4. Randrianarivony Répondre

    Bravo et merci pour ce blog
    apprenti developpeur mobile et cela m’interesse vachement mais comment installer Cordova et SDK dans son ordinateur m’échappe un peu car il faut toucher aux bases de registres

    Cordialement

Laissez un commentaire :

  • (will not be published)