Developpez.com

Le Club des Développeurs et IT Pro

Les WebAPIs de Mozilla progressent

Les applications Web peuvent exploiter de plus en plus de fonctionnalités natives des Smartphones

Le 2012-06-08 10:35:02, par Gordon Fowler, Expert éminent sénior
Les frontières s’effacent entre le développement mobile et le Web. Le mouvement a commencé avec des applications hébergées pour contourner les restrictions des galeries d’applications (lire par ailleurs).

Le trio HTML5, CSS3, JavaScript a fait de plus en plus d’adeptes à tel point que certains lui prédisent même un avenir plus florissant que les développements natifs.

La Fondation Mozilla œuvre à sa manière dans ce sens.

Son OS mobile, Boot To Gecko, repose entièrement sur les technologies et les applications web.

Mais les applications hébergées, à la différence des applications natives, ne permettent pas d’accéder à toutes les fonctionnalités d’un smartphone.

C’est pour remédier à cette faiblesse que Mozilla a lancé un projet de « Web API » parallèle à son OS mobile. Un projet qui fait penser et qui pourrait compléter celui du W3C baptisé « Device API ». Le projet de Mozilla est déjà en cours de validation par le W3C.

Concrètement, ces APIs de Mozilla permettent à des applications Web d’exploiter le hardware du téléphone depuis une page web.

Paul Rouget, développeur français et « techno-évangéliste » chez Mozilla, vient de publier une vidéo très intéressante qui montre l’avancée du projet. Il y fait la démonstration, depuis Firefox pour Android, de l’utilisation des fonctionnalités de l’appareil photo, du GPS, de l’accéléromètre, du vibreur et de l’accès à des informations comme le taux de chargement de la batterie.

[ame="http://www.youtube.com/watch?v=1s2KmEetAhM"]Exemple d'utilisation des WebAPIs de Mozilla[/ame]

Reste que la diversité du support du standard par les navigateurs fait qu’aujourd’hui une application Web est certes multiplateforme (ce qui justifie ce projet), mais que cet avantage n’est pas encore aussi tangible que cela.

Il est vrai également que ce projet s’inscrit dans le long terme, et que les choses ont donc le temps de changer et de ne pas concerner que les seuls Boot to Gecko et Firefox.

La documentation sur les WebAPIs de Mozilla se trouve sur cette page.

Et vous ?

Intéressé(e) par ces APIs ?
Que pensez-vous d’application Web qui utilisent les fonctions natives d’un terminal ? Pourront-elles remplacer les applications natives ?
  Discussion forum
7 commentaires
  • gretro
    Membre averti
    N'est-ce pas un peu dangereux de donner l'accès libre à toutes les applications web avec ce genre d'API ? Je sais que certaines sécurités doivent exister, mais vous savez ce qu'on dit de lois : elles sont faites pour être brisées.

    Et puis après, dès qu'on parle de traitements lourds, on est carrément perdant dès qu'on utilise du Javascript. À moins d'une amélioration incroyable du Javascript dans les prochaines années, il reste encore aujourd'hui impossible (ou alors très difficile avec des setTimeout) de faire du multi-thread avec Javascript.

    Je ne crois pas que les langages lourds sont prêts à disparaître. Je crois qu'ils ont et qu'ils auront encore beaucoup de beaux jours devant eux.
  • Uther
    Expert éminent sénior
    Intéressé(e) par ces APIs ?
    Je dirais curieux, pour le moment.
    Que pensez-vous d’application Web qui utilisent les fonctions natives d’un terminal ? Pourront-elles remplacer les applications natives ?
    Dans pas mal de cas oui.
    Je regrette juste que tout celà reste contraint par le javascript, que ce soit pour la performance ou le langage en lui même.
  • Uther
    Expert éminent sénior
    Envoyé par gretro
    N'est-ce pas un peu dangereux de donner l'accès libre à toutes les applications web avec ce genre d'API ? Je sais que certaines sécurités doivent exister, mais vous savez ce qu'on dit de lois : elles sont faites pour être brisées.
    Certes, mais au final il existe le même risque avec une application native.

    Envoyé par gretro
    À moins d'une amélioration incroyable du Javascript dans les prochaines années, il reste encore aujourd'hui impossible (ou alors très difficile avec des setTimeout) de faire du multi-thread avec Javascript.
    Pour faire du multithread, il existe les web workers depuis quelques années maintenant : https://developer.mozilla.org/En/Using_web_workers
  • gretro
    Membre averti
    Envoyé par Uther
    Certes, mais au final il existe le même risque avec une application native.
    Je suis d'accord, mais il me semble que la demande d'autorisation est plus formelle sur des applications natives qui doivent être téléchargées et qui demandent (normalement) de lire le fichier MANIFEST pour savoir de quelles autorisations disposera l'application. Dans le cas d'un WebAPI, simplement accéder à l'adresse serait un portail sur une potentielle faille. J'ai donc mes réserves, mais si c'est bien encadré par une sécurité suffisante, ça peut passer et être excessivement bien accueilli.

    Envoyé par Uther

    Pour faire du multithread, il existe les web workers depuis quelques années maintenant : https://developer.mozilla.org/En/Using_web_workers
    Ah oui, je les avais oublié eux. Quand j'avais eu à faire du travail lourd en Javascript, je devais m'assurer qu'il soit compatible avec IE8, et j'avais donc écarté cette possibilité. . Merci pour l'info, je crois que je vais me renseigner à leur sujet. Ça semble bien intéressant tout ça.
  • Uther
    Expert éminent sénior
    Envoyé par gretro
    Dans le cas d'un WebAPI, simplement accéder à l'adresse serait un portail sur une potentielle faille. J'ai donc mes réserves, mais si c'est bien encadré par une sécurité suffisante, ça peut passer et être excessivement bien accueilli.
    Les fonctionnalités qui présentent un risque de sécurité, comme le GPS, nécessiteront évidement une validation.
    Envoyé par gretro
    Ah oui, je les avais oublié eux. Quand j'avais eu à faire du travail lourd en Javascript, je devais m'assurer qu'il soit compatible avec IE8, et j'avais donc écarté cette possibilité. . Merci pour l'info, je crois que je vais me renseigner à leur sujet. Ça semble bien intéressant tout ça.
    En effet c'est perdu pour toi, IE est le seul navigateur qui ne les supporte pas. Ca devrait arriver avec IE 10.
    Envoyé par pitbull78
    Euh, ça existe déjà ... PhoneGap
    C'est quand même assez différent dans la philosophie :
    - Phonegap permet de réaliser des application natives alors que le but des WebAPI est d'étendre les possibilités des navigateurs.
    - WebAPI est en cours de standardisation par le W3C.
  • camus3
    Membre éprouvé
    En effet c'est perdu pour toi, IE est le seul navigateur qui ne les supporte pas. Ca devrait arriver avec IE 10.
    La plupart des navigateurs mobiles ne supportent pas les web-workers non plus donc les traitements "lourds" devraient être exécutés coté serveur.
  • pitbull78
    Membre actif
    Euh, ça existe déjà ... PhoneGap