7.2.2017

foto Petr Bravenec

Petr Bravenec
Twitter: @BravenecPetr
+420 777 566 384
petr.bravenec@hobrasoft.cz

V KDE4 jsem měl na jedné virtuální ploše zobrazené grafy vývoje cen svých akciových investic. V období vánoc jsem aktualizoval svůj desktop na prostředí KDE5. Můj původní plasmoid Stock Charts pro KDE4 přestal fungovat a šance na přenesení starého kódu do nového KDE5 je nulová. Proto je zde nová verze pro KDE5:

StockCharts – Plasma 5 Extension

Samotná aplikace je velmi jednoduchá a naprosto mi vyhovuje. Na jedné z pracovních ploch mám zobrazené všechny své investice (jak existující, tak i plánované) a o moc více nepotřebuji. Z uživatelského hlediska je tedy aplikace celkem nezajímavá. O to zajímavější je použitá technologie.

Prostředí KDE5 zahodilo všechny dosavadní programovací prostředky pro tvorbu udělátek na plochu a nahradila je jediným – jazykem QML. To je taky důvod, proč původní aplikace napsaná v jazyce C++ přestala fungovat a není možné ji přepsat.

QML

S pomocí Qt programuji už více než deset let, QWidgets mi pro tvorbu desktopových aplikací maximálně vyhovuje. Proto šlo QML zatím trochu mimo mne. Pokukovat po QML jsem začal v momentě, kdy jsem potřeboval vytvořit nějakou aplikaci pro mobilní telefon se systémem Android. Aplikace vytvořené v C++ jsou v prostředí Android poněkud těžkopádné, nezapadají do prostředí Androidu a těžko se přizpůsobují různým variantám zobrazení a nastavení systému. Aplikace v C++ jsou perfektní na PC, do prostředí Androidu se však naprosto nehodí.

QML je jazyk pro tvorbu uživatelského prostředí v knihovně Qt. Základní myšlenkou je oddělení zobrazovací vrstvy a výpočetní vrstvy. Tlačítka, nápisy, obrázky, seznamy a jiné různé komponenty uživatelského rozhraní jsou tvořené v jazyce specializovaném na popis uživatelského rozhraní. Vlastní funkcionalita aplikace je pak vytvořená v jazyce C++ – zde si můžete představit například výběr a ukládání dat do databáze, různé výpočty, rozeznávání kódů a podobně. Přímo v QML lze použít i JavaScript, často tak může být C++ vrstva zcela zbytečná.

Myšlenka oddělení zobrazovací a výpočetní vrstvy se mi velice líbí a je mi vlastní. Poskládány jsou takto různé webové aplikace, třívrstvé IT systémy, HTTP stránky (HTML + CSS + JavaScript) a další.

QML by se dalo přirovnat k HTML5. Avšak i když se v HTML5 dají vytvářet různé aplikace, stále jde primárně o jazyk pro popis dokumentů. Při tvorbě aplikací v HTML5 je tato orientace na dokumenty jasně patrná a velmi omezující. QML je naproti tomu jazyk určený přímo na tvorbu aplikací, disponuje mnohem bohatší paletou přípravků pro potřeby uživatelského rozhraní (layouty, datové modely, tlačítka, aktivní oblasti, napojení na C++ a spoustu dalšího).

QML je deklarativní jazyk a výrazně se liší od mého oblíbeného C++ a ze začátku pro mě bylo QML těžko uchopitelné. I když jsem s různou pomocí dokázal poskládat a uvést do produkčního stavu několik jiných QML aplikací, teprve u StockCharts přišel ten očekávaný efekt "Ahááá" a z QML se tak může stát jedna z mých oblíbených technologií.

Hobrasoft s.r.o. | Kontakt