Tasker - Od první funkce k Android aplikaci (1.část)

Aplikace Tasker dlouho patřila do poměrně úzké skupiny aplikací pro OS Android, které nabízely velmi sofistikované nástroje pro uživatelské nastavení celého systému. Postupem času se tato skupina aplikací rozšiřovala, nicméně Tasker již dlouhou dobu vyčníval možností tvorby jednoduchého UI a nedávno uštědřil všem tvrdý úder v podobě možnosti exportu vlastních projektů do souboru APK, jinak řečeno - samostatné Android aplikace!

Právě možnost vytvořit si tímto způsobem vlastní jednoduchou aplikaci dává úžasnou možnost mnoha uživatelům, kteří o tomto vždy "snili", ale při pokusech s klasickými vývojářskými nástroji naráželi na neznalost programovacího jazyka a nejen na tu.

Je potřeba ovšem zdůraznit, že nelze zcela srovnávat "programování" pomocí Taskeru s plnohodnotným vývojem aplikace. Výsledek je na první pohled stejný - soubor APK, ale možnosti Taskeru vytvářet UI a přistupovat k funkcím systému nedosahují takové úrovně, aby pomocí něj mohly být vyvíjeny komplexnější programy. Je to v první řadě nástroj pro rychlou a relativně snadnou tvorbu jednodušších aplikací s nulovými, nebo velmi omezenými nároky na grafické uživatelské prostředí.

Na druhou stranu je ovšem nutné zmínit, že například díky velmi širokým možnostem využití různých druhů Google API, lze snadno dodat vaší aplikaci velmi efektní funkce, ale o tom až dále...

Když se snažím něco pochopit, je pro mě osobně nejpříjemnější mít možnost prohlédnout si podrobně popsaný příklad z praxe, takže bych vám rád takto popsal vytvoření jednoduché vzorové aplikace - nazveme jí Kde Právě Jsem a celý návod rozdělím do 3 částí:


  • tvorba grafické části aplikace
  • tvorba funkční části aplikace
  • export projektu do souboru APK

Od aplikace budeme chtít následující funkce:
  1. jediná obrazovka (scéna)
  2. zobrazit aktuální GPS souřadnice (v závislosti na přesnosti polohy ze sítě i bez použití GPS)
  3. zobrazit aktuální adresu
  4. zobrazit náhled mapy s aktuální polohou, který po kliknutí otevře aplikaci Mapy na aktuální poloze
  5. tlačítko, kterým se aktuální GPS souřadnice zkopírují do schránky
  6. tlačítko, kterým se aktuální adresa zkopíruje do schránky
  7. tlačítko, kterým se aplikace přenese na pozadí a vytvoří v oznamovací liště notifikaci, ve které se budou v daném intervalu pravidelně aktualizovat údaje o aktuální poloze
To by myslím na takovou jednoduchou aplikaci bylo dost a můžeme se pustit do práce...

Jako první musíme v nastavení Taskeru (MENU...Preferences) v první záložce (UI) odškrtnout volbu BEGINNER MODE. Tak se nám zpřístupní všechny funkce Taskeru.



Nyní vytvoříme PROJEKT (projekt sdružuje do jednoho celku všechny profily, tasky, scény a proměnné) tak, že klikneme na jakoukoliv kartu existujícího projektu, zvolíme ADD a pojmenujeme ho tak, jak chceme, aby se jmenovala výsledná aplikace, takže v našem případě Kde Právě Jsem




1. Tvorba scény

Začneme vytvořením jediné obrazovky naší aplikace (scény). V našem projektu přejdeme na záložku SCENES a pomocí tlačítka + (vpravo dole) vytvoříme scénu. Pojmenování není nijak důležité, jen doporučuji při pojmenování prvků projektu nepoužívat české znaky, problém jsem s tím nikdy neměl, ale je to rozhodně lepší. Já zvolil název Hlavni.




Nyní se zobrazí editační okno naší scény. Po vytvoření se otevře okno v režimu náhledu scény, to znamená, že vidíme scénu v reálném měřítku. Režim náhledu a editace se přepíná pomocí ikonky lupy vpravo dole.




Pro další postup bude nyní nutné provést tyto úkony:


  • nastavit barvu pozadí - není to nutné, ale nejpraktičtější je zvolit černou (MENU...BACKGROUND COLOUR)




  • nastavit rozteč mřížky na minimální hodnotu - opět to není nutné, ale tato hodnota udává délku "skoku" prvku (elementu) scény při jeho umisťování na požadovanou pozici a zajistíte si tak maximální přesnost v umístění prvků ve scéně (MENU...GRID SIZE)
  • zhruba nastavit velikost scény - zhruba píši úmyslně, protože v tuto chvíli Tasker neumožňuje nastavit velikost scény přesně číselně ale pouze tažením jednotlivých hran do stran (je tu způsob, jak velikost nastavit přesně, ale tím vás teď nechci zatěžovat). Výsledná hodnota velikosti scény se samozřejmě bude lišit v závislosti na tom, jaké rozlišení má vaše mobilní zařízení a nebude se mu zcela rovnat, jak říkám, je to pouze hrubé nastavení
  • nyní můžeme přejít z režimu náhledu do režimu editace (ikonka lupy vpravo dole). Zobrazí se mřížka a další editační prvky

No a teď už nám nic nebrání v tom, vytvořit si UI dle potřeb naší aplikace. Vzhledem k tomu, že se jedná o činnost silně závislou na vkusu každého jednotlivce (pokud ovšem chcete aplikaci šířit dále mezi veřejnost, měla by tato činnost být ovlivněna hlavně základními grafickými zvyklostmi OS Android, teda alespoň do té míry, kam nám to Tasker umožní), použiji, pokud možno, naprosto základní podobu všech prvků (elementů) a bude na vás, jak si s nimi pohrajete.


1.1 Zobrazení GPS souřadnic

Začneme s textovým polem, ve kterém se budou zobrazovat GPS souřadnice aktuální polohy. Pro přidání prvku do scény použijeme ikonku + dole uprostřed, zvolíme prvek TEXT. Otevře se editační okno nového prvku, ve kterém najdete v různých záložkách všechny volby, které lze danému prvku nastavit. Já zůstanu u pojmenování prvku a na vás je prozkoumat zbytek a hrát si s nastavením prvku k obrazu svému. Opět doporučuji prvky pojmenovávat podle nějakého systému, který si vymyslíte, já volím způsob: druh_prvku.jmeno_sceny.ucel_prvku , takže v našem případě bude jméno vypadat takto: Text.hlavni.gps . Potvrzení se zde koná systémovou šipkou zpět.


Po návratu do editačního okna scény nalezneme nový prvek na ne zrovna ideálním místě a o ne zrovna ideální velikosti. Na řadu přichází použití funkce TOUCH MODE (ikonka ruky vlevo dole). Po kliknutí nám nabídne tři módy MOVE (umožní pohyb zvoleného prvku ručně, nebo pomocí šipek na okraji obrazovky), NORMAL (základní režim, ve kterém jsme se právě nacházeli), RESIZE (umožní nastavit rozměry zvoleného prvku ručně, nebo pomocí šipek na okraji obrazovky). Práce pomocí těchto módů je velmi jednoduchá a jistě zvládnete přizpůsobit prvek tak, aby přibližně vyhovoval našim potřebám.


U mě nakonec prvek skončil v této poloze, ale je to čistě na vás, kam si prvek umístíte.



1.2 Zobrazení adresy

Obdobným způsobem vytvoříme textové pole pro zobrazení aktuální adresy, vhodně jej umístíme do scény a také přizpůsobíme velikost, jelikož se v něm bude zobrazovat poněkud delší text, než jsou GPS souřadnice.





1.3 Náhled mapy


Nyní bychom pro zobrazení náhledu mapy mohli využít prvku MAP, ale rád bych vám právě zde později demonstroval možnosti využití Google API a proto budeme postupovat trochu jinak a pro zobrazení náhledu mapy použijeme prvek IMAGE (vše bude vysvětleno později). Opět použijeme tlačítko + dole uprostřed editoru scény a z nabízených druhů prvků vybereme IMAGE, pojmenujeme a vhodně umístíme ve scéně. Rozměry a polohu prvku si opět nastavte jak vám to bude vyhovovat, důležité ovšem je, aby měl čtvercový tvar - ve výsledku totiž bude zobrazovat náhled mapy jako statický PNG obrázek a Google Maps API poskytuje právě čtvercový obrázek, který by pak byl při zvolení jiného poměru stran deformovaný.





1.4 Tlačítko pro vytvoření notifikace a pravidelnou aktualizaci informací o poloze

Již známým způsobem přidáme další prvek do scény a vybereme druh BUTTON. V editačním okně prvku kromě jména nyní nastavíme i popis (LABEL) a barvu (LABEL COLOUR) - protože máme černé pozadí, bílá bude nejvhodnější volba. Pro nastavení barvy popisu prvku lze použít buď textové pole (pokud znáte kód barvy), nebo ikonku lupy. Poté opět prvek vhodně umístíme do scény.





1.5 Popisky textových polí

Na konec nesmíme zapomenout na popisky textových polí pro GPS souřadnice a adresu. Vytvoříme je naprosto stejně jako textová pole v předchozích případech s tím, že zde bude nutné nastavit položku TEXT (obdoba položky LABEL u prvku BUTTON).




Na posledním obrázku už vidíte, jak by měla scéna vypadat po přidání všech potřebných prvků.




Tím bych také zakončil první část tohoto návodu, která byla čistě o grafické části tvorby aplikace. V dalším díle přidáme funkční část aplikace, přiřadíme funkce jednotlivým prvkům a mimo jiného si taky ukážeme slibované využití Google API...;-)