mercredi 24 octobre 2012

Qt + blackberry 10 = cascade

Tiens, et si j'ouvrais un blog pour vous faire partager mon apprentissage de ma librairie préféré Qt4 avec un nouveau venu qu'est Blackberry 10(bb10) , la prochaine monture de RIM.
En effet, Blackberry10 le nouvelle OS de RIM pour concurrencer Apple et Google, se base maintenant sur Qt4, comme nokia (en espérant ne pas finir comme eux...) à travers une API appelé cascade. Lorsque j'ai entendu ça, j’étais aux anges.. J'ai vite déchanté en voyant comment RIM a mis la main dans la cambouille en supprimant un tas de features de Qt pour le meilleur mais surtout pour le pire... Donc pour les fans incontestés de Qt, vous verrez que tous les composants magique QML , comme Rectangle  XMLListModel  ont disparu laissant place à une nouvelle architecture et de nouveaux composants souvent moins "magique" que le QML d'origine . En effet, contrairement à la philosophie de Qt qui est de garder le C++ pour la logique et QML pour le rendu, la nouvelle architecture de cascade consiste à pouvoir faire la même chose en C++ et en QML. Les avantages de ce changement, c'est un moteur de rendu plus puissant basé sur un sceneGraph. (voir Qt5) Et un système de layout , chose que ne proposait pas qt-component. En contrepartie, c'est toute la magie du QML qui est perdu.
Voici un exemple de code en QML et en C++ :

 A travers de nombreuses incohérence dans le code design, on s’aperçoit vite que ce n'est pas "cute".  Mais on s'y fait vite. A vrai dire, l'interface de bb10 est tellement agréable que je les excuses sur ce point.
Interface cascade

 Le vrai défaut de cascade, c'est surtout son éditeur, à savoir l'usine à gaz de tous les éditeurs : Eclipse.

eclipse : ou comment faire compliquer

Appelé Momentics IDE, cette éditeur n'a rien à voir à la simplicité de qtcreator.  J'ai pris un certain temps avant de comprendre comment ouvrir un projet et l’exécuter. L'editeur est tellement bourré d'action et de vue qu'on ne retrouve pas les actions importantes. De plus, le viewer QML  ne marche pas sous linux...  Un comble vue que Qt à été fondé depuis linux.
Sinon, coté C++, on retrouve les principaux modules Qt (core, network , xml, sql..) amputé du module gui. Donc pas de QWidget ou de QComboBox . Mais ça, on s'en fiche. Le seul hic , c'est l'absence de QPainter pour dessiner à la main nos elements qml par exemple. Et ça c'est un peu la loooose. Et sinon, d'autre truc bizarre, comme la class Image alors que Qt dispose déjà de QImage ou QPixmap. 

En conclusion, Cascade blackberry SDK, c'est du Qt sans être cute, contrairement à Nokia qui avait gardé Qt dans son intégralité.  
Sinon voilà le plan pour ce qui veulent suivre mon blog. Je dois réaliser une application pour les 2 prochains mois. et je vais partager avec vous mes angoisses, mes peines et mes bonheurs :D ! 

++

Aucun commentaire:

Enregistrer un commentaire