Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Berkeley Humanoid Lite (Onshape, GitHub) je open source humanoidní robot. V amerických cenách jej lze sestavit do 5000 dolarů.
Jakub Jelínek oznámil vydání verze 15.1 (15.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 15. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Staronovým vedoucím zůstává Andreas Tille.
Jason Citron končí jako CEO Discordu. Od pondělí 28. dubna nastupuje nový CEO Humam Sakhnini, bývalý CSO Activision Blizzard.
Článek na Libre Arts představuje baskytarový multiefekt Anagram od společnosti Darkglass Electronics. S Linuxem uvnitř (licence, GitHub).
Městský soud v Praze vyhlásil rozsudek, který vyhověl žalobě novináře Jana Cibulky, který s podporou spolku IuRe (Iuridicum Remedium) požadoval omluvu od státu za to, že česká legislativa nařizuje operátorům uchovávat metadata o elektronické komunikaci. To je přitom v rozporu s právem. Stát se musí novináři omluvit a zaplatit náklady řízení. Především je ale součástí přelomové rozhodnutí o nelegálnosti shromažďování dat a o
… více »Americké technologické firmy Apple a Meta Platforms porušily pravidla na ochranu unijního trhu, uvedla včera Evropská komise (EK). Firmám proto vyměřila pokutu – Applu 500 milionů eur (12,5 miliardy Kč) a Metě 200 milionů eur (pět miliard Kč). Komise to oznámila v tiskové zprávě. Jde o první pokuty, které souvisejí s unijním nařízením o digitálních trzích (DMA). „Evropská komise zjistila, že Apple porušil povinnost vyplývající z nařízení
… více »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“.
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.
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.
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í.
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, a 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.
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.
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
.
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.
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.
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.
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.
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!")
} } }
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.
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ě!
Sdružení Openmobility spouští soutěž Be Qt: soutež ve vývoji mobilních aplikací pro platformy MeeGo Harmattan a Symbian. Hlavní cenou pro nejlepší aplikaci je linuxová Nokia N9.
Tento seriál vychází ve spolupráci s občanským sdružením Openmobility.
Cílem Openmobility je podporovat a propagovat otevřená řešení v oblasti mobilních technologiích v širším kontextu.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
Například když chceš dopočítávat druhé políčko dialogu, pokud uživatel zaškrtne "zachovat poměr stran".Jako jo, ale tohle v 95% případů nepotřebuju. Naopak se do toho takhle zbytečně zapojí další parsování, reflexe atd.