Pokročilý správce úkolů pro Android Tomáš Linhart D1 Description Cílem bude vytvořit aplikaci pro mobilní platformu Android, která bude sloužit ke správě úkolů. Bude možnost řadit úkoly dle metodiky GTD (Get Things Done), což znamená, že budou základní kategorie - Inbox, Today, Tomorrow, Scheduled, Someday, Completed a Trash a jiné. Půjde k ním následně přidávat různé meta informace jako jsou štítky, datumy, souřadnice, čísla, obrázky. Tyto informace bude možné přidávat za použitích modulů, které telefon nabízí. Půjde tedy přidat obrázek k úkolu přímo z fotoaparátu, souřadnici z GPS, číslo z telefonního kontaktu. atd. Cílem bude rovněž zjednodušit možnost zadávání úkolů a to za pomocí rozeznávání hlasu. Rovněž bude integrována základní synchronizace s nějakou existují webovou službou jako je RememberTheMilk či SquezeeWork, na kterém s kolegou pracuji. Cílem projektu je nabídnout uživateli aplikaci, která mu umožní si lehce zaznamenat úkol a přiřadit k němu důležité informace, které následně v telefonu může lehce využit či se synchronizovat s webovou službou a mít k nim přístup kdekoliv.
D2 Users Aplikace bude cílena na všechny uživatele bez ohledu na věk, kteří by rádi zaznamenávali úkoly kdekoliv a mají radši elektronické poznámky než papírové. Rovněž chtějí, aby si úkoly mohli organizovat pomocí metodiky GTD (Get Things Done) a mají zájem si k úkolům přidávat informace, které by v případě papírového diáře neměli. To jsou informace jako je lokace, obrázky, telefonní čísla a jiné věci, které mobilní telefon nabízí. Mají také zájem o to, aby se jím úkoly synchronizovali s nějakou existující webovou službou (Remember The Milk a jiné) a oni měli přístup k těmto úkolům i na jiných zařízeních jako je počítač, laptop apod. Důvod proč by měl uživatel tuto aplikaci používat je, že papírové poznámky ztrácí nebo mu nevyhovují a chce něco co mu umožní mít jeho úkoly všude. Aplikace bude od uživatele očekávat znalost jeho telefonu a pokud uživatel dokáže ovládat jiné aplikace v jeho telefonu, tak by pro něj neměl být problém ovládat tuto aplikaci. Aplikace bude od uživatelů vyžadovat znalost anglického jazyka jelikož v něm bude lokalizována. V budoucnu je možná i lokalizace do češtiny a jiných jazyků, ale z počátku pouze angličtina, ale nebude se jednat o nikterak pokročilou znalost. Víceméně bude stačit znalost porozumět pár slovíčkům. Složité věty se nebudou v aplikaci nacházet.
Activities Uživatel bude moc provádět pouze pár kroků, ale v těchto krocích bude mít hodně možností, což udělá aplikaci chytrou, ale při tom jednoduchou na používání.
Přidání úkolu Přidávání úkolu bude probíhat velice snadno. Po spuštění aplikace bude v části obrazovky tlačítko, na které když uživatel klikne, tak se dostane na obrazovku přidání úkolu. Zde budou možnosti, kde uživatel bude moci vyplnit požadované informace. • V první části bude textové políčko pro úkol. Vedle něj se bude hned nacházet tlačítko pro přidání úkolu pomocí hlasu. ◦ Pomoci hlasu půjde přidat pouze text pro úkol. Možnosti jako přidávání obrázků apod. budou vyžadovat obsluhu už pomocí doteků. • Následně zde budou tlačítka pro přidání obrázku, geolokace, kontaktu atd. • Dále zde bude nabídka na vybrání kategorie pro úkol. Standardně bude vybrán Inbox. • Dále bude prostor pro datum pro úkoly, které mají nějakou splatnost. • Následně bude políčko pro delší textový popis. • Na konci bude tlačítko uložit. Uživatel klikne na uložit a úkol je hotov. Úprava úkolu Úprava bude probíhat podobně jako přidávání úkolu. Pouze už některé informace budou předvyplněny. Synchronizace úkolů Synchronizace úkolů bude jednoduchá. Na úvodní obrazovce bude tlačítko synchronizace. Po kliknutí na něj se úkoly nahrají do webové služby. Pokud nejsou vyplněny informace pro danou webovou službu, tak uživatel bude na tyto informace dotázán. Prohlížení úkolů Prohlížení úkolů bude rovněž jednoduché. Po vybrání kategorie na úvodní obrazovce. Uživatel uvidí seznam všech úkolu v dané kategorii. Uvidí v seznamu pouze nejdůležitější informace. Pokud ho bude úkol zajímat více do detailu, tak si ho bude muset otevřít.
System Support (what and how) • Zařízení s operačním systémem Android. ◦ Přesná verze bude specifikována při vývoji v závislosti na tom, která vlastnost se nachází v jaké verzi systému. Rozhodně nebude aplikován přístup, že je nejlepší podporovat co nejvíc zařízení. Naopak bude aplikován přístup podporovat co nejmenší skupinu zařízení, ale těm nabídnout kvalitní zážitek. • Zařízení s dotykovým displejem ◦ Aplikace bude primárně ovládána pomocí doteků. ◦ Bude zde i základní podpora pro ovládání pomocí trackballu, ale rozhodně to nebude hlavní způsob jak aplikaci ovládat. • Displej alespoň 3.2 palců ◦ Aplikace poběží i na menších displejích, ale nebude zde už žádná optimalizace a lze očekávat, že se layout aplikace rozpadne. Většina
zařízeních už alespoň tuhle velikost displeje má a trend ukazuje, že se stávají populární zařízení až s displejem 4 palce. • Internetové připojení, GPS, Fotoaparát, Hlasový modul a jiné moduly pro podporu pokročilých funkcí. ◦ V případe, že zařízení nebude disponovat uvedeným modulem, tak daná vlastnost nebude v aplikaci dostupná, ale aplikace půjde nadále používat. Pouze bude chudší.
Context Cíl aplikace je nabídnout uživateli možnost si zaznamenat úkol kdekoliv. Samozřejmě je od uživatele vyžadováno, že musí být v dané situaci schopen daný úkol vložit. Musí být tedy schopen mluvit a musí mu být rozumět pro hlasovou možnost nebo musí být schopen psát na klávesnici. Pokud běží, tak nemůže očekávat, že se mu pohodlně úkol podaří vložit. Cílem bude poskytnout uživateli stejný komfort jaký mu nabízí systém. Aplikace bude přejímat různé design patterny, které už na platformě existují, takže pokud uživatel je schopen vyhledávat v operačním systému pomocí jedné ruky. Lze očekávat, že bude schopen ovládat i tuto aplikaci jednou rukou. Aplikace bude přizpůsobena pro typického moderního člověka. Uživatel, který je nějak handicapován bude při používání aplikace znevýhodněn a asi nebude nejlepší kandidát na její používání. Rovněž pokud uživatel chce používat synchronizaci, vkládat lokaci a jiné vlastnosti závisle na modulech telefonu, tak se očekává, že se bude nacházet v podmínkách, kde jeho mobilní telefon bude schopen poskytnout danou vlastnost. Například je jasné, že zjistit lokaci pomocí GPS v budově asi nebude možné.
D3 Tvorba prototypu První prototyp, který jsem vytvořil jsem nakreslil na papír za pomocí tlusté fixy na cvičení, který jsem následně hned na tom cvičení otestoval. Tento prototyp měl určité nedostatky a jelikož jsem nebyl zcela spokojený s papírovou verzi, tak jsem se rozhodl, že udělám prototyp v nějakém nástroji k tomu určený. Původně jsem chtěl sáhnout po Balsamiq Mockups, ale na něm mě odrazovalo, že je hodně omezený ve verzi zdarma. Hledal jsem tedy alternativu a našel jsem se Pencil, ale po hraní si s ním mi nevyhovoval, takže jsem skončil zpátky u Balsamiq Mockups, kde jsem objevil, že existuje možnost 7 denního trialu, kde po tuto dobu je možno využívat software bez omezení a mohl jsem tedy můj prototyp vyexpertovat od PDF. Rovněž se mi líbilo, že v případě PDF verze jsou obrazovky klikatelné a dá se tedy mezi nimi navigovat. Jelikož má aplikace bude pro zařízení s Androidem a pro něj neexistuje zatím pevně definovaný styl aplikací a víceméně se dává svoboda vývojářům. Využil jsem tedy už nějakých vzorů, které existují v jiných aplikací. Z čehož plyne, že jsem nepoužil žádný standardní element, který Android nabízí snad krom menu. Rovněž každá obrazovka na Androidu má své menu. Toto menu se zobrazí po stisknutí tlačítka Menu, který má každý telefon s Androidem. Nevěděl jsem jak zcela toto v prototypu vyjádřit. Mohl jsem vytvořit nové obrazovky, které vypadají stejně jako předchozí, ale mají na sobě menu, což mi připadalo zbytečné, tak jsem se rozhodl, že menu nakreslím mimo zařízení a šipkou vyjádřím, že se jedná o menu.
Popis prototypu Obrazovky popisuji ve stejném pořadí jakým jsou v přiloženém PDF souboru. Index Tuto obrazovku uvidí uživatel po spuštění aplikace. V horní části je bar s názvem aplikace. V tomto baru jsou zároveň tlačítka, která lze použit pro rychlou volbu - synchronizace a přidání nového úkolu. Tento bar lze najít na každé obrazovce a pokaždé jsou na něm jiné tlačítka. V další části obrazovky jsou ikonky s popisky pro jednotlivé kategorie. Po kliknutí na ikonku se uživatel ocitne na obrazovce, kde je seznam úkolu pro danou kategorii. Po otevření menu uživatel uvidí čtyři volby - nový úkol, hledání úkolů, nastavení a synchronizace úkolů se serverem. List Na této obrazovce je vždy seznam úkolů v dané kategorii. Jaká kategorie je aktivní je znázorněné v baru. Zbytek obrazovky obsahuji úkoly, kde je vždy zaškrtávací pole, kterým se označí jestli daný úkol je již hotový a následuje text úkolů. V případě, že u úkolu existuje speciální obsah, tak se na konci řádku objeví ikonka o jaký obsah se jedná. Může se zde nacházet obsah následující druhu: • V případě fotoaparátu je u úkolu ikonka fotoaparátu, která značí, že u úkolu je obrázek • V případě tlačítka Call je k úkolu přidán kontakt a po stisknutí toho tlačítka lze daný kontakt kontaktovat • V případě datumu je u úkolu datum, ke kterému je úkol zamýšlen • V případě textu Due se jedná o úkol, který už prošel vzhledem k jeho datu • V případě znaku lokace jsou u úkolu GPS souřadnice V případě otevření menu jsou zde dvě položky - jedna na přidání nového úkolu a jedna na vyhledávání úkolů. Detail Tato obrazovka patří k nejkomplexnějším kvůli množství prvků, co se na ní nachází. V horní části je opět bar, kde se nachází tlačítko pro přidání obrázku, kontaktu a lokace. V následující části je obsah, který uživatel přidal. Jakýkoliv obsah přidá může odstranit pomocí křížku u každého objektu. V případě, že zde není žádný obsah, tak je místo nevyplněno. Ve zbytku obrazovky jsou textová pole na vyplnění textu úkolu u něhož je tlačítko pro vložení úkolu pomocí hlasu. Dále je zde kategorie, poznámka, datum a štítky. Na konci se nachází tlačítko pro uložení.
V případě otevření menu uživatel může přidat obrázek, kontakt a lokaci. Ve spodní části menu je volba pro přidání data, uložení úkolu a přidání štítku. Všechny tyto možnosti už se sice nachází na obrazovce, ale cíl menu je dát možnost uživateli provést akci třeba v situaci, kdy není snadné zmáčknout menší tlačítko v horní části obrazovky a je jednoduší zmáčknout menu a vybrat danou akci. Search Na tuto obrazovku se uživatel dostane když klikne v jakékoliv obrazovce na "Search". V této obrazovce se nachází jednoduchý textový pole a tlačítko hledat. Když se zadá text a klikne se, tak v části pod tím se vypíší všechny úkoly s daným názvem. V této obrazovce není žádné menu.
Heuristická evaluace K provedení evaluace jsem požádal dva studenty z ČVUT FEL, aby provedli expertní evaluaci. Jejich výsledky jsem následně zhodnotil a zvážil co bych měl vyřešit pro další vývoj. Evaluace od prvního experta Visibility of system status
Navigace v rámci aplikace je intuitivní a díky malému množství aplikačních obrazovek by neměl být problém s tím, že by uživatel nevěděl kde se nachází i přes to, že jednotlivé obrazovky nemají nikde viditelně uveden svůj název. Každá z nich má relativně odlišný layout, což bude určitě figurovat jako další poznávací znamení podle kterého uživatel rozpozná na jaké obrazovce se nachází a jaké má možnosti. User control and freedom
Z prototypu není patrné, zda a popř jak lze již vytvořené úkoly smazat. Error prevention
Z prototypu není patrné jaké akce jsou destruktivní a nezvratné, a zda u těchto akcí bude ověřovací bezpečnostní dialog. Pokud nějaké takovéto akce v aplikaci jsou, určitě by měl být přítomen i ověřovací dialog. Aesthetic and minimalist design
Na aplikaci a designu jejího UI je vidět perfektní použití konvencí pro vývoj aplikací na Android platformě. V tomto bodě bez výhrad.
Evaluace od druhého experta Visibility of system status
Při přechodu na jednotlivé obrazovky zobrazení úkolu (Today, Scheduled, ...) počítám, že v horní části bude uveden název daného zobrazení. Nyní je zde pro všechny zobrazení uveden název zobrazení Inbox, je to proto, že všechny obrazovky vypadají stejně a autor neměl důvod kreslit několikrát stejnou obrazovku. S tímto není problém, uživatel bude schopen jasně rozlišit, v jaké části aplikace se nachází. Tento název (zde vždy Inbox) je klikatelný a vrací uživatele na hlavní menu. Tato funkce může byt trochu matoucí, preferoval bych název obrazovky neklikatelný, protože uživatel zde již je a pro návrat do hlavního menu bych přidal tlačítko s odpovídajícím názvem. Jediná obrazovka, která neobsahuje nadpis, je vyhledávání. Ale její funkce je jasná. Co není úplně jasné je to, že na vyhledávání se dá přejít z libovolného zobrazení úkolu. Probíhá poté vyhledávaní pouze z této množiny daného zobrazení nebo ze všech vložených úkolů? Uživatel by měl tuto informaci obdržet. User control and freedom
Nevidím žádný problém, aplikace vypadá jako jednoduše ovladatelná jednou rukou. Uživatel má více možností jak vkládat záznamy a editovat jejich obsah - ať už preferuje přístup přes menu či rovnou přes ikony v obrazovce. Error prevention
Nejsem schopen určit, protože návrh aplikace nenabízí možnost mazání vložených úkolů. Jediným problémem zde by tedy mohlo být neúmyslné upravení atributů úkolu, ale zde nevidím důvod ptát se uživatele, zda chce opravdu uložit změny. Aesthetic and minimalist design
Nevidím žádný problém, aplikace je navržena přehledně, logicky a dostatenčně jednoduše pro použití na mobilním zařízení.
Závěr z provedené evaluace Výsledky, které jsem obdržel od expertu jsou velice přínosné jelikož poukazují na nedostatky, které jsem si při vývoji neuvědomil. Nedostatky, které experti zmínili jsem vždy zkusil zvážit a zamyslet nad nimi a vymyslet řešení, které aplikuji v další iteraci. • Není vždy jasné v jakém stavu je aplikace ◦ Zcela souhlasím, že při hledání není jasné z jakých výsledků se hledá a tento problém vyřeším v další iteraci tím, že do části s hledáním přidám, kde se skutečně hledá. ◦ Pro jistotu každou obrazovku obohatím o jednoduchý nadpis v jakém skutečně stavu uživatel je. Možná to v některých situacích bude zbytečné, ale aspoň uživatel nebude zmaten. • Dále je zmíněno, že je nemožnost smazat již vytvořený úkol ◦ Toto je skutečně pravda. Při návrhu jsem myslel, že uživatel odklikne checkbox a úkol se přesune do kategorie hotových úkolu. A nepřemýšlel jsem nad tím, že úkoly vlastně neumožňuji mazat. V další iteraci teda přidám možnost, která umožní úkol trvale odstranit.
• Název aktuální kategorie je klikatelný ◦ Záměr bylo, že uživatel se může vrátit pomocí tohoto zpět a vybrat jinou kategorii, ale je vskutku tento záměr špatný a matoucí. Lepší by bylo kdyby po kliknutí vyjela nabídka s kategoriemi nebo název aktuální kategorie nic nedělal. • Upozornění na destruktivní akci ◦ V prototypu nejsou žádné dialogy znázorněny, ale při mazání úkolu bude uživatel upozorněn dialogem. V případě úpravy úkolu to nepovažuji za nezbytné. Hodnotím kladně, že experti v určitých testech nenašli žádný problém a hodnotí provedení kladně.