Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Le framework Qt Web Runtime débute ici

Il permet à des applications Web d'accéder aux ressources des mobiles avec une API JavaScript

Le 2010-08-01 19:09:38, par dourouc05, Responsable Qt & Livres
Il y a peu, dès Qt 4.4 en réalité, Qt dispose de son wrapper autour de WebKit : Qt WebKit. Depuis, ce module est devenu l'un des plus utilisés de Qt ; en effet, utiliser du contenu Web est extrêmement demandé par le marché actuel. Dans les télévisions, les netbooks, les téléphones mobiles et bien d'autres périphériques domestiques, l'utilisation de l'Internet est absolument irremplaçable, l'application étant hébergée sur le Web. Il était donc temps de fournir une couche supplémentaire pour faciliter et sécuriser le développement d'applications basées sur le Web. D'où un nouveau projet pour les équipes de développement de Qt : le Qt Web Runtime, basé sur Qt et sur Qt WebKit, grâce auquel les applications Web deviendront plus facilement plus fonctionnelles.

L'un des objectifs de ce framework est de fournir un runtime Web basé sur les standards du W3C. Ainsi, vous pourrez facilement développer et déployer des applications Web sur des smartphones ou d'autres plateformes de la même manière qu'une application plus traditionnelle.

La fonctionnalité-clé ? Vous pouvez accéder au matériel (appareil photo ou accéléromètre, par exemple) et aux autres ressources de l'appareil (liste de contacts, messages...) via des API JavaScript.

En code, voici ce que donne l'accès à l'accéléromètre du périphérique :

Code javascript :
1
2
3
4
5
6
7
8
9
10
var wrtSensors = nokia.device.load("sensors");  
wrtSensors.startChannel(callback, "AccelerometerAxis", errorCallback);  
  
function callback(data) {  
       console.log("x-axis: " + data.axisX + " y-axis: " + data.axisY + " z-axis: " + data.axisZ);  
}        
  
function errorCallback(err) {  
       console.log("Ouch, " + err.message + "error code:" + err.code);  
}

Il suffit de s'enregistrer aux notifications concernant l'accélération (soit le canal AccelerometerAxis) grâce à la méthode startChannel. Ensuite, vos fonctions de rappel sont utilisées chaque fois que le capteur reçoit un signal d'accélération.

Qt fonctionnant sur toute une série de plateformes, QWR fera de même et supportera toute une variété de plateformes. En tant que partie intégrante de Qt, cette technologie sera disponible ainsi que ses sources, selon le nouveau modèle de gouvernance (qui a notamment ouvert les repository de Qt sur Gitorious).

Ce framework est actuellement assez jeune et ne dispose pas encore de toutes les fonctionnalités qu'il devrait posséder à terme ni du support de nombreuses plateformes. Cependant, selon le modèle de contribution, chaque utilisateur pourra construire ce framework, grâce notamment à des retours dessus - vous aurez une place active dans son développement.

En attendant plus de détails, vous pourrez bien sûr aller sur le forum nouvellement ouvert du Qt Developer Network - en anglais uniquement. Le forum Plateformes et ceux de la rubrique Mobiles sont bien évidemment ouverts à toute question sur le sujet - en français !

Source : The Qt Web Runtime journey begins…

Voir aussi
Le réseau de développeurs Qt en beta publique : le Qt Developer Network veut rassembler toutes les connaissances sur Qt
Télécharger les préversion de QtWRT
La rubrique Qt de Developpez.com
La rubrique Mobiles de Developpez.com
La rubrique JavaScript de Developpez.com

Et vous ?

Développez-vous des applications qui tireraient profit d'un tel framework ? Quels avantages en retireriez-vous ? Quels en seraient les inconvénients ?

Billet original
  Discussion forum
7 commentaires
  • _skip
    Expert éminent
    Je dois dire que je ne comprends pas bien de quoi il s'agit et surtout en quoi c'est différent de ce dont on dispose actuellement avec le composant WebKit de Qt.
  • dourouc05
    Responsable Qt & Livres
    La différence est assez énorme : avec QtWebKit, tu as de quoi afficher des pages Web, exécuter le code JavaScript qu'il y a dedans et c'est tout. Avec QtWebRuntime, l'application Web peut aussi accéder à de nouvelles API en JavaScript pour accéder au matériel (accéléromètre ou autres capteurs, par exemple).
  • Floréal
    Membre éclairé
    Le fait de pouvoir accéder directement aux couches matérielles n'ouvrent pas d'énormes failles de sécurité? A moins que l'utilisateur ait à donner son accord comme lorsqu'une application flash ou une applet java a besoin, sur PC, d'accéder aux périphériques...
  • dourouc05
    Responsable Qt & Livres
    Ils ne parlent pas d'accès direct : regarde le code de la news. Tu branches un callback sur un événement déclenché par le matériel. Tu ne vas pas trifouiller directement sur le matériel, tu as, comme toujours ou presque, Qt qui vient fournir une couche entre les deux.
  • _skip
    Expert éminent
    En lisant j'ai pensé que ça aurait pu être le début d'un framework RIA made in Qt. Mais en fait ça reste quand même du client lourd... Je sais pas si ce mélange entre technos de site web et applis desktop est vraiment intéressant, je me pose la question.
  • spidermario
    Membre éprouvé
    Ce code ne contient-il pas, d'ailleurs, des astérisques en trop ?
  • dourouc05
    Responsable Qt & Livres
    Envoyé par spidermario
    Ce code ne contient-il pas, d'ailleurs, des astérisques en trop ?
    En effet, elles viennent d'être retirées.