Librairie C++ Qt5 et QML - Fonctionnalités avancées
Objectifs, programme, validation de la formation
Objectifs
Développer des applications pouvant tourner sur Windows, Mac OS, Linux, Android et les systèmes embarqués / temps réel.
Description, programmation
Rappels de Qt / QML
L’intégration entre C++ / Qt et QML / JavaScript et ses limites
La boucle d’évènement de Qt et son impact sur Qt Quick
Problèmes fréquemment rencontrés
QQmlListProperty
Threading
Types non reconnus...
Sujets avancés sur Qt Quick
Création de composants visuels en C++
Avec une base Qt Scene Graph : la solution idéale mais limitée
Avec une base QPainter : la solution de compatibilité
Le composant hybride C++ / QML : une solution largement répandue
Intégrer des images générées ou ne provenant pas d’un fichier local
Les "images provider"
Les composants spécialisés
Texture
Dessin procédural
FBO OpenGL...
Les moyens pour se passer de C++ dans certains cas
SVG généré à la volée
Canvas...
Optimisation des performances
Les pratiques permettant d’améliorer naturellement les performances du code
Le "proxying" des bindings pour éviter les goulets d’étranglement
L’utilisation de C++ à la place de JavaScript pour les traitements lourds
La résolution des noms en QML : l’épineux problème du "scoping"
Performances graphiques : éléments à prendre en compte
Les objets graphiques superflus
Les mauvaises utilisations dans les "delegates" d’une vue MVC
Les effets de bords des mauvaises utilisations de composants basiques
Image
Text...
Techniques pour rendre le code plus compréhensible
La programmation orientée flux de données
Différences avec l’orienté objet classique / naïf
Application des principes en QML et C++
Implications sur l’architecture globale
La séparation C++ / QML
Bien placer la séparation entre les deux langages
Eviter que le code QML soit pollué par de mauvaises utilisations de C++
Simplifier le code côté C++ pour qu’il ne soit pas un frein à son utilisation
Eviter les erreurs courantes
Rendre le code QML sémantiquement plus clair
Fuir les cas où JavaScript peut produire des erreurs silencieuses
Limiter au maximum la redondance dans le code, notamment entre C++ et QML
La création de composants personnalisés : l’importance du cloisonnement
Empêcher les bugs potentiels par intrusion externe dans le composant
Rendre un composant réellement réutilisable et portable pour un gain de temps
La spécialisation en cascade : un bon moyen de coder proprement et simplement avec QML
Questions restantes : une fois que la technique pure est réglée
Ces problématiques qui apparaissent en fin de projet, lorsque le produit doit être diffusé
La création de "vrais" modules de plug-ins QML
Le déploiement sur les plateformes sans système de package (Windows...)
La dynamique traduction de l’interface (Qt Linguist)
Certification (en option)
Nos tests de validation des compétences font partie intégrante du processus d’apprentissage car ils permettent de développer différents niveaux d’abstractions.
Solliciter l’apprenant à l’aide de nos QCM, c’est lui permettre d’étayer sa réflexion en mobilisant sa mémoire pour choisir la bonne réponse. Nous sommes bien dans une technique d’ancrage mémoriel.
L’examen sera passé à la fin de la formatio
Niveau de sortie information non communiquée
Métiers visés
Durée, rythme, financement
Durée 21 heures en centre
Modalités de l'alternance -
Conventionnement Non
Conditions d'accès
Modalités de recrutement et d'admission Avoir développé en C++. Avoir suivi la formation CPP-QT5IN "Librairie C++ Qt5 et QML - Initiation" ou connaître les bases de Qt Core, QML et Qt Quick.
Niveau d'entrée sans niveau spécifique
Conditions spécifiques et prérequis Aucune
Inscription
Contact renseignement RICHIR Agnès
Téléphone 0557190765
Éligibilité de cette formation au compte personnel de formation pour les salariés
Code CPF 237067 - Validité du 02/01/2019 au 31/12/2115
Périodes prévisibles de déroulement des sessions
Session débutant le : 06/07/2020
Adresse d'inscription
15 Bis Allée James Watt 33700 Mérignac
Lieu de formation
Adresse :
Organisme de formation responsable
M2I FORMATION MERIGNAC
Adresse
15 B allée James Watt 33700 Mérignac
Téléphone