Google App Inventor – snadný vývoj aplikací pro Android

No Image-06

Koncem léta spatřil světlo světa nový projekt Googlu nazvaný App Inventor. V současnosti je stále ve fázi beta a jeho možnosti jsou zatím omezené,  přesto už teď představuje velmi zajímavý způsob vývoje jednoduchých aplikací pro platformu Android, a to i pro běžné uživatele, kteří s programováním mají jen malé nebo vůbec žádné zkušenosti.
AI_logo

V tomto článku si stručně popíšeme výhody a nevýhody současné verze App Inventoru a na závěr si v praktické ukázce na videu předvedeme, jak snadno lze nějakou aplikaci vytvořit a dostat na zařízení s Androidem. Ukázkovou aplikaci si také můžete hned stáhnout a vyzkoušet na svém telefonu.

Hlavní výhody App Inventoru

  • Vývoj probíhá přímo na webu appinventor.googlelabs.com, své projekty tak máte vždy odkudkoliv k dispozici a bez nutnosti instalace nějakých dalších nástrojů nebo ovladačů (Webová aplikace využívá AJAX, spustit si ji můžete na prakticky libovolném operačním systému (Windows, Mac OS, Linux) s moderním webovým prohlížečem (Google Chrome, MS Internet Explorer, Mozilla Firefox, Apple Safari). Pro editor kódu (Blocks Editor) se spouští samostatná multiplatformní javová aplikace v dalším okně)
  • Změny v kódu se ihned projeví také na připojeném zařízení (váš telefon s Androidem, emulátor v PC) bez nutnosti spouštění nějakého překladače nebo kopírování do zařízení. Můžete tak změnit vzhled vaší aplikace nebo dopsat kód stisku tlačítka a vzápětí si tuto funkčnost vyzkoušet na svém telefonu (pro připojení k zařízení je potřeba doinstalovat do systému tzv. App Inventor Extras)
  • Funkčnost aplikace se definuje pomocí přehledných grafických prvků v Editoru bloků kódu (Blocks Editor). Jednotlivé funkční prvky mají podobu kousků skládačky (puzzle), které do sebe zapadají povoleným způsobem, a tím uživateli i bez znalosti programování naznačují, co lze s čím propojit. K přehlednosti také přispívá barevné označení jednotlivých typů funkčních prvků – reakce na události jsou zelené, hodnoty parametrů světle modré, metody fialové atd. Editor bloků vedle kontroly správnosti syntaxe (propojení jen povolených typů na základě tvarů skládačky) kontroluje i úplnost vyplnění (zda jsou vyplněny všechny potřebné parametry, nebo nějaký kousek ještě chybí, případně leží omylem odpojen opodál)
  • Podporovány jsou i starší verze Android OS (1.5, 1.6, 2.1, 2.2), aplikacím nedělají problémy ani různá rozlišení (byť vytvořit v App Inventoru aplikaci, která by vypadala ve všech rozlišeních a poměrech stran dobře, je obtížné)
  • Instalační soubor s aplikací (APK) lze vytvořit jedním kliknutím, stejně jako vygenerovat QR kód pro snadné stažení
App Inventor – ukázkový projekt

App Inventor - ukázkový projekt

Nevýhody App Inventoru

Současná verze je BETA a je to na ní znát v několika ohledech:

  • Výsledné aplikace nejsou příliš svižné a také často “bezdůvodně” padají (příčina je v runtime App Inventoru, který je vždy součástí zkompilovaného projektu. K tomu se váže i další nevýhoda, i jednoduché aplikace mají v základu několik MB, dál už velikost tolik nenarůstá). Pád nebo dokonce zaseknutí systému mohou vyprovokovat i některé běžné operace (např. otočení displeje naležato uživatelem nebo automaticky při snímání fotografií).
  • Možnosti tvorby aplikací jsou pro běžné uživatele omezené seznamem komponent, které jsou v App Inventoru aktuálně k dispozici, protože nelze přímo psát uživatelský kód (na pokročilou manipulaci s daty, herní smyčky, prohledávání, úpravy obrázků apod. je potřeba zapomenout). V současné verzi je např. komponenta pro Twitter, takže každý uživatel App Inventoru si může jednoduše napsat vlastního klienta pro tuto službu, ale vytvořit něco podobného např. pro Facebook není v tuto chvíli možné. (Jedinou možností pro pokročilé vývojáře je využití komponenty TinyWebDB, která umí volat webovou službu. Ta se postará o kompletní zpracování požadované úlohy a aplikaci v App Inventoru už jen vrátí data, která se mají zobrazit. Několik takových webových služeb je od Googlu a dalších vývojářů k dispozici, napsat si můžete také vlastní, ale toto je už mimo možnosti běžných uživatelů (Martin Hassman si takto vyrobil klienta pro Gowallu). Další možností interakce s cizím kódem je využití komponenty ActivityStarter, která umožňuje spustit jinou aplikaci (nebo její část – aktivitu), která se v zařízení nachází, např. webový prohlížeč, seznam kontaktů, jinou vaši aplikaci)
  • App Inventor nenabízí podporu Android Marketu (což můžeme brát jako docela šikovnou vlastnost, jinak by asi hrozilo zahlcení marketu různými pokusy, byť pro přístup do marketu je potřeba ještě Developer Account). Aplikaci si tak uživatel musí nainstalovat ručně (ze souboru APK nebo po stažení přes QR kód). V telefonu proto musí mít povoleno stahování a instalaci nepodepsaných aplikací (v menu Nastavení/Aplikace zaškrtnout Neznámé zdroje)
  • App Inventor je ve fázi BETA a přístup je zatím jen pro zvané, nicméně na základě našich zkušeností tento přístup získá každý, kdo o něj na tomto formuláři požádá (přístup je aktivní během několika dní, je třeba průběžně zkoušet na webu, jestli už jej máte povolený, aktivační e-mail nemusí dorazit). Podmínkou je samozřejmě uživatelský účet u Google.
  • Čeština – bez znalosti angličtiny si uživatel příliš neškrtne. Komponenty jsou sice opatřeny názornými ikonkami, ale v editoru kódu je vždy k dispozici jen textový popis události/metody/parametru v angličtině, stejně tak je v angličtině i podrobný popis při najetí myší na blok kódu. App Inventor má také problémy s použitím české diakritiky v textech na obrazovce, nezbývá než psát bez hacku a carek.

Výhled do budoucna

  • Asi největší přínos vidím v příslibu Googlu umožnit do dalších verzí vkládání vlastních komponent (vy nebo jiný vývojář vytvoříte komponentu kompatibilní s API App Inventoru a pak ji už jednoduše použijete v projektu). Prototypování aplikací v takovém případě může být velmi efektivní – umím si představit situaci, kdy manažer projektu předvádí přímo u zákazníka na notebooku a připojeném telefonu s Androidem možnosti aplikace, a společně se zákazníkem mohou snadno provádět změny v uživatelském rozhraní a logice ovládání
  • Google také slibuje doimplementování zatím chybějících vlastností, např. podporu více obrazovek (v tuto chvíli je možné mít jen jednu obrazovku a prvky na ní skrývat, nebo měnit jejich obsah)
  • Pokud se bude App Inventor uplatňovat i pro rozsáhlejší projekty, bude nezbytné Editor kódu zpřehlednit, např. umožnit seskupovat a skrývat některé skupiny prvků (virtuální moduly) apod. (v současnosti je možné skrýt do podoby jednoho řádku alespoň celou událost)
  • Především ale bude potřeba odstranit chyby, kterými současná BETA trpí (nízký výkon, náhodné padání nebo zasekávání)

Praktická ukázka vývoje vlastní aplikace v App Inventoru


V následujícím videu si ukážeme vývoj jednoduché aplikace od úplného začátku. Aplikace bude umožňovat zobrazit na pozadí libovolný obrázek uložený v telefonu anebo právě pořízenou fotografii, a přes tento obrázek kreslit a posouvat po něm “žertovné” grafické objekty. Nezbytné varování: při pořizování fotografií a manipulaci s telefonem buďte opatrní a nepřepínejte režim obrazovky otočením telefonu (z režimu na výšku do režimu naležato). Jak bylo uvedeno v nevýhodách výše, runtime App Inventor má s tímto problém a v lepším případě aplikace spadne (ověřeno na HTC Wildfire), v horším by mohla i zaseknout systém a ten by pak vyžadoval restart. Stejně tak neručíme za případné další bugy, kterými současná beta App Inventoru oplývá.

(Video si zobrazte ideálně v rozlišení 720p a v režimu celé obrazovky. Omluvte sníženou zvukovou kvalitu mikrofonu a řečníka ;))

Google App Inventor – snadný vývoj aplikací pro Android

Google App Inventor - snadný vývoj aplikací pro Android

Výslednou aplikaci si můžete stáhnout pomocí tohoto QR kódu:

anebo pod tímto přímým linkem na instalační balíček APK.

V diskuzi uvítáme vaše názory na App Inventor obecně (zda pro něj vidíte budoucnost a u kterých cílových skupin – prototypování pro vývojáře, tvoření vlastních aplikací běžnými uživateli?), i praktické zkušenosti uživatelů neprogramátorů, kteří se rozhodnou jej vyzkoušet (jakou aplikaci byste si rádi vytvořili?).

Mohlo by vás zajímat

Komentáře (17)