La QtCon se d�roule au Berlin Congress Center � Berlin et remplace en quelque sorte les Qt Developer Days, tout en f�d�rant d'autres communaut�s comme VLC, FSFE ou encore KDE. Les sessions sont pour la plupart techniques et touchent � diff�rents aspects de Qt, de son d�veloppement � son utilisation. J'ai pour ma part assist� � quelques conf�rences, pour lesquelles je vous propose un compte-rendu.
� Qt on OS X � par Morten S�rvig
Une pr�sentation qui se trouvait en fait �tre une sorte d'atelier o� diff�rents employ�s de la Qt Company �taient pr�sents. Diff�rents aspects relatifs � macOS y sont discut�s.
Samuel Gaist a propos� deux s�ries de patchs sur Gerrit, afin d�impl�menter un syst�me de notification sous macOS. Cela pourrait devenir un module � part enti�re si d�autres syst�mes d�exploitation venaient � �tre support�s.
Le 32 bits devrait �tre abandonn�. Le seul cas pour lequel le 32 bits est encore n�cessaire est lorsqu'il faut lier � des biblioth�ques non disponibles en 64 bits.
Une nouvelle API est disponible sous macOS >= 10.9. Celle-ci devrait permettre d�am�liorer l'espace et l�alignement entre les composants de l'interface graphique. Typiquement, toutes les valeurs actuellement en dur dans le code pour macOS devraient pouvoir �tre remplac�es par des appels � cette nouvelle API.
Il a aussi �t� �voqu� l�int�gration du composant natif NSPopOver
� Linux perf for Qt developers � par Milian Wolff

Pr�sentation de l�outil perf du noyau Linux dans un contexte de d�veloppement d�une application reposant sur Qt pour une carte ARM. Les versions que l'on peut obtenir depuis le gestionnaire de paquets sont souvent obsol�tes. Il a donc �t� conseill� de compiler soi-m�me perf pour pouvoir disposer des derni�res fonctionnalit�s et corrections de bogues.
Milian Wollf maintient une branche personnelle du noyau Linux avec des patchs pour perf qui ne sont pas encore disponibles dans la branche officielle : www.github.com/milianw/linux.git
En tant que d�butant avec perf, on peut rencontrer plusieurs obstacles :
- des probl�mes de permissions. Il existe un script Bash qui s�assure que les diff�rents dossiers ont les bons droits pour que tout se passe correctement ;
- la variable CC doit uniquement contenir le nom du compilateur, en aucun cas des chemins vers quelque en-t�te que ce soit. Par ailleurs, clang ne fonctionne pas ;
- il faut utiliser EXTRA_CFLAGS, CFLAGS est apparemment ignor�.
QTestLib propose un support basique de perf, le nombre d�it�rations � effectuer peut �tre donn� en argument :
./my_qt_test -perf -iterations 42
Par d�faut, l�interface textuelle de perf est loin d��tre optimale, certaines informations sont redondantes, alors que d�autres, pourtant tr�s utiles au d�veloppeur, manquent :
perf reportno-children -s dso, sym,srcline -g address
flamegraph.pl permet de g�n�rer un fichier SVG, ce qui permet de visualiser facilement les endroits lents ou peu performants du code.
Le profilage des applications QML est un peu plus complexe � cause du JIT qui emp�che de remonter les appels. Cependant, avec le LBR (Last Branch Record), ce probl�me peut �tre partiellement contourn�. Avec une variable d�environnement, ce probl�me peut �tre r�solu.
QV4_PROFILE_WRITE_PERF_MAP=1 perf record call-graph lbr qml my_app.qml

� Qt 3D Basics � par Kevin Ottens
Pr�sentation de Qt 3D : ce n�est pas con�u comme un moteur de jeu, m�me si cela est totalement possible en pratique. Con�u pour int�grer du contenu 3D dans des applications reposant sur Qt, en permettant d�afficher des composants de GUI (boutons, champs de texte). Quelques explications sur l�architecture du code, qu�est-ce que le pattern ECS (Entity Component System), quels sont ses avantages dans le cadre d�un tel projet.
Quelques d�monstrations reposant sur l�interface QML, un donut que l�on peut manipuler avec la souris, un cube que l�on peut faire tourner et grossir, puis des exemples plus complexes, qui faisant partie du mat�riel de formation de KDAB, ne seront vraisemblablement pas disponibles.

Qt 3D peut aussi �tre utilis� pour effectuer des simulations physiques.
Les API C++ et QML sont identiques, chaque classe C++ QMaClasse est disponible sous le nom MaClasse en QML.
Puis les nouveaut�s � venir :


� Qt Project Status � par Lars Knoll
Rappel des progr�s accomplis depuis la sortie de Qt 5.0, une nouvelle version tous les 6 mois en moyenne. Explication sur le changement de licence. Le nombre de rapports de d�fauts ouverts avec une priorit� P0, P1 et P2 (c'est-�-dire des probl�mes relativement critiques qui touchent un grand nombre d'utilisateurs) augmente, les d�veloppeurs font face � une charge de travail tr�s importante.
Pr�sentation de COIN et de RTA (Release Test Automation), respectivement le syst�me d�int�gration continue et le syst�me de tests des installeurs g�n�r�s par le premier. Les besoins en ressources augmentent constamment au fil des nouvelles versions, avec toujours plus d'OS � supporter. La version support�e � long terme 5.6 n�arrange rien � cette situation.
Pr�sentation de Qt Lite, beaucoup de clients ont besoin d'une base plus l�g�re, avec seulement un sous-ensemble des fonctionnalit�s du framework.
Qu�en est-il de Qt 6 ? Pas avant 2019, mais s�rement plus tard. Qt 6 devrait reposer sur C++17, conserver une grande compatibilit� au niveau des sources avec Qt 5.X. Par ailleurs, la derni�re version de Qt 5.X devra �tre support�e � long terme. Dans 5.9, Python devrait faire son retour. Pour 5.10, devrait faire la part belle au � cloud � et aux services connect�s, sans que rien de concret ne soit annonc�. Cette version devrait aussi �tre l�occasion de corriger de nombreux d�tails et d�am�liorer l�exp�rience d�veloppeur.

Ensuite, Lars Knoll a pr�sent� les objectifs � long terme de Qt, module par module :
- Qt Core : all�ger, all�ger, all�ger... Certaines fonctionnalit�s devraient �tre d�plac�es dans d�autres modules. Par ailleurs, le Meta Type System et le Moc devraient occuper les d�veloppeurs, ce dernier pouvant �tre plus rapide qu�il ne l�est actuellement ;
- QtN etwork : d�tection des appareils et/ou services, zeroconf a �t� �voqu� ;
- Qt GUI/QPA : r�duire la d�pendance � OpenGL, support d�autres API graphiques comme Direct3D 12 ou Vulkan, OpenGL streaming, support de l�affichage � distance (Remote Display Support), support de Wayland pour le bureau Linux ;
- QML : possible int�gration de fonctionnalit�s issues d�ECMAScript6, �valuation paresseuse des liaisons, compilation en avance (en cours avec 5.8 et la mise en cache), am�lioration du ramasse-miettes ;
- Qt Quick : nouveau syst�me de gestion des �v�nements (d�j� en place dans 5.8), stabiliser et optimiser l'existant, hypoth�tique support de Vulkan et de la 3D sans d�pendre de Qt 3D.
Au niveau de l�outillage, cela tournait beaucoup autour de clang, tant pour compiler que pour analyser le code. La distribution de clang dans les installeurs pour Windows a �t� �voqu�e, cela permettrait d�avoir un seul compilateur pour les diff�rentes plates-formes. Le support de CMake doit par ailleurs �tre am�lior�.
Le support de Python va devenir officiel, mais il reste encore beaucoup � faire. Shiboken, l�outil qui permet de g�n�rer le code Python de lien avec l'impl�mentation C++, a du mal � g�rer la base de code qui contient de plus en plus de C++11, c'est dans ce contexte que fut �voqu� clang pour l'analyse de code. PySide devient un projet � part enti�re du Qt Project avec le Desktop en ligne de mire. Les syst�mes mobiles pourraient �tre support�s, mais ce n�est pas � l�ordre du jour.
Syst�mes d�exploitation et compilateurs support�s :
- Win8/WinRT ne devraient plus �tre g�r�s � partir de 5.9, m�me si ce n�est pas officiel ;
- VS13 devrait aussi �tre abandonn� avec 5.10 (pr�sent� comme le pire compilateur actuellement support� par Qt).
Partager