9
Conception Développement multi-plateformes (PC–Tablette-Smartphone) ette étude va nous permettre de développer des applications Qt pour différents systèmes numériques tels que les PCs classiques mais aussi les tablettes et les smartphones de type Android. Cela ne pourra se faire qu’en choisissant des projets de type « Qt Quick Application ». C Avant de réaliser ce type de développement, je vous invite dans un premier temps à voir comment installer correctement QtCreator avec les différents outils nécessaires à la compilation, mais également tout ce qui concerne l’environnement « Android ». Installation des compilateurs GCC our commencer, nous allons installer tous les outils de compilation indispensables pour le poste Linux, notamment le compilateur pour produire des logiciels sur le poste local. Nous en profitons pour installer également le compilateur pour générer des programmes qui seront exécutés sur un système embarqué Raspberry (compilation croisée) . P Tout les outils de développement se trouvent dans le paquets « build-essential », mais en réalité, nous avons besoin de deux types de paquet pour les deux types de compilateurs. Lorsque nous utilisons le « Gestionnaire de logiciels », nous voyons apparaître les deux types de paquets à installer. D’une part, le paquet « Build-essential », qui permet de compiler des programmes pour l’ordinateur hôte, d’autre part « Crossbuild-essential-armfh » qui va nous servir pour compiler les programmes pour l’informatique embarquée Raspberry. Installation de la librairie Qt et de l’EDI QtCreator ans l’environnement LInux, nous allons procéder de deux façons différentes, d’une part récupérer sur le site le pack complet avec la librairie Qt avec son EDI, mais nous allons aussi installer la librairie Qt en annexe au travers des paquets fournis par la distribution, ainsi nous pourrons déployer nos programmes sur d’autres postes informatiques. D ATTENTION : Dans ce cas de figure, il faut également installer, en annexe, le paquet correspondant à la conception d’IHM avec la librairie graphique OpenGL. Pour cela tapez la commande suivante : sudo apt-get install libgl1-mesa-dev L’installation des paquets se fait au travers du « gestionnaire de logiciels » (il est bien sûr possible de le faire en ligne de commande sudo apt-get install). Cette deuxième démarche est plus adaptée à une installation sur l’ensemble d’un parc informatique, puisque nous pouvons installer uniquement la librairie Qt sur tous les postes, sans nous préoccuper de l’EDI QtCreator. Ce dernier sera installé uniquement sur le poste de développement dédié à la génération des exécutables. BTS SN-IR Page 1/9

Conception Développement multi-plateformes (PC–Tablette

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

ette étude va nous permettre de développer des applications Qt pour différents systèmes numériques tels que les PCsclassiques mais aussi les tablettes et les smartphones de type Android. Cela ne pourra se faire qu’en choisissant des

projets de type « Qt Quick Application ».CAvant de réaliser ce type de développement, je vous invite dans un premier temps à voir comment installer correctement QtCreator avecles différents outils nécessaires à la compilation, mais également tout ce qui concerne l’environnement « Android ».

Installation des compilateurs GCC

our commencer, nous allons installer tous les outils de compilation indispensables pour le poste Linux, notamment lecompilateur pour produire des logiciels sur le poste local. Nous en profitons pour installer également le compilateur pour

générer des programmes qui seront exécutés sur un système embarqué Raspberry (compilation croisée). PTout les outils de développement se trouvent dans lepaquets « build-essential », mais en réalité, nousavons besoin de deux types de paquet pour les deuxtypes de compilateurs.

Lorsque nous utilisons le « Gestionnaire de logiciels »,nous voyons apparaître les deux types de paquets àinstaller. D’une part, le paquet « Build-essential », quipermet de compiler des programmes pour l’ordinateurhôte, d’autre part « Crossbuild-essential-armfh » qui vanous servir pour compiler les programmes pourl’informatique embarquée Raspberry.

Installation de la librairie Qt et de l’EDI QtCreator

ans l’environnement LInux, nous allons procéder de deux façons différentes, d’une part récupérer sur le site le packcomplet avec la librairie Qt avec son EDI, mais nous allons aussi installer la librairie Qt en annexe au travers des

paquets fournis par la distribution, ainsinous pourrons déployer nos programmessur d’autres postes informatiques.

D

ATTENTION : Dans ce cas de figure, il fautégalement installer, en annexe, le paquetcorrespondant à la conception d’IHM avec lalibrairie graphique OpenGL. Pour cela tapezla commande suivante : sudo   apt­getinstall libgl1­mesa­dev

L’installation des paquets se fait au travers du« gestionnaire de logiciels » (il est bien sûrpossible de le faire en ligne de commandesudo apt­get install).

Cette deuxième démarche est plus adaptée àune installation sur l’ensemble d’un parcinformatique, puisque nous pouvons installeruniquement la librairie Qt sur tous les postes,sans nous préoccuper de l’EDI QtCreator.

Ce dernier sera installé uniquement sur leposte de développement dédié à lagénération des exécutables.

BTS SN-IR Page 1/9

Page 2: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

Préoccupons nous maintenant du pack complet récupéré sur Internet. Je vous propose de tout installer dans un répertoire quicomportera tout ce qu’il faut pour faire du développement sur Android (voir juste après).

Plateforme Android

our réaliser des applications qui s’exécuteront sur nos smartphones, vous devez également récupérer tout se quiconcerne le développement Android, avec la partie principale codé en Java qui s’appelle « SDK Android », mais aussi

les bibliothèques sous-jacentes codées en C++ appelée « NDK Android ».P

BTS SN-IR Page 2/9

Page 3: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

Une fois que vous avez récupéré ces deux environnements spécifiques, vous les décompactez dans le même répertoire d’installationque tout à l’heure. Pour le SDK, créer un répertoire « sdk-android » à l’intérieur duquel vous placez le répertoire « tools » précédemmentdécompacté (le SDK est loin d’être complet, il va s’enrichir au fur et à mesure de ce que nous aurons besoin, plusieurs répertoires vontalors apparaître).

Installationssupplémentaires

our exploiter les fonctionnalités d’Android, vous devez impérativement installer la JDK (Java Development Kit) puisquel’ensemble des applications des smartphones ou des tablettes sont conçues au travers du langage Java. Vous devez par

contre choisir la version officielle de Oracle version 8. PVoici ci-dessous les commandes à suivre :> sudo add-apt-repository ppa:webupd8team/java> sudo apt-get update> sudo apt-get install oracle-java8-installer> sudo apt-get install oracle-java8-set-default

Pour la dernière version de Linux Ubuntu 18,04 ou Linux Mint 19, vous devez éventuellement remettre en place le certificat Java> sudo dpkg --purge --force-depends ca-certificates-java> sudo apt-get install ca-certificates-java

Suivant le cas, vous devez faire en sorte que l’émulateur de smartphone puisse exploiter pleinement l’accélération matérielle de votreordinateur. Pour cela, vous pouvez suivre les commandes suivantes :> sudo apt-get install cpu-checker> kvm-ok> sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils ia32-libs-multiarch

Il peut être demandé de donner les autorisations nécessaires pour exploiter pleinement le système « KVM » :> sudo usermod -a -G kvm manu> sudo chgrp kvm /dev/kvm> sudo nano /etc/udev/rules.d/60-qemu-kvm.rules.... KERNEL=="kvm", GROUP="kvm", MODE="0660"> sudo reboot

Pour lancer éventuellement l’émulateur avec l’accélération matérielle associée au processeur :$ sdk-android/emulator/emulator64-x86 -avd nom_avd -qemu -m 2047 -enable-kvm

Configuration de Qt Creator

ous pouvons dès lors régler QtCreator pour qu’il puisse prendre en compte les différents éléments qui vont nouspermettre de réaliser des applications « Android ». Tout se passe au travers de la rubrique « Options » du menu

« Outils ».N

BTS SN-IR Page 3/9

Page 4: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

BTS SN-IR Page 4/9

Page 5: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

Vous devez rajouter tout ce qu’il faut pour développer des applications suivant la version d’Android et prévoir également un émulateurqui nous permettra de tester nos programmes sans notre smartphone. Une fois que toutes ces installations sont terminées, vouspouvez créer un smartphone virtuel dans la rubrique AVD (Android Virtual Device).

Vous voyez apparaître sur la gauche le smartphone virtuel. Pensez à le régler comme vousle faites normalement avec un vrai smartphone, notamment le choix de la languefrançaise.

À la suite de toutes ces différentes configurations, dans la page suivante, vous voyez lesdifférents kits de développement pour exploiter nos applications « Qt Quick » : pour lesPCs classiques, pour vos smartphones et pour le smartphone virtuel.

BTS SN-IR Page 5/9

Page 6: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

Pour finir, dans la même boîte à outils, nous profitons-en pour faire les derniers réglages :

BTS SN-IR Page 6/9

Page 7: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

Première application Qt Quick

l’issue de toute cette phase deconfiguration, je vous propose de

réaliser un premier projet qui affiche unsimple texte de bienvenue et qui,lorsque nous cliquons dessus, nousdira au-revoir et l’application seterminera d’elle-même au bout de 2secondes. Cette application devrafonctionner sur n’importe quel systèmenumérique : PC classique, smartphone(normal ou virtuel).

À

La seule solution qui permet de faire desapplications pour plusieurs types desystèmes numériques est de prendre unprojet de type Qt Quick.

Vous devez d’ailleurs choisir lesdifférentes cibles qui vous intéressent.

BTS SN-IR Page 7/9

Page 8: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

Ce type de projet est intéressant puisqu’il est structuré suivant le modèle de conception MVC (Modèle, Vue et Contrôleur). Ce type demodèle permet de bien séparer l’aspect visuel, décrit ici avec du QML, du traitement de fond (Contrôleur) qui est codé à l’aide de classesC++ qui sont en relation directe avec la ou les vues. Généralement, la partie « Modèle » permet de se mettre en relation avec des basesde données qui sera traité également à l’aide de classes C++, ce que nous appelons des entités (objets persistants).

Ce type de projet respecte cette architecture et le programme principal s’occupe de lancer la vue principale.

ans ce projet, tout le code se situe dans la vue représentée icipar le fichier « main.qml » (remarquez au passage l’utilisation

du mécanisme de ressources « qml.qrc »). DLa structure d’un document QML ressemble à la fois à du CSS, maissurtout à un document JSON puisque nous remarquons des imbrications,seuls les guillemets n’apparaissent pas.

Les noms de chaque élément constituant ce document ressembleétrangement aux composants que l’on connaît avec les « Widgets ». Parexemple, au lieu d’avoir QWindow, nous avons Window, au lieu de QTimer,nous avons Timer.

En réalité, tous ces éléments sont les classes que nous avons déjà vusdans les projets classiques et nous agissons directement sur leurspropriétés respectives (attribut avec les deux méthodes accesseur etmutateur).

Remarquez aussi la présence d’identifiant « id » qui permet de nommerl’objet afin de pouvoir l’utiliser par la suite par un autre composant.

BTS SN-IR Page 8/9

Page 9: Conception Développement multi-plateformes (PC–Tablette

Conception Développement multi-plateformes (PC–Tablette-Smartphone)

Voici les résultats obtenus suivant le type de cible. Attention, il faut que lesmartphone virtuel soit déjà lancé si vous désirez utiliser l’émulateur.

Pour votre vrai smartphone, vous devez autoriser le mode débogage et le branchersur une prise USB de libre.

Vous pouvez concevoir votre vue en mode « Design » comme cela vous est montré ci-dessous. Vous pouvez même avoir lesdeux modes de conception simultanément.

BTS SN-IR Page 9/9