IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

Le , par arnolddumas

12PARTAGES

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 : 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();
}
Voici l'équivalent en QML, c'est encore plus joli en utilisant JSON :

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"})
}
Il est possible d'utiliser la classe EnginioModel qui fonctionne bien avec la ListView de Qt Quick :

Code : Sélectionner tout
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/

Une erreur dans cette actualité ? Signalez-nous-la !