Une démo des WebAPIs sur Firefox Nightly pour Android

Stéphane Moussie |

Paul Rouget de Mozilla a réalisé une vidéo de démonstration de plusieurs WebAPIs, ces interfaces de développement compatibles avec les technologies ouvertes du web. La démo a été effectuée sur Firefox Nightly pour Android et un HTC One X.

On peut voir que les WebAPIs sont capables de reconnaître le niveau de la batterie, le capteur de proximité ou bien encore de faire fonctionner la géolocalisation, l'accéléromètre, le vibreur et l'appareil photo du smartphone.

Le but du projet WebAPIs est de proposer à terme une alternative fiable aux APIs propriétaires développées aujourd'hui par chaque concepteur de système mobile par un ensemble d'APIs communes, libres et approuvées par le W3C. Les avancées de WebAPIs seront bien sûr intégrées à Boot to Gecko, l'OS mobile développé par Mozilla.

Sur le même sujet :
- Boot to Gecko attendu pour fin 2012 au Brésil
- Boot To Gecko : une interface complètement personnalisable

[Via Paul Rouget]

avatar napuconcture | 
Vivement que cela se développe, cela permettrait de supprimer et rentre interopérable une bonne partie d'apps de sites, bref rendre le web au web.
avatar Lou117 | 
@dway : pourrait-on éviter les commentaires désagréables des applemaniacs quand ça concerne de bons appareils ? "bouze de HTC", tu n'as certainement jamais eu un One X en main pour dire ça. Tu aurais dit ça sur un HTC Wildfire oui, mais là... On tape dans du très haut de gamme.
avatar djmat | 
Ok ce téléphone est plus puissant que ton iPad et ton Mac mec ! J'exagère évidemment mais c'est un smartphone qui est sorti il y a 2 mois à peine et c'est tout simplement un (voir le plus) puissant du moment et avec ICS explose n'importe quoi en terme de fluidité à part les WP avec les config les plus haut de gamme peut etre
avatar mac-fan | 
@oomu Je suis bien de ton avis mais de grâce, cessons d'utiliser ces anglicismes affreux "le point" au lieu de "l'idée" ou autre selon le contexte; et "solutionner" au lieu de "résoudre", rhaaaaa glops touguidou !
avatar eipem | 
@Yip : Si Oomu est canadien, il a raison et tu as tord. D'ailleurs, les Canadiens rient bien de nos propres anglicismes, que ce soit shopping, parking, stop, mail ou queq' chose de même ^_^.
avatar napuconcture | 
"comme tous les saints graal (java, le terminal universel, etc), "supprimer et rentre interopérable une bonne partie d'apps de sites" est un souhait d'ingénieur, pas d'utilisateurs." Non c'est un souhait d'utilisateur nin d'ingénieur et encore moins de commercial. Je veux pouvoir utiliser mon app lemonde, macgen, sur mon One X, mon Chrome, un iPhone, ma ps3. Les stupidités techniques d'éco système non interopérables sont totalement inutile et segmente de fait le marché pour le plus grand plaisir des constructeurs (racheter c'est bien !). "Les gens voudront toujours un logiciel unifié au reste, adapté à l'interface de la machine et intégré dans un éco-système de services." Prenont Xamarin avec Mono, sous OS X, Linux, iOS, Android, les interfaces ne sont pas intégrés et natives ? Ce n'est pas car des solutions techniques interopérables ont échoués que c'est une mauvaise solution. L'objectif de Mozilla, Opera, Google c'est de proposer des technologies qui se retrouveront portés par le w3c et intégrés dans les autres clients web. "Cela ne fera qu'ajouter un énième framework (sorti de nulle part sans les 15 ans de développement derrière Java et Cocoa sans parler de windows)" Bof il y a bien 10 ans de dev web derrière donc clairement aucun souçis, Javascript, Dom, CSS, ... sont maîtrises, reste ces ajouts d'api, canevas 2D, canevas GL, local storage, ... Windows 8 pour Métro utilise beaucoup le javascript, ici aussi, Gnome Shell procède de même. La c'est interopérable cela tournera à terme dans un cadre IE, Safari, Chrome, Firefox.
avatar BeePotato | 
l'utilité des WebAPI est de permettre aux sites web de se comporter un peu plus comme des Apps, mais permet aussi de transformer des webapps en applis un peu plus simplement. Actuellement on a des solutions comme PhoneGap ou Titanium qui permettent ce genre de choses et qui ajoutent justement des fonctions spéciales comme faire vibrer le téléphone. Mais même pour les sites web ça a un réel intérêt. Le web est ma plate-forme de prédilection en tant qu'utilisateur et développeur : en tant qu'utilisateur, je préfère pouvoir suivre les liens comme je le veux, ouvrir des tabs etc. En tant que développeur, je ressens des limites et je sais déjà à quoi certaines choses montrées dans la démo pourraient me servir - et je n'ai pas le temps (ni l'envie) de faire des applis. Un exemple d'utilisation : je suis sur le site de MacGé, je lis qu'il y a une keynote à 19h. Ca m'intéresse, le site affiche en fin d'article un bouton pour me proposer de m'alerter à 19h (avec éventuellement un lien sur le fil de la keynote). Pourquoi aurais-je besoin de passer par l'appli pour ça ? Et si je suis un visiteur qui découvre le site pour la première fois, je ne vais pas télécharger l'appli juste pour avoir une alerte. A la limite, je vais me la créer moi-même, ça sera bien plus rapide
avatar hozuki | 
oomu n'a pas tort. Lorsque je veux utiliser un service et que je sais que je vais l'utiliser souvent je cherche toujours à savoir s'il y a une application spécifique pour iPhone plutôt que le site web... parce que dans notre inconscient on sait très bien qu'une application dédiée sera plus optimisée et offrira une meilleure expérience utilisateur qu'une application multi plate-forme... L'utilisateur qui a un iPhone en a un peu rien à secouer que l'application marche de la même manière avec Android ou Windows Phone...
avatar napuconcture | 
"dans notre inconscient on sait très bien qu'une application dédiée sera plus optimisée et offrira une meilleure expérience utilisateur qu'une application multi plate-forme..." Pourquoi ? Les jeux sont très souvent multiplateforme en quoi ils ne sont pas optimisés ? Une apps style celle de macgé qu'elle soit en objc ou obj de Google + api web, cela fait quel différences ? Arrives tu as déterminer quels sont les applications iOS en C/C++ multiplateforme, les objc, les mono, les flash etc ... ? Si une partie des api natives sont accessibles quel est le souçis ?
avatar eipem | 
"Les jeux sont très souvent multiplateforme en quoi ils ne sont pas optimisés ?" Justement, on voit bien la différence entre un jeu PC adapté au mac via un émulateur et le jeu dont le moteur est écris en natif. C'est même tout à fait flagrant. Pour les jeux Blizzard par exemple le jeu est identique sur Mac et PC, mais le moteur du jeu est spécifiquement codé pour chaque machine. Du coup il y a des fonctions qui sont absentes selon l'OS (la capture video notamment est absente de la version PC mais l'accélération graphique est plus performante) C'est bien ce qui fait l'optimisation d'un programme pour son système.
avatar napuconcture | 
Dans le premier cas tu as un soft non multiplateforme qui passe au travers d'un émulateur Dans le deuxième cas tu as un soft multiplateforme Tu peux très bien avoir un runtime natif pour chaque plateforme et un code qui tourne dessus. .net, Java, Javascript, LUA (pour WOW) et plateformes qui ont des compilateurs JIT font justement du code natif, sauf dans les cas ou cela est contre productif.
avatar eipem | 
@lmouillart D'après ce que je comprends de ton commentaire, tu voudrais en somme que tous les programmes soient compatibles avec toutes les machines d'une certaine manière. "Les stupidités techniques d'éco système non interopérables sont totalement inutile" Ton idéal c'est donc un seul et unique langage pour toutes les machines pour faire tourner n'importe quelle application sur n'importe quelle machine... Je trouve que c'est une mauvaise idée pour de nombreuses raisons. D'abord un langage peut-être très puissant pour certaines tâches mais très mauvais pour d'autres. Et c'est souvent parce qu'il est mauvais pour une tâche qu'il peut être bon pour d'autres (par exemple le calcul des très grands nombres). Chaque noyau a ses qualités qui expriment les sensibilités de ses concepteurs. Le noyau UNIX implique certaines concessions sur le système, incompatible avec certaines fonctions (l'auto-install par exemple) mais il permet de fait une meilleur protection contre les virus. Donc il n'existe pas de solution idéale pour résoudre tous les problèmes de l'informatique. "segmente de fait le marché pour le plus grand plaisir des constructeurs (racheter c'est bien !)" Je trouve de plus ton raisonnement un peu fallacieux de dire que les boîtes font exprès de faire du code non interopérable pour forcer la fidélisation du client. Rien empêche après tout un développeur de proposer une licence unique de son programme valable pour Windows OSX et Linux, ou pour Androïd et iOS (en passant par un code de téléchargement par exemple). À terme, ton idéal signifie nécessairement un seul et unique OS pour tous. En effet, si Apple venait apporter une petite API maison qui ne plait pas à M$, c'en est fini de l'interopérabilité. C'est inacceptable.
avatar napuconcture | 
"Je trouve de plus ton raisonnement un peu fallacieux de dire que les boîtes font exprès de faire du code non interopérable pour forcer la fidélisation du client." Quand Apple bloque par une clé et rien qu'une clé l'installation d'OS X à ses PC, ou que Microsoft bloque les bootloaders des tablettes ARM pour qu'on ne puisse faire démarrer que Windows ou un système qui à un certificat. Oui c'est un verrou qui n'a aucun autre but que contraindre le client à une utilisation donnée. "Et c'est souvent parce qu'il est mauvais pour une tâche qu'il peut être bon pour d'autres (par exemple le calcul des très grands nombres)." Une grande majorité des apps d'iOS ou d'Android sont des apps de sites type macgé, marmiton, les échos, ... rien à voire avec les grands nombres. "À terme, ton idéal signifie nécessairement un seul et unique OS pour tous. En effet, si Apple venait apporter une petite API maison qui ne plait pas à M$, c'en est fini de l'interopérabilité. C'est inacceptable." Une partie des API de MS sont disponibles chez eux pour OS X : cf Microsoft Office, etc ... Une partie des API des produits apple sont disponibles chez eux pour Windows : cf Safari, iTunes, iCloud .... Mon idéal c'est que les applications que j'achète puissent fonctionner où je le souhaite, sur le système que je souhaite, normal quoi.
avatar eipem | 
"Quand Apple bloque par une clé et rien qu'une clé l'installation d'OS X à ses PC (...) Oui c'est un verrou qui n'a aucun autre but que contraindre le client à une utilisation donnée." Non, c'est un moyen de protéger son gagne-pain. Apple gagne de l'argent sur la vente de matériel et propose par ailleurs des services gratuits donc normal pour elle d'empêcher l'installation sur du matériel non-apple. M$ vend des licences et se protège aussi. De même que tous les constructeurs de consoles et de téléphones (t'as déjà essayé d'installer un Android HTC sur un Samsung ou l'inverse? C'est tout aussi impossible) "Une grande majorité des apps d'iOS ou d'Android sont des apps de sites type macgé, marmiton, les échos, ... rien à voire avec les grands nombres." Le fait qu'une grande quantité d'apps se contenterai des webAPI de mozilla n'est pas suffisant pour ne vouloir QUE ça. La majorité ne fait pas l'exclusivité. Un langage informatique est nécessairement spécialisé pour certaines tâches et tu n'y peux rien. "Une partie des API de MS sont disponibles chez eux pour OS X : cf Microsoft Office, etc ... Une partie des API des produits apple sont disponibles chez eux pour Windows : cf Safari, iTunes, iCloud ...." Certaines API peuvent fonctionner sans problème sur de multiples plateformes, ce n'est pas le cas de toutes les APIs, puisque certaines sont intimement liées à la nature du système, et là encore tu n'y peux rien. "Mon idéal c'est que les applications que j'achète puissent fonctionner où je le souhaite, sur le système que je souhaite, normal quoi." Normal oui, sauf que tu confonds le contenu et le contenant. Tu veux acheter Photoshop, ou World Of Warcraft et pouvoir UTILISER ton programme sur un Mac et/ou un PC, tu t'en fous bien au fond que le code soit le même. C'est d'une licence universelle dont tu as besoin, pas d'un langage universel.
avatar napuconcture | 
"Non, c'est un moyen de protéger son gagne-pain. " Exacte c'est un moyen artificiel permettant de distordre la concurrence en favorisant ses propres services au détriment des autres. "Le fait qu'une grande quantité d'apps se contenterai des webAPI de mozilla n'est pas suffisant pour ne vouloir QUE ça. La majorité ne fait pas l'exclusivité. Un langage informatique est nécessairement spécialisé pour certaines tâches et tu n'y peux rien." Et ? Si tu lis bien j'ai parlé d'une majorité d'apps pas toutes. "Certaines API peuvent fonctionner sans problème sur de multiples plateformes, ce n'est pas le cas de toutes les APIs, puisque certaines sont intimement liées à la nature du système, et là encore tu n'y peux rien." Lequelles ? Justement l'interêt est d'avoir une couche d'intermédiation pour s'abstraire de ces basses besognes. "Normal oui, sauf que tu confonds le contenu et le contenant. Tu veux acheter Photoshop, ou World Of Warcraft et pouvoir UTILISER ton programme sur un Mac et/ou un PC, tu t'en fous bien au fond que le code soit le même. C'est d'une licence universelle dont tu as besoin, pas d'un langage universel." Je ne confonds rien. :-) Alors, le paysage va être OS X, Windows 7, Windows 8, Windows RT, Windows 8 Phone, iOS, Android. As ton avis quelles plateformes vont être sélectionnées ? Tu vas développer 8 fois la même chose dans 8 langages ? Non, les éditeurs ne font pas ça, ils ont un socle spécifique à chaque plateforme et ils ont une base commune conséquente. Si les plateformes ne partagent pas le code une a alors priorité sur les autres, ce sera donc la majoritaire càd Windows et Android. Quel est la valeur ajouté de codé l'appli le monde pour Windows Phone, Windows RT, Android, RIM, iOS. Si une seule et même application fonctionne aussi bien ?

CONNEXION UTILISATEUR