lundi 29 octobre 2012

Astuce : Capture d'ecran sur blackberry alpha device

Pressez simultanément sur volume+ et volume- de votre téléphone pour faire une capture d'ecran de la vue en cours. Vous retrouverez alors votre capture dans le dossier image

blackberry 10 SDK et Linux

Dans cette article, je vais vous expliquer comment installer et utiliser le SDK de blackberry 10 sous linux. RIM a oublié que la plus part des développeurs sont sous linux et leurs documentation est assez pauvre à ce sujet.

ETAPE 1 : Téléchargement  

Installation de VMWare Player

Si vous ne disposez pas du blackberry 10 alpha device, vous allez devoir installer le simulateur. Après avoir téléchargé le bundle, executer le comme ceci : 
  • Installer votre kernel header : 
  •  sudo apt-get install linux-headers-$(uname -r) 
  • Puis executer le bundle téléchargé
    chmod +x VMware-Player-5.0.0-812388.i386.txt 
    sudo ./VMware-Player-5.0.0-812388.i386.txt 
  •  si vous rencontrez le message d'erreur suivant au premier lancement : "Unable to starts service vmnet!" Executer le patch
     wget http://weltall.heliohost.org/wordpress/wp-content/uploads/2012/01/vmware802fixlinux320.tar.gz 
     tar xzvf vmware802fixlinux320.tar.gz 
     chmod +x patch-modules_3.2.0.sh 
     sudo ./patch-modules_3.2.0.sh 
     rm vmware802fixlinux320.tar.gz patch-modules_3.2.0.sh vmware3.2.0.patch
  • Si tout c'est bien passé, vous pouvez alors executer vmware depuis le menu : 

Installation du Simulateur 

  • Rendre exécutable et exécuter

    chmod +x BlackBerry10Simulator-Installer-BB10_0_09-386-Linux-201209241939.bin 
    sudo ./BlackBerry10Simulator-Installer-BB10_0_09-386-Linux-201209241939.bin 

  • Depuis VmWare Player, ouvrez le fichier BlackBerry10Simulator.vmdk que vous venez d'installer. Vous pouvez alors lancer le simulateur. Attention à avoir un grand ecran !

Installation de blackberry SDK

Depuis votre console, rendre le fichier executable et executer le
chmod +x installer-bbndk-bb10_0_09-linux-386-201209241008-201209241243.bin
./installer-bbndk-bb10_0_09-linux-386-201209241008-201209241243.bin

Suivez les instructions. Installer le SDK dans votre dossier personnel et pas en root, sinon vous aurez des problèmes.

Une fois l'installation terminé, depuis votre console, executer : 
cd bbndk
./bbndk-env.sh
./bbndk.sh


L’exécution de bbndk-env est à faire une fois et sert à définir des variables d'environnement. 
Si tout se passe bien, vous devez avoir ceci : 


Configurer votre blackberry 10 alpha device

Si vous avez la chance d'avoir le blackberry 10 alpha device, vous pouvez compiler et exécuter vos applications en passant par le Wifi ou par l'USB. Pour cela, activer le mode developpeur dans : paramètre > Securité > Mode développement.
Pour le mode USB, vous devez faire en plus : Paramètre > Stockage > Connexions USB Connexion à Windows.
Maintenant, si vous voulez tester vos applications sur votre téléphone, il va falloir demander des clefs à blackberry sur ce liens https://www.blackberry.com/SignedKeys/
Dès que vous les avez reçu, nous allons pouvoir faire notre première application ! 

Astuce : Quelle libraire ajoutée ?

Une petite astuce , lorsque vous utilisez le framework cascade . N'oubliez pas de lier vos librairies pour utiliser certaine classe. Par exemple, la class JsonDataAccess documentée ici : https://developer.blackberry.com/cascades/reference/bb__data__jsondataaccess.html
Dans la documentation vous pouvez lire : #include <bb/data/JsonDataAccess>.
N'oubliez pas alors d'ajouter dans votre fichier.pro la librarie : LIBS += -lbbdata.
Vous avez compris la règle, si vous utilisez include<bb/xxx/yyyy> ajoutez alors LIBS += -lbbxxx.
Un autre exemple : #include <bb/platform/Notification> nécessite LIBS+= -lbbplatform 

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 ! 

++