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 !
++