Linux Embedded

Le blog des technologies libres et embarquées

Reportage: participation au Qt Developer Days 2014

Présentation des Qt Developer Days

La conférence des Qt Developer Days est l'événement Qt majeur de l'année. C'est même un double événement : l'un en Europe (à Berlin) et l'autre en Amérique du Nord (à San Francisco les 3-5 novembre 2014).

Cette année marquait la 11ème édition de ce rendez-vous qui s'est tenu au Berlin Congress Center du 6 au 8 octobre 2014.

250 personnes de tous horizons ont répondu présentes au rendez-vous. Au programme, des conférences sur les dernières nouveautés Qt, des conférences plus techniques pour les développeurs, des démonstrations aux stands des sponsors, une soirée festive avec de la musique et des jeux, et de nombreuses rencontres autour de Qt.

Des nouveautés, des annonces, des démos... et bien plus encore !

Les différentes présentations au programme étaient réparties en 11 catégories. Et, en dehors des présentations d'ouverture et de clôture, il y avait 6 cycles de conférences en parallèle. Deux thématiques ont orienté notre choix: Qt pour l'embarqué et la portabilité sur iOS et Android.

"The Qt Crystal Ball" (Lars Knoll)

 

01_TheQtCrystalBall

Dans cette présentation Lars Knoll (le mainteneur principal de Qt) a fait part des tendances et des nouveautés Qt:

  • Digia crée une nouvelle filiale The Qt Company. Cette filiale a pour but de gérer et développer Qt ainsi que de se focaliser sur les aspects business de Qt.
  • A cette occasion un nouveau site web est en ligne: www.qt.io. Il centralise toutes les informations sur Qt et The Qt Company.
  • Une nouvelle offre commerciale à destination des développeurs mobiles indépendants: "Indie mobile licensing" (20€/25$ par mois). Plus d'informations ici.
  • Le support de Qt 4.8 est prolongé d'un an.
  • L'utilisation de Qt dans l'embarqué est en plein essor. L'expansion du marché de l'IoT (Internet of Things) sera un atout de taille pour la diffusion de Qt.

 

02_TheQtCrystalBall

Concernant la version 5.5 et les évolutions à venir:

  • Support du High DPI pour toutes les plateformes, support de Mac OS X 10.10, support des windows store apps, support de windows 10.
  • Côté Android: déploiement d'applications facilité, Qt Quick control avec style graphique Android.
  • Côté iOS: support d'iOS 8, look'n'feel natif.

Pour la 5.4:

  • Le support d'OpenGL ES a été amélioré. Le module QtOpenGL sera obsolète dans la 5.4.
  • Support du Bluetooth, côté Android il faut utiliser BlueZ (4 ou 5).

Côté Web:

  • Le nouveau module WebEngine, basé sur Chromium, remplacera Qt Webkit. Il est disponible dans la version community pour Linux, Mac OS et windows. Également disponible dans la version Qt Enterprise pour Linux embarqué.
  • Qt WebEngine est assez gourmand en ressource: WebView existera donc toujours. WebView est en cours de développement pour les plateformes Android et iOS.

Au niveau de QtCreator 3.3 à venir:

  • Amélioration de Qt Quick Designer
  • Qml profiler
  • Création de "wizard" à l'aide d'un simple script
  • "Drag" entre les documents édités et les views
  • Amélioration du support High DPI

Et pour les dates de sorties des prochaines versions de Qt et ses outils:

  • Qt 5.4:
    • La beta 5.4 devrait sortir officiellement sous peu
    • La RC à la mi-novembre
    • La version finale début décembre
  • QtCreator 3.3 devrait sortir en décembre 2014
  • Qt 4.8.7 devrait sortir au premier trimestre 2015
  • Qt 5.5 et QtCreator 3.4 devraient sortir en avril 2015

 

"Freescale and Qt help ease the next UI challenges for embedded systems"

 

03_Freescale

Freescale annonce la sortie à venir des séries i.MX7 et i.MX8. Avec de gros efforts réalisés sur la consommation électrique et les capacités graphiques.

Voici les secteurs en pleine expansion sur lesquels ils misent: l'électronique liée à la santé (self quantifying), la domotique intelligente, des voitures de plus en plus connectées (également connectées entre elles directement), le "smart wearable", l'IoT (Internet of Things).

"Device creation with Qt Enterprise Embedded" (Andy Nichols)

 

04_QtEnterprise

Cette présentation avait pour but de démontrer les capacités de prototypage rapide de Qt Enterprise, ainsi que de mettre en relief les avantages de cette version (payante) par rapport à la version Community.

Qt Enterprise propose trois composants principaux:

  • Qt lui même, enrichi par des outils aidant le prototypage rapide:
    • Clavier virtuel
    • Enterprise Qt Quick Controls
    • Outils Wifi
    • Module pour la génération de graphique 3D
    • WebEngine
  • La "plateforme":
    • Un Android "Qtisé" plus léger.
      • Support "out-of-the-box" des devices suivants: Nexus 7, Beaglebone Black, Sabre Lite, Nitrogen6x, émulateur.
    • Une distribution Linux embarqué basée sur Yocto (boot-2-Qt)
      • Support "out-of-the-box" des plateformes suivantes: Beaglebone Black, Raspberry Pi, émulateur, Toradex Apalis i.MX6, Sabre Lite, Nitrogen6x
  • Les outils:
    • QtCreator (bien sûr) customisé
    • Des "kits" pré-configurés pour certains devices
    • "One click deploy" (brancher en Usb ou Ethernet la cible à l'hôte, cliquer, l'application est déployée et elle peut être débuggée à distance, le tout de manière intégrée à Qt Creator)
    • Possibilité de faire du "remote profiling" (seulement côté QML pour l'instant, à venir en C++)
    • Emulation des devices intégrée à Qt Creator

 

"Native to Native : porting iOS and Android apps to Qt5"

 

08_PortingiOSAndroidToQt5

Midland Valley est une entreprise écossaise qui développe des logiciels de collecte de données géologiques. Ils développent une application diffusée sur les plateformes iPhone et Android ce qui les contraint à maintenir deux codes distincts. Qt est apparu comme une bonne solution pour maintenir  un code source unique. L'intérêt de cette présentation est de décrire de façon assez transparente les difficultés qu'ils ont pu rencontrer dans cette recherche de portabilité.

Tour rapide des sujets évoqués :

  • Quelques problèmes avec le debugger QML: contourné par l'utilisation de traces classiques.
  • Encore niveau debug: utilisation de xcode pour debugger.
  • Qt n'offre pas (encore ?) de fonctionnalités avancées comme la génération d'un diagrammes d'écran.
  • Développement d'un système de gestion des vues custom pour arriver à un comportement similaire à celui de xcode.
  • Pour le support des capteurs (accéléromètres, gyroscope, magnétomètre), il y a toujours du code spécifique à la plateforme.
  • Côté iOS, du code spécifique existe pour se rapprocher d'un look'n'feel plus natif.
  • Les text view natif de Qt sont limitées.

Malgré ces difficultés, le conférencier a confirmé que Qt reste une très bonne solution pour répondre au besoin de portabilité. Le fait de n'avoir plus qu'un code à maintenir vaut certainement les efforts du portage du code natif vers du code Qt...

"A Qt journey from desktop to mobile"

 

09_AQtJourneyFromDesktopToMobile

MuseScore est un éditeur de partition musicale open source (GPL v2) portable. Il utilise, comme vous aurez pu le deviner, Qt.

Derrière ce projet Open Source, il y a une entreprise du même nom basée en Belgique. Elle s'occupe, entres autres, du développement de l'application, mais également d'un site web de partage de partition au format MuseScore.

Afin de pouvoir jouer directement les partitions numériques sur un piano à l'aide d'une tablette, l'idée est venue de porter l'application sur Android et iOS. Comme le moteur de l'application fonctionnait déjà avec Qt et qu'il était nécessaire de faire une application portable, Qt s'est imposé comme la technologie mobile à utiliser.

Le développement de l'application a commencé à l'arrivée de Qt5. Ce speech présentait ce "voyage" de l'application de bureau vers l'application mobile.

Qt Enterprise fournit un outil permettant de "compiler" le QML: Qt Quick Compiler. Sur la version iOS de MuseScore le gain de vitesse était de 37% en "compilant" le QML. Hélas, le Qt Quick Compiler n'est pas disponible dans la version Community...

Plus d'information sur le blog Lasconic.

 

"Android & iOS - on the edge of Qt and Java/Objective-C"

Cette présentation avait pour but de montrer les techniques qui permettent de faire communiquer du code C++ Qt avec du Java et de l'Objective C. Ceci afin de pouvoir palier certains manques dans le cas d'un développement mobile 100% Qt.

Par exemple il n'est pas possible pour l'instant d'utiliser les fonctionnalités mobiles suivantes avec Qt:

  • Notification
  • SMS
  • Widget de verouillage d'écran
  • Widget de bureau
  • Utilisation l'API Google et Apple
  • Gestion des alarmes
  • Communication avec d'autres applications
  • Intégration de librairies tierces (facebook, google analytics, librairie de monétisation, ...)

Côté Android, on pourra utiliser du code natif dans notre application Qt à l'aide des JNI (Java Native Interface). On trouvera toutes les informations nécessaires dans QtAndroidExtras.

Côté iOS, on peut injecter du code Objective C dans du code C++ en paramétrant le système de build. Plus d'informations ici.

"Integrating mobile into your cross-platform strategy with Qt"

 

11_CrossPlatStrategy

Cette présentation était plus axée sur la stratégie mobile. Elle confirme la montée en puissance d'IoT (Internet of Things) et le fait que Qt pourra être un bon allié pour ce type de développement.

Qt supporte de plus en plus de plateformes mobiles: BlackBerry 10, Windows Phone, Sailfish OS... on peut ainsi adresser tout le marché des applications mobiles en un seul effort.

"Contributing to Qt"

 

12_ContributeToQt

Plusieurs membres importants de la communauté Qt ont animé ce débat entre les contributeurs actifs et les développeurs travaillant autour de Qt. Les échanges ont été nombreux et révélateurs du dynamisme de cette communauté.

Événements du mardi soir

Pour la partie plus ludique, voici quelques photos des événements du mardi soir.

En parallèle des 3 concerts,

06_EveningEvent

une soirée jeux avait lieu au sous-sol (billard, Duck Hunt 3D, karaoké, hockey sur table, petite voitures...).

07_EveningEventCars

Voilà pour cette conférence bien remplie et riche en rencontres, à l'année prochaine !

    • le 27 octobre 2014 à 04:00

      Merci pour le compte rendu!

      Si vous avez des meilleures photos de ma présentation, je suis preneur!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.