A fost publicat planul de dezvoltare a funcționalității Qt 6

Lars Knoll, creatorul motorului KHTML, liderul proiectului Qt Project și directorul tehnic al companiei Qt Company, a spus a vorbit despre planurile de a crea următoarea ramură semnificativă a framework-ului Qt. După finalizarea formării funcționalității ramurii Qt 5.14, dezvoltarea se va concentra pe pregătirea lansării Qt 6, care este așteptată la sfârșitul anului 2020.

Qt 6 va evolua având în vedere asigurarea compatibilității cu Qt 5, dar nu se exclud anumite probleme, deoarece modificările arhitecturale planificate și curățarea nu vor putea fi realizate fără a pierde un anumit nivel de compatibilitate. Pentru a facilita tranziția, unele funcționalități Qt 6 sunt planificate a fi incluse într-o formă restrânsă în versiunile Qt 5.14 și Qt 5.15 LTS. De asemenea, va fi pregătit un instrument pentru simplificarea migrației către Qt 6.

Printre principalele obiective pentru următoarea ramură semnificativă se numără alinierea funcționalității la cerințele anului 2020, curățarea bazei de cod și simplificarea întreținerii proiectului. Schimbările așteptate:

  • Modernizare semnificativă a QML:
    • Sprijin pentru tipizare strictă.
    • Posibilitatea compilării QML în reprezentare C++ și cod mașină.
    • Tranzitul către suportul complet pentru JavaScript ca opțiune (utilizarea unui motor JavaScript complet funcțional necesită resurse mari, ceea ce împiedică utilizarea QML pe hardware precum microcontrolerele).
    • Renunțarea la versionarea în QML.
    • Unificarea structurilor de date duplicate în QObject și QML (va reduce consumul de memorie și va accelera pornirea).
    • Trecerea de la generarea structurilor de date în timpul execuției către generarea în timpul compilării.
    • Ascunderea componentelor interne prin utilizarea metodelor și proprietăților private.
    • Integrarea îmbunătățită cu instrumentele de dezvoltare pentru refactorizare și diagnosticarea erorilor în timpul compilării;
  • Adăugarea unei noi straturi abstracte, Rendering Hardware Interface (RHI), pentru a asigura utilizarea fără întreruperi a diverselor API-uri grafice, inclusiv OpenGL, Vulkan, Metal și Direct 3D (anterior, Qt era legat doar de OpenGL). Utilizarea RHI va fi aplicată la întreaga infrastructură de redare existentă, inclusiv QPainter, Qt Quick Scenegraph și Qt3D. De asemenea, se planifică adăugarea modulului Qt Shader Tools pentru a sprijini diferite limbaje de dezvoltare a shader-elor și pentru a asigura compilarea încrucișată a shader-elor atât în timpul compilării, cât și în timpul execuției programului;
  • Pregătirea unei API unificat pentru crearea de interfețe utilizator, combinând elemente de grafică 2D și 3D. Noua API va permite utilizarea QML pentru definirea elementelor 3D ale interfeței fără a implica formatul UIP. În noua interfață pentru integrarea conținutului 3D cu Qt Quick, se preconizează rezolvarea unor probleme precum costurile mari de integrare a QML cu conținut din Qt 3D sau 3D Studio și incapacitatea de a sincroniza animația și transformările la nivel de cadre individuale între 2D și 3D. Redarea 2D și 3D colaborativă și înglobată va fi realizată cu ajutorul unui nou motor de redare. Implementarea preliminară a noului Qt Quick cu suport 3D este așteptată în versiunea Qt 5.14;
  • Adăugarea de instrumente pentru procesarea resurselor grafice în etapa de compilare, de exemplu, pentru conversia imaginilor PNG în texturi comprimate sau pentru conversia shaderelor și mesh-urilor în formate binare optimizate pentru echipamente specifice;
  • Integrarea unui motor unificat pentru teme și stiluri, permițând obținerea unui aspect unificat al aplicațiilor bazate pe Qt Widgets și Qt Quick, nativ pe diferite platforme mobile și desktop;
  • Unificarea instrumentelor pentru crearea interfeței utilizator. Pentru a elimina duplicarea funcționalității și încheierea livrării a două produse separate, se așteaptă integrarea funcționalității Qt 3D Studio în Qt Design Studio, multe subsisteme ale cărui framework-uri de plugin-uri sunt construite pe o bază de cod comună cu Qt Creator.
    În Qt Design Studio se preconizează, de asemenea, asigurarea unei integrări de calitate cu pachetele pentru crearea de conținut, cum ar fi Photoshop, Sketch, Illustrator, Maya și 3D Max. Limbile principale susținute în uneltele unificate pentru dezvoltare sunt C++, QML și Python. Unificarea implică, de asemenea, posibilitatea accesului din Qt Creator la uneltele de proiectare a interfeței și oferirea designerilor de interfețe a unor capacități din uneltele pentru dezvoltatori, cum ar fi compilarea proiectului sau testarea aplicației pe dispozitiv;
  • Ca sistem de construire, s-a decis utilizarea CMake în loc de QMake. Suportul pentru construirea aplicațiilor cu ajutorul QMake va fi menținut, dar Qt va fi construit folosind CMake. CMake a fost ales datorită popularității sale în rândul dezvoltatorilor de proiecte C++ și este susținut în multe medii de dezvoltare integrate. Dezvoltarea sistemului de construire Qbs, care aspira să înlocuiască QMake, a fost oprită;
  • Tranziția la standardul C++17 (anterior se utiliza C++98). În Qt 6 se preconizează implementarea suportului pentru multe dintre funcționalitățile moderne C++, dar fără a pierde compatibilitatea inversă cu codul bazat pe standardele anterioare.
  • Posibilitatea utilizării din C++ a unor funcționalități oferite pentru QML și Qt Quick. De asemenea, va fi prezentat un nou sistem de proprietăți pentru QObject și clase similare. Din QML în nucleul Qt va fi integrat un motor pentru gestionarea binding-urilor, ceea ce va reduce încărcarea și consumul de memorie pentru binding-uri și le va face disponibile pentru toate părțile Qt, nu doar pentru Qt Quick;
  • Continuarea lucrărilor pentru extinderea suportului pentru limbaje suplimentare, cum ar fi Python și WebAssembly;
  • Restructurarea cu împărțirea în părți mai mici și reducerea dimensiunii produsului de bază. Instrumentele pentru dezvoltatori și componentele specializate vor fi furnizate ca suplimente, distribuite printr-un nou catalog-magazin. Suplimentele Qt de la dezvoltatori terți, atât gratuite, cât și plătite, vor fi acceptate pentru distribuție.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster