Linux E X P R E S

Facebook

Deset nástrojů pro vývoj aplikací pro GNOME

vyvoj_gnome.png

Seznamte se s deseti nástroji vhodnými k vývoji v (respektive pro) GNOME. Tři z nich se uplatní při vlastní tvorbě, čtyři další slouží k následnému ladění a profilování, jedním nástrojem je verzovací systém a jeho klient a nakonec upozorňuji na pomůcku pro překlad uživatelského rozhraní.


V jakém jazyce?

Při vývoji pro prostředí GNOME zřejmě budete přistupovat k běžným knihovnám a rozhraním této platformy. Uvedu několik známých příkladů.

  • GTK widgety

  • Cairo – knihovna pro 2D grafiku

  • Pango – řešení pro písma

  • GNOME Keyring – rozhraní pro přístup do klíčenek

  • GStreamer – multimediální framework

  • D-Bus – prostředek komunikace mezi procesy

  • GVfs – virtuální souborový systém

Vzhledem k existenci nejrůznějších bindů knihoven připadají v úvahu všechny významné jazyky pro vývoj desktopových aplikací. Možnost volby jazyka je tedy široká a rozhodování spíše závisí na vývojářových preferencích a charakteru projektu. Často se dokonce pro různé části volí odlišné jazyky. Například se kritické jádro aplikace napíše v C a C++, zbytek aplikace se rychle naskriptuje v Pythonu a nakonec se celá aplikace spojí přes Python/C API.

Bind znamená v tomto kontextu způsob, kterým můžete použít knihovny napsané v jednom jazyce v jazyce jiném.

Nejpoužívanějším jazyky na platformě GNOME jsou pravděpodobně C, C++, JavaScript, Python, C# a Vala.

Anjuta

Anjuta je integrované vývojové prostředí (integrated development environment) pro jazyky C a C++, které je určeno speciálně pro použití v GNOME. Prostředí Anjuta spolupracuje s níže popisovaným návrhářem Glade a nápovědou Devhelp.

Anjuta Anjuta

Glade Interface Designer

Glade je designer grafického uživatelského rozhraní, který umožňuje naklikat si kompletní vzhled uživatelského rozhraní ve WYSIWYG editoru, určit základní chování komponent (např. politiku získávání fokusu) a pojmenovat obsluhy událostí a signálů. Nová verze Glade, program glade-3, má poměrně unikátní vlastnost, která umožňuje plně izolovat vývoj uživatelského rozhraní od vývoje funkční logiky aplikace. Návrhář glade-3 totiž vůbec nezasahuje do zdrojových kódů, ale exportuje (utilita gtk-builder-convert) projekt do speciálního XML souboru. Ve zdrojových kódech programátor jen předá cestu k XML souboru popisují uživatelské rozhraní příslušné funkci v rozhraní GtkBuilder. Následně se automaticky vytvoří toto uživatelské rozhraní. Mezi výhody glade-3 patří fakt, že vývojář uživatelského rozhraní nemusí rozumět použitému programovacímu jazyku, při zkoušení další verze uživatelského rozhraní není potřeba provádět kompilaci a uživatelské rozhraní lze snadno upravit přepsáním deklarací v běžném textovém editoru.

Glade Glade

Geany

Geany je populární textový editor, který v sobě integruje základní funkce vývojového prostředí. Geany nabízí například našeptávač, skládání částí kódu (folding), podporu projektů a rovněž dokáže zvýrazňovat syntaxi pro jazyky C, C++, Java, JavaScript, PHP, HTML, CSS, Python, Perl, Ruby, Pascal nebo Haskell. Geany integruje funkce pro přeložení / sestavení a umožňuje velmi specifické přizpůsobení programátorovým potřebám (například integraci profilovacího nástroje Valgrind, nebo jakéhokoli jiného).

Odteď stačí použít položku v nabídce Sestavit Odteď stačí použít položku v nabídce Sestavit

Více o tomto textovém editoru se dočtete v článku Geany: Napůl skvělý editor, napůl vývojářské prostředí.

Geany Geany

Alleyoop

Alleyoop je grafické rozhraní k nástroji Valgrind pro GNOME. Valgrind umožňuje debugování (ladění) a profilování. Sledovaný program se de facto spouští ve virtuálním stroji za pomoci just-in-time kompilace, což umožňuje velmi detailní sledování různých aspektů běhu aplikací. Přístup Valgrindu k debugování však vede ke snížení rychlosti vykonávání na zlomek rychlosti oproti běžnému nativnímu vykonávání aplikace. V Alleyoopu lze snadno Valgrind nastavovat pomocí grafického rozhraní.

Alleyoop Alleyoop

D-feet

Samotný Linux poskytuje různé prostředky pro komunikaci mezi procesy. Jedná se například o posílání signálů, sdílenou paměť, zamykání souborů, roury, sokety... Společnost Red Hat vyvinula speciálně pro účely desktopových aplikací systém D-Bus. Tento systém má v GNOME nahradit dosluhující dřívější Bonobo server. Pokud poptáváte systém pro sledování provozu na D-Busu, můžete využít debugger D-feet.

D-feet D-feet

Nemiver

Nemiver je grafický debugger pro jazyky C a C++, který je navržen speciálně pro GNOME. Jako backend slouží běžný GNU Debugger (gdb).

Nemiver Nemiver

Sysprof

Aplikace Sysprof k problému debugování a profilování přistupuje jinak než Valgrind. Klíčové části Sysprofu se spustí v samotném jádře ve formě jaderného modulu, který se periodicky probouzí a z jádra „snímkuje“ sledované hodnoty. Nenastává tak degradace výkonu laděné aplikace, otevírá se možnost sledovat a ladit více aplikací najednou jako funkční celek, lze přesně sledovat čas... Na rozdíl od zpomalujícího Valgrindu se Sysprof stává ideálním řešením třeba v situaci, kdy budete ladit celkový výkon několika spolupracujících serverových procesů na realistické hodnoty latencí vstupně/výstupních operací.

Sysprof vyžaduje zavedení jaderného modulu Sysprof vyžaduje zavedení jaderného modulu

Sysprof Sysprof

Git a Gitg

Při vývoji jistě oceníte nástroje pro správu a ukládání různých verzí zdrojových souborů, usnadňující spolupráci více vývojářů, umožňující sdílení projektu... Existuje mnoho různých verzovacích systémů, z nichž nejznámější jsou pravděpodobně Git, Subversion, CVS, Bazaar a Mercurial. Pravděpodobně nejpopulárnějším se v posledních letech stal systém Git, který vznikl v roce 2005 pro vnitřní účely správy zdrojových kódů Linuxu. Samotné zdrojové kódy GNOME se distribuují přes oficiální Git repozitář. Grafický klient pro git v GNOME se jmenuje Gitg.

Gitg, grafické rozhraní pro Git Gitg, grafické rozhraní pro Git

Tip: Správce české domény CZ.NIC nabízí zdarma ke stažení český překlad knihy Pro Git, která podrobně popisuje tento verzovací systém.

Devhelp

Všechna rozhraní desktopového prostředí GNOME jsou dobře zdokumentovaná a k exportu dokumentace do standardizovaného formátu Docbook XML slouží GTK-Doc. Aplikace Devhelp nabízí snadný přístupu k této dokumentaci a specializované funkce k jejímu procházení. Z návrháře Glade lze Devhelp snadno spustit - přes ikonu Devhelpu umístěnou v pravém dolním rohu. Dále Devhelp zpracovává některá další témata (např. Anjutu) a obsahuje i základní představení jednotlivých technologií. Lze využít i on-line dokumentaci k API.

Devhelp Devhelp

Gtranslator

Možná jste vytvořili úspěšnou aplikaci v češtině a chcete rozšířit cílovou skupinu překladem aplikace třeba do polštiny. Možná řešíte přesně opačný problém s použitými cizojazyčnými komponentami. Při překládání a lokalizaci aplikací můžete využít specializovaných funkcí aplikace Gtranslator, což je vlastně specializovaný editor PO souborů (katalogů). Základními vlastnostmi Gtranslatoru jsou otevírání více překladů v samostatných kartách, profily a editace hlaviček PO souborů, paměť překladů, zvýraznění syntaxe, systém pluginů, kterým se dají připojit různé specializované moduly.

Gtranslator pomáhá s překladem Gtranslator pomáhá s překladem

Tipy na konec

Dokument HIG (GNOME Human interface guidelains) kodifikuje závazná pravidla návrhu uživatelského rozhraní. Díky dodržování těchto ustanovení má prostředí GNOME a v něm instalované aplikace ucelený vzhled a konzistentní ovládání. Často se do GNOME předinstalovávají aplikace nesplňující normy HIGu. Nejvýznamnější takovou aplikací se stal alternativní prohlížeč Mozilla Firefox, který v mnoha distribucích nahrazuje pro GNOME originální Epiphany. Přesto však je při vývoji nebo optimalizaci aplikací do GNOME záhodno dodržovat konvence HIG.

Může se stát, že při otextovávání uživatelského rozhraní váháte mezi výrazy „načítám“, „načítá se“, „připravuji“, „probíhá načítání“, „probíhá otevírání dokumentu“... Problematikou použití češtiny v GNOME se zabývá česká překladatelská a lokalizační skupina. Analogicky se problematikou použití jiných jazyků zabývají příslušné překladatelské skupiny.

Diskuze (6) Nahoru