Sortie du module Qt Enginio en version alpha
Le cloud accessible par des API C++ et QML

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux


 Discussion forum

Le , par arnolddumas, Rédacteur/Modérateur
Alors que la sortie de Qt 5.1 est encore toute récente, c'est aujourd'hui que sort la version alpha de la bibliothèque Qt pour Enginio. Durant ces derniers mois, il a surtout été question de travail sur le côté serveur d'Enginio et de grosses améliorations ont été faites sur le plan des performances. Puis le travail sur le côté client a permis d'apporter des améliorations à la fois du côté client et serveur. Au moment présent, le travail effectué mérite une sortie publique. La version mise à jour de la bibliothèque côté client permet maintenant d'utiliser Enginio de façon plus aisée, avec une API améliorée.


Enginio (concernant la bibliothèque Qt) est juste un module Qt, ce qui facilite à la fois le développement et le déploiement. Les version sous forme de binaires ne sont pas encore disponibles au téléchargement étant donné qu'il s'agit encore d'une alpha. Il est néanmoins facile de compiler ce module à partir des sources, il suffit de lancer qmake puis (n) make (vous pouvez aussi consulter la documentation).
Vis à vis du design initial, l'API de cette alpha a été considérablement simplifiée et fait appel au module Qt JSON qui montre ici toute sa puissance. Avec une approche similaire pour tous les types de données, l'utilisateur peut traiter toutes les opérations de la même manière. Cela veut dire que le code pour lister tous les utilisateurs est le même que celui pour lister des objets d'un certain type, seul un paramètre changera. Un modèle permettant d'utiliser directement les données provenant du cloud est aussi fourni. Ce modèle vous permet d'utiliser ces données provenant du cloud dans un widget de type « vue », par exemple un QTreeView ou encore une ListView de Qt Quick. En plus de ces améliorations, de nouvelles fonctionnalités ont aussi fait leur apparition. Il est maintenant possible d'effectuer une recherche en texte intégral et de gérer finement les permissions par un système d'ACL.

Voici quelques fragments de code faisant appel à ce nouveau module :
C'est ainsi que l'on procède pour récupérer tous les objets de type « image » :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
EnginioClient *client = new EnginioClient(parent); 
client->setBackendId(QByteArrayLiteral("YOUR_BACKEND_ID")); 
client->setBackendSecret(QByteArrayLiteral("YOUR_BACKEND_SECRET")); 
QJsonObject queryObject = QJsonDocument::fromJson("{\"objectType\": \"objects.image\"}"); 
EnginioReply *reply = client->query(queryObject); 
QObject::connect(reply, SIGNAL(finished(EnginioReply*), this, SLOT(replyFinished(EnginioReply*)); 
... 
void MyClass::replyFinished(EnginioReply *reply) 
{ 
    qDebug() << "Data:" << reply.data(); 
    reply->deleteLater(); 
}
Voici l'équivalent en QML, c'est encore plus joli en utilisant JSON :

Code :
1
2
3
4
5
6
7
8
9
import Enginio 1.0 
Enginio { 
    id: client 
    backendId: "YOUR_BACKEND_ID" 
    backendSecret: "YOUR_BACKEND_SECRET" 
    onFinished: console.log("Engino request finished." + reply.data) 
    onError: console.log("Enginio error " + reply.errorCode + ": " + reply.errorString) 
    Component.onCompleted: query({"objectType": "objects.image"}) 
}
Il est possible d'utiliser la classe EnginioModel qui fonctionne bien avec la ListView de Qt Quick :

Code :
1
2
3
4
5
import Enginio 1.0 
EnginioModel { 
    enginio: client 
    query: {"objectType": "objects.image" } 
}

Ouvrez un compte Enginio aujourd'hui et essayez-le : http://engin.io ou consultez la documentation.
Cette version alpha nécessite Qt 5.1 (qui vient juste de sortir).
Nous avons besoin de votre avis. Donnez le nous sur les forums ou par mail.

Source : http://blog.qt.digia.com/blog/2013/0...qt-goes-alpha/


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :
Offres d'emploi IT
Analystes Programmeurs COBOL/Mainframe (H/F)
CDI
Technology & Strategy - Alsace - Strasbourg (67000)
Parue le 10/12/2014
Quelques pages dotnet
[Autre]
Quadri - Provence Alpes Côte d'Azur - Marseille (13000)
Parue le 12/12/2014
Développeur Javascript Mobile (H/F)
CDI
SQLI Entreprise - Ile de France - Saint-Denis (93210)
Parue le 21/11/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula