Zverejnený plán funkčnosti Qt 6

Lars Knoll, tvorca motora KHTML, projektový manažér projektu Qt a technický riaditeľ spoločnosti Qt Company, povedal som o plánoch na vytvorenie ďalšej významnej vetvy rámca Qt. Po dokončení funkcionality vetvy Qt 5.14 sa vývoj zameria na prípravu na vydanie Qt 6, ktoré sa očakáva koncom roka 2020.

Qt 6 bude vyvíjaný s ohľadom na zabezpečenie kompatibility s Qt 5, ale môžu sa vyskytnúť individuálne problémy, pretože plánované architektonické zmeny a vyčistenia nebude možné implementovať bez straty určitej úrovne kompatibility. Pre hladký prechod sa plánuje, že niektoré funkcie Qt 6 budú zahrnuté v redukovanej forme ako súčasť vydaní Qt 5.14 a Qt 5.15 LTS. Pripravený bude aj Toolkit na zjednodušenie migrácie na Qt 6.

Medzi hlavné ciele pre ďalšiu významnú vetvu patrí zosúladenie funkcionality s požiadavkami roku 2020, vyčistenie kódovej základne a zjednodušenie údržby projektov. Očakávané zmeny:

  • Významná modernizácia QML:
    • Silná podpora písania.
    • Schopnosť kompilovať QML do reprezentácie C++ a strojového kódu.
    • Možnosť plnej podpory JavaScriptu (používanie plnohodnotného JavaScriptového enginu vyžaduje veľa zdrojov, čo bráni použitiu QML na zariadeniach, ako sú mikrokontroléry).
    • Odmietnutie verzie v QML.
    • Zjednotenie dátových štruktúr duplikovaných v QObject a QML (zníži spotrebu pamäte a urýchli štart).
    • Odchod od generovania dátových štruktúr za chodu v prospech generovania počas kompilácie.
    • Skrytie vnútorných komponentov pomocou súkromných metód a vlastností.
    • Vylepšená integrácia s vývojovými nástrojmi na refaktorovanie a diagnostiku chýb v čase kompilácie;
  • Pridanie novej abstraktnej vrstvy, Rendering Hardware Interface (RHI), na zabezpečenie bezproblémového používania rôznych grafických API, vrátane OpenGL, Vulkan, Metal a Direct 3D (predtým bolo Qt iba OpenGL). Všetka existujúca infraštruktúra vykresľovania bude prevedená na používanie RHI, vrátane QPainter, Qt Quick Scenegraph a Qt3D. Plánuje sa tiež pridanie modulu Qt Shader Tools na podporu rôznych jazykov vývoja shaderov a poskytovanie krížovej kompilácie shaderov vo fáze zostavovania aj za behu;
  • Príprava jednotného API pre tvorbu užívateľských rozhraní, ktoré kombinujú 2D a 3D grafické prvky. Nové API vám umožní použiť QML na definovanie prvkov 3D rozhrania bez použitia formátu UIP. Nové rozhranie pre integráciu 3D obsahu s Qt Quick plánuje vyriešiť problémy, ako je vysoká réžia integrácie QML s obsahom z Qt 3D alebo 3D Studio a neschopnosť synchronizovať animácie a transformácie na úrovni snímok medzi 2D a 3D. Kombinované vnorené 2D a 3D vykresľovanie bude implementované pomocou nového vykresľovacieho jadra. Ukážka nového Qt Quick s podporou 3D sa očakáva vo vydaní Qt 5.14;
  • Pridanie nástrojov na spracovanie aktív súvisiacich s grafikou v čase kompilácie, ako je konverzia obrázkov PNG na komprimované textúry alebo konverzia shaderov a sietí do optimalizovaných binárnych formátov pre špecifický hardvér;
  • Vloženie jednotného enginu pre témy a štýly, ktoré vám umožní dosiahnuť vzhľad aplikácií založených na Qt Widgets a Qt Quick, natívnych pre rôzne mobilné a desktopové platformy;
  • Zjednotenie nástrojov na tvorbu používateľského rozhrania. Aby sa predišlo duplicite funkčnosti a prerušeniu dodávky dvoch samostatných produktov, očakáva sa, že funkcionalita Qt 3D Studio bude integrovaná do Qt Design Studio, ktorého mnohé podsystémy a rámec pre pripojenie pluginov sú postavené na rovnakej kódovej báze ako Qt Creator.
    Qt Design Studio tiež plánuje poskytovať vysokokvalitnú integráciu s balíkmi na vytváranie obsahu, ako sú Photoshop, Sketch, Illustrator, Maya a 3D Max. Hlavné jazyky podporované v jednotnej vývojovej sade sú C++, QML a Python. Zjednotenie tiež znamená možnosť pristupovať k nástrojom na návrh rozhrania z Qt Creator a poskytnúť dizajnérom rozhrania možnosti vývojárskych nástrojov, napríklad kompiláciu projektu alebo testovanie aplikácie na zariadení;

  • Bolo rozhodnuté použiť CMake namiesto QMake ako systém zostavovania. Podpora pre vytváranie aplikácií pomocou QMake zostane zachovaná, ale samotné Qt bude vytvorené pomocou CMake. CMake bol vybraný, pretože tento súbor nástrojov je široko používaný medzi vývojármi projektov C++ a je podporovaný v mnohých integrovaných vývojových prostrediach. Vývoj montážneho systému Qbs, ktorý tvrdil, že je náhradou za QMake, prerušená;
  • Prechod na štandard C++17 počas vývoja (predtým sa používal C++98). Qt 6 plánuje implementovať podporu mnohých moderných funkcií C++, ale bez straty spätnej kompatibility s kódom založeným na minulých štandardoch.
  • Schopnosť používať z C++ niektoré funkcie ponúkané pre QML a Qt Quick. Predovšetkým bude predstavený nový systém vlastností pre QObject a podobné triedy. Do jadra Qt bude z QML integrovaný engine pre prácu s väzbami, čo zníži záťaž a spotrebu pamäte pre väzby a sprístupní ich všetkým častiam Qt, nielen Qt Quick;
  • Pokračujúca práca na rozšírení podpory pre ďalšie jazyky, ako sú Python a WebAssembly;
  • Reštrukturalizácia rozdelením na menšie komponenty a zmenšením veľkosti základného produktu. Vývojárske nástroje a vlastné komponenty budú poskytované ako doplnky distribuované prostredníctvom nového katalógového obchodu. Na distribúciu budú akceptované aj doplnky ku Qt od vývojárov tretích strán, bezplatné aj platené.

Zdroj: opennet.ru

Pridať komentár