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 : | Sélectionner tout |
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(); } |
Code : | Sélectionner tout |
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"}) } |
Code : | Sélectionner tout |
1 2 3 4 5 | import Enginio 1.0 EnginioModel { enginio: client query: {"objectType": "objects.image" } } |
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/