Be Qt: vývoj mobilních aplikací v Qt (1) – instalace, nastavení prostředí a Hello World

By Řezza - Last updated: Úterý, Březen 13, 2012 - Save & Share - 3 Comments

Dá se říct, že v dnešní době mobilní aplikace válcují svět. A to nejen klasické „prográmky“, ať již více či méně užitečné, ale také každá významnější akce má svou vlastní mobilní aplikaci, téměř všechna dnešní vydavatelství také nabízí svůj obsah touto formou a do mobilů proniká také televize. Dokonce i herní svět se výrazně proměnil s návratem k původním přenosným zařízením. Autoři aplikací ovšem naráží na vážný problém, kterým jsou nástroje potřebné k vývoji, často pouze přenesené do mobilního světa z „dospělých“ desktopů a určené k jiným účelům. Ačkoliv v mobilním sektoru dominuje jen pár výrobců, je vývoj pro větší škálu různých zařízení noční můrou. Zároveň z pohledu příznivců otevřeného software se často jedná o uzavřené platformy. Tohle vše se chystala změnit Nokia akvizicí norské společnosti Trolltech a jejich frameworkem Qt. Ten zahodil svůj desktopový ráz a díky technologii Qt Quick se stal mobilní platformou, která má i přes změny v Nokii nakročeno k naplnění hesla „Qt Everywhere“.

Qt v mobilním světě

Framework Qt rozhodně není v mobilním světě nováčkem – již v roce 2006 byl k dispozici Greenphone, byl to smartphone s uživatelským rozhraním zvaným Qtopia. Jednalo se o zařízení určené pro vývojáře, dodávané přímo firmou stojící za Qt. Qtopia byla tou dobou proprietární systém a kromě Greenphone se používala i ve vybraných handheldech (jedno z dnes již zapomenutých slov) různých výrobců. S otevřením zdrojových kódů bylo možné vidět část Qtopie (později Qt Extended) i na známém open source telefonu Neo Freerunner a dodnes probíhá vývoj distribuce Qt Moko – kompletně postavené na původním základu Qtopie/Qt Extended.

Greenphone s Qtopií

Greenphone s Qtopií

Vše se změnilo vstupem Nokie do Trolltechu. Nokia už dávno před tímto krokem koketovala s open source systémem – komunikátory N700 a N800 se systémem Maemo a v té době se dokončoval první mobilní telefon (či spíše mobilní počítač) N900 s uživatelským rozhraním postaveným na Gtk/Clutteru. Projekt Qt Extended byl ukončen a trollové se soustředili na Qt jak pro existující systém Symbian, tak i pro příští verzi Maema – Harmattan, který se dnes označuje jako MeeGo Harmattan. Pokračování ságy je ovšem všem čtenářům tohoto portálu známé – Nokia změnila strategii vstříc Windows Phone a Qt se tak zdálo odepsané. Za tu dobu ovšem vznikla spousta zajímavých technologií – QML s Qt Quick, Qt Mobility, Qt Creator, Nokia vydala výbornou N9, Symbian obsahuje Qt a počet dostupných aplikací dále roste i pro tento systém. Části WebOS od HP jsou postavené na Qt a QML, firma RIM oznámila podporu Qt ve svém operačním systému (hledejte Cascades) a i Nokia nadále na Qt pracuje v rámci strategie „next billion“. Qt si dnes žije vlastním životem – jako kompletně open source projekt, kde za první tři měsíce již více jak 30 procent příspěvků do zdrojových kódů pochází od nezávislých vývojářů a firem.

Náš seriál

Pojdme se tedy podívat, co Qt obnáší. Hlavní náplní tohoto dílu seriálu o použití Qt pro vývoj mobilních aplikací je příprava vývojového prostředí, jeho instalace a seznámení se s důležitými nástroji. Závěr pak bude tvořit obligátní Hello World aplikace pro systémy Harmattan (a také Symbian).

V dalších dílech se dozvíte více o samotném Qt, a to především o technologii Qt Quick s jazykem QML. Také se dozvíte o tvorbě komplexní aplikace v Qt Components, propojení s jazykem C++ a o distribucí finální aplikace do Nokia Store, případně dalších repozitářů mobilních aplikací. Samozřejmě nezůstaneme jen ve sférách mobilních aplikací, kdy se QML prolíná se známým desktopovým prostředím KDE Plasma, postaveným nad Qt. Zároveň se blíží i nová verze Qt, která dále integruje vše, co si jen představíme, do kompaktního celku se spoustou vylepšení.

Instalace Qt SDK a vývojového prostředí

Qt Creator je integrované vývojové prostředí (IDE) určené především pro vývoj aplikací v Qt od společnosti Nokia, a to přesněji její berlínské pobočky. V Qt Creatoru je možné pracovat jak na klasických (nejen) desktopových aplikacích v C++, tak v jazyce QML. Pro tento jazyk nabízí Qt Creator i grafický návrhář vzhledu a profiler. Qt Creator najdete dnes prakticky ve všech distribucích v jejich repozitářích. Ovšem v případě této volby distribuce je na uživateli, aby si nastavil zbytek prostředí, jak toolchain pro danou cílovou platformu (kde Linuxový desktop je nejjednodušší), tak ostatní nástroje, jako je Qt Simulator a podpora tvorby instalačních balíčků. Proto společnost Nokia nabízí takzvané Qt SDK – jeden velký balík, kde je vše již předpřipravené a také tomu odpovídá i jeho velikost. Pro Windows a Mac má offline instalátor přes 1,2 GB, pro Linux je zhruba poloviční. Rozdíl je způsoben distribucí Symbian toolchainu pro Windows a Mac, linuxová verze bohužel neumožňuje překlad aplikací pro tento mobilní systém. V následujícím textu si však ukážeme, jak je možné toto nepříjemné omezení obejít.

První krok instalace je stažení instalačního balíku z webu Nokie – v seriálu se předpokládá použití verze pro Linux, ale Windows i Mac verze jsou velmi podobné. Pro každou platformu existuje jak online, tak offline verze instalátoru. (Pozn.: Autor článku doporučuje právě offline verzi, to především z důvodu výpadku připojení k serverům Nokie, které autor sám několikrát zažil.) Staženému souboru nastavíme běžným způsobem práva pro spouštění (chmod +x soubor) a po jeho spuštění se objeví okno instalátoru. Ten Vás bude provázet jak při instalaci/odinstalaci součástí Qt SDK, tak i při aktualizaci na nové verze. Při prvotní instalaci je vhodné nechat nastavení instalovaných komponent na instalátoru, jednotlivé části si vysvětlíme později. Součástí tohoto nastavení budou Qt knihovny (s Qt Mobility a Qt Components), samotný Qt Creator, simulační nástroj mobilních zařízení Qt Simulator a dokumentace. Bude také připraven kompletní toolchain pro vývoj aplikací pro Harmattan. Při instalaci je také potřeba potvrdit licenční ujednání pro jednotlivé komponenty.

Instalátor Qt SDK

Instalátor Qt SDK

Po úspěšné instalaci je možné spustit vývojové prostředí přímo z instalátoru či běžně z menu aplikací pod názvem Qt Creator.

Naše první aplikace

Průvodce novou aplikací

Nyní si ukážeme, jak v Qt Creatoru začít nový projekt – mobilní aplikaci pro platformu Harmattan (tedy N9/N950). Jen malé poznámka – Qt Creator sám o sobě má českou lokalizaci, v článku však budeme používat anglickou verzi. Vývojové prostředí nabízí několik možností jak vytvořit nový projekt, buď v menu File vybereme New File or Project nebo rámci záložky Welcome/Getting Started stiskneme tlačítko Create Project. Nabídne se výběr z několika šablon – jak desktopových Qt Widget Project, tak pro nás zajímavější Qt Quick Project. A protože chceme začít psát celou aplikaci, nejen uživatelské rozhraní v Qt Quick nebo rozšíření QML v jazyce C++, zvolíme tedy volbu Qt Quick Application.

Nový projekt

Nový projekt

Následně je potřeba nastavit název projektu – píšeme (či spíše necháme si vygenerovat) jednoduchou aplikaci Hello World, takže nazvěme aplikaci hello. U názvu je dobré být již od začátku konzervativní a používat raději jen alfanumerické znaky, protože některé balíčkovací systémy mohou použití jiných znaků omezovat. Jako Qt Quick Application Type vybereme Qt Quick Components for MeeGo/Harmattan. Tak budeme moci využít předpřipravených grafických prvků pro Harmattan a bezproblémovou integraci do systému. Použití čistého Qt Quick a psaní vlastních komponent bude náplní druhého dílu seriálu.

 

Cílová platforma

Cílová platforma pro Qt Quick

V posledním kroku nastavíme cílovou platformu, pro kterou budeme projekt překládat a spouštět. V našem případě to bude Qt Simulator a Harmattan. Ten můžete zvolit, i pokud s ním žádné zařízení nevlastníte. Výsledkem bude debianní balíček, který můžete zkusit např. přes Remote Device Access. Ti, co předbíhali a nakonfigurovali si vlastní instalaci, uvidí i Remote Compiler, nabízející vzdálený překlad pro Maemo, Symbian a Harmattan. Cíle projektu se dají později změnit v záložce Projects kliknutím na plus (případně mínus pro odebrání cíle).

Následně můžeme nastavit ikonu aplikace, ale v této chvíli dáme přednost nabízené defaultní ikoně. Ikona se dá samozřejmě později změnit (pro Harmattan obyčejné PNG, Symbian je komplikovanější kvůli nutnosti využití SVG a to ještě omezené podmnožiny). Zkontrolujeme, že máme vybráno Make application boostable – aplikace pak startuje rychleji.

Nastavení cílů projektu

Výběr kompilovaných platforem

Qt Creator nakonec nabídne v rámci průvodce možnost přidat projekt do některého z vybraných verzovacích systémů (např. Git, Mercurial atd.). Pro Harmattan taky dostaneme možnost vybrat předgenerované soubory pro tvorbu balíčku, jejichž přidání odsouhlasíme. V této chvíli pro nás Qt Creator vygeneroval celou strukturu aplikace Hello World. V následujícím odstavci se na ni podíváme podrobněji.

Struktura aplikace

Qt Quick aplikace vytvořené pomocí průvodce v Qt Creatoru mají pevně danou strukturu a rozdělení jednotlivých zdrojových kódů do podadresářů. V rámci projektu můžete vidět soubory v jazyce C++, podprojekty, balíčkovací informace a především zdrojové kódy aplikace v QML.

Struktura projektu

Struktura projektu/mobilní aplikace v Qt Creatoru

Nejdůležitější součástí aplikace je projektový soubor, v našem případě hello.pro. Při běžném použití se o jeho obsah stará vývojové prostředí, ale jsou situace, kdy je potřeba ruční editace. Jedná se např. o přidání podpory vybraného Qt modulu, definice potřebné pro balíčkování pro Symbian (capabilities, UID), o kterých si povíme v jednom z následujících dílů seriálu o distribuci aplikace, atd.

Do projektu je také vložený jeden podprojekt – qmlapplicationviewer – předpřipravený prohlížeč QML souborů, který vývojáři usnadní práci s vlastním prohlížečem. Jinak je možné jak napsat si vlastní, tak i vložit QML soubory např. do desktopové aplikace. V rámci našeho seriálu budeme využívat právě tento prohlížeč, a to i z důvodu dobré integrace aplikace na mobilním zařízení (booster na Harmattanu atd.). Jelikož se jedná o automaticky dodávaný a především aktualizovaný podprojekt (IDE nabídne po aktualizaci Qt SDK), tak je dobré se vyvarovat změn jeho kódu. Prohlížeč je následně integrován do aplikace v souboru main.cpp. Zde jsou již ruční modifikace povoleny a k jejich možnostem se dostaneme v dílu o rozšiřování funkcionality Qt Quick v jazyce C++. Na ten ale prozatím můžeme zapomenout (což se může zdát podivné, jelikož celé Qt se až doposud týkalo C++).

To nejzajímavější se ovšem skrývá pod položkou QML – obsah adresáře qml/hello. Jedná se o předgenerované soubory – main.qml a MainPage.qml. Qt Components aplikace jsou složeny ze zásobníku jednotlivých stránek (komponenta Page) zobrazených v okně (komponenta PageStackWindow), které lze buď přidat na jeho vrchol (klasická push operace), či odebrat (pop). V MainPage.qml je tak definována základní stránka aplikace, která je poté instanciována v main.qml a nastavena jako prvotní stránka. Nedílnou součástí souboru jsou i importy externích komponent – obecně komponenta QtQuick a pro MeeGo Harmattan komponenta com.nokia.meego. Obojí si detailněji ukážeme v následujícím dílu o QML, Qt Quick a Qt Components.

main.qml (kompaktní verze pro zjednodušení výpisu)

import QtQuick 1.1
import com.nokia.meego 1.0
PageStackWindow {
    id: appWindow

    initialPage: mainPage

    MainPage {
        id: mainPage

        Label {
            id: label
            anchors.centerIn: parent
            text: qsTr("Hello world!")
        }
    }
}

Překládáme a spouštíme

Nyní se dostáváme k poslednímu kroku – naši aplikaci chceme vidět naživo. Qt SDK nám nabízí několik možností. Buď máme k dispozici reálný hardware s Harmattanem (či jiným systémem podporovaným v Qt Creatoru) nebo se v rámci SDK dodává QEMU obraz s předinstalovaným systémem. Další možností, kterou nyní využijeme, je Qt Simulator. Přesvědčíme se, že je vybraný – viz screenshot vlevo –, a pokud ne, klikneme na ikonku pod nápisem hello. Vývojové prostředí pak nabídne možnost volby cíle. Výhodou Qt Simulatoru je především rychlost běhu aplikace – běží nativně na systému bez nutnosti virtualizace a především nabízí možnost simulovat různá zařízení (N9, Symbian) v jejich rozlišeních, s možností rotace displeje a se simulací jejich funkcionality (jak hardware, tak například i seznam kontaktů, kalendář atd.). Podrobněji si Qt Simulator opět projdeme ve spojitosti s Qt Mobility a testováním aplikace.

Ke spuštění slouží dvě tlačítka s ikonou zelené šipky (druhá je spuštění v ladícím módu; pokud to zařízení podporuje, je také možné ladit vzdáleně, a to jak C++, tak i QML). Druhou možností je v menu Build vybrat položku Run. Odpovídající klávesová zkratka je Ctrl+R.

Hello World v simulátoru

Hello World v simulátoru

Po spuštění aplikace se zobrazí okno simulátoru s oknem aplikace umístěným ve zvoleném tématu skutečného hardware. A po stisknutí tlačítka Click here! uvidíme svou první aplikaci, která nás tímto slušně pozdraví. Jak můžete vidět – aplikace se velmi dobře integruje do systému Harmattan – používá stejný styl, spodní část obrazovky vyplňuje nástrojová lišta, a ta obsahuje menu. Ale o tom již více příště!

Be Qt: soutěž

Seriál vychází ve spolupráci se serverem AbcLinuxu.cz. Zároveň slouží jako podpora souteže Be Qt: vývoj mobilních aplikacích v Qt pro platformy MeeGo Harmattan a Symbian sponzorované společností Nokia. Hlavní cenou pro nejlepší aplikaci bude linuxový smartphone Nokia N9. V případně neočekávaného zájmu budou speciální cenou dvě vývojářské Nokia N950!

Sdílejte:

Posted in MeeGo, Openmobility, Vývoj • Tags: , , , , Top Of Page

3 Responses to “Be Qt: vývoj mobilních aplikací v Qt (1) – instalace, nastavení prostředí a Hello World”

Pingback from openMagazin 07-08/2012 | openMagazin
Time 17. 8 2012 at 10:00

[...] Be Qt: vývoj mobilních aplikací v Qt – instalace, nastavení prostředí a Hello World [...]

Pingback from Linux v mobilních zařízeních zdomácněl – přečtěte si o tom v prázdninovém openMagazinu | Linux ve škole
Time 20. 8 2012 at 09:07

[...] Be Qt: vývoj mobilních aplikací v Qt – instalace, nastavení prostředí a Hello World [...]

Comment from Andrej
Time 28. 10 2012 at 10:31

Mám ten instalátor spouštět jako root?
Spustil jsem ho jako root, po dokončení se automaticky spustil Qt Creator a vypadalo to v pohodě. Ale kdy teď spustím Qt Creator jako normální uživatel, dostávám zprávu: „cannot overwrite file /home/andrej/.config/Nokia/qtversion.xml“ a oo ukonční ~/.config/Nokia/toolChains.xml.

Write a comment


Yandex Mail.ru Google LiveJournal myOpenId Flickr claimId Blogger Wordpress OpenID Yahoo Technorati Vidoop Verisign AOL