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.
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.
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
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í.
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í.
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.
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).
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
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
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.
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
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.