Aplikace czsms Posílání SMS zpráv přes mobilní datové přenosy Jan Kolařík České vysoké učení technické v Praze Fakulta elektrotechnická Principy tvorby mobilních aplikací (A7B39PDA) 2011/2012
Část D1 1.1 PRVOTNÍ POPIS APLIKACE Jako semestrální práci do předmětu A7B39PDA se chystám oprášit mou starou aplikaci czsms. Ve své době se jednalo o první aplikaci pro systém Android umožňující posílat zdarma SMS zprávy do všech českých sítí. Odesílání probíhalo pomocí veřejných webových bran operátorů a odesláním jedné zprávy tedy byly uskutečněny pouze datové přenosy. Bohužel jsem aplikaci po první verzi pro nedostatek času přestal vyvíjet a dnes jsou v Android Marketu dostupní mnohem schopnější konkurenti. V rámci předmětu svou aplikaci aktualizuji tak, aby fungovala opět s nejnovějšími verzemi bran operátorů, a budu se snažit vytvořit její multiplatformní verzi pomocí nástroje PhoneGap nebo podobného. Jsou to totiž platformy jako Windows Phone 7 nebo Samsung Bada, které zoufale potřebují takový typ aplikace. Mezi podporované funkce bude patřit výběr čísla ze seznamu kontaktů, možnost zasílat dlouhé zprávy (aplikace sama zařídí rozdělení zprávy na více částí), automatická detekce operátora, odesílání přes verze bran vyžadující registraci apod. 2
Část D2 2.1 UŽIVATELÉ Typickými uživateli aplikace czsms bude především mládež zasílající velké množství textových zpráv. Vzhledem k tomu, že v České republice na rozdíl od většiny ostatních zemí neexistuje žádný cenově dostupný neomezený tarif pro posílání SMS, rozmohlo se mnoho aplikací umožňující posílání SMS zpráv zdarma resp. pouze za poplatky za datové přenosy. K samotnému odeslání zprávy aplikace czsms použije volně dostupné SMS brány tří českých operátorů, ale uživatel se bude cítit, jakoby používal klasické telefonní rozhraní pro psaní a odesílání SMS. 2.2 AKTIVITY Následující aktivity musí uživatel provést, aby dosáhl kýženého odeslání textové zprávy zdarma: Úvodní nastavení (průvodce/wizard) (zobrazí se pouze při prvním spuštění aplikace, nastavené hodnoty bude samozřejmě možné dále měnit): Uživatel nastaví např. své vlastní telefonní číslo nebo přihlašovací údaje do služeb typu Vodafone Park nebo 1188.cz. Napsání textu zprávy a výběr příjemce: Uživatel zadá text zprávy, kterou se chystá odeslat, a ze seznamu kontaktů vybere číslo příjemce; případně musí vybrat, jakého mobilního operátora příjemce používá. Kromě testování prvních tří číslic telefonního čísla totiž bohužel neexistuje jiný způsob, jak detekci operátora provést a tento způsob selhává u čísel, která byla převedena k operátorovi jinému. Samotné odeslání zprávy: Uživatel klikne na tlačítko Odeslat a aplikace se připojí ke vzdálenému serveru operátora. Je-li to potřeba, zobrazí i CAPTCHA kód z operátorské SMS brány a vyzve uživatele k jeho opsání a potvrzení. Dojde-li k situaci, kdy je napsaná zpráva příliš dlouhá, a pro odeslání je vyžadováno opsání CAPTCHA kódu, musí aplikace nabídnout k opsání odpovídající počet kódů. Podrobné nastavení: Zde bude možné nastavit automatické přidávání podpisu pro zprávy odeslané přes jednotlivé brány, vlastní telefonní číslo, zda se mají odeslané zprávy ukládat a samozřejmě tu bude možné měnit i položky nastavené v průvodci (viz výše). 3
2.3 PODPORA 2.3.1 Podporované funkce Archiv zpráv: Vizuálně přehledný archiv všech odeslaných zpráv s různými možnostmi filtrování např. podle místa odeslání (geolokace), podle čísla příjemce, podle data a času odeslání. Archiv rovněž umožní export zpráv na paměťovou kartu nebo následný import využitelný zejména při zakoupení nového telefonu. Statistiky činnosti: Uživatel bude mít možnost zobrazit statistiky své aktivity nebo zapnout pravidelné týdenní odesílání statistik a výpisu odeslaných zpráv pomocí emailu. Pamatování si operátora pro jednotlivá čísla: Vybere-li uživatel pro některé telefonní číslo ručně jiného než výchozího operátora, aplikace si toto zapamatuje a příště automaticky nabídne příslušnou bránu. 2.3.2 Cílová zařízení Primární platformou pro mou aplikaci bude Android, rád bych však s využitím knihovny PhoneGap vytvořil i multiplatformní verzi cílící na uživatele platforem jako Samsung Bada, Symbian, Windows Phone 7 nebo ios. 2.4 KONTEXT Uživatelské rozhraní aplikace czsms musí být dobře ovladatelné prstem a to i v dopravních prostředcích. K dopravním prostředkům především metru se však vztahuje také jeden další požadavek: aplikace musí být odolná vůči výpadkům signálu pro datové přenosy. Dojde-li k takovému výpadku, mělo by být možné bezpečně ukončit právě probíhající operaci. Samotné metody vkládání textu je záležitostí každého operačního systému, avšak alespoň rozložení prvků uživatelského rozhraní bude přizpůsobeno používání v MHD. 4
Část D3 3.1 POPIS NÁVRHU ROZHRANÍ APLIKACE K návrhu uživatelského rozhraní aplikace jsem použil nástroj Balsamiq Mockups (zdrojový soubor viz web http://hcisemestralky.felk.cvut.cz/), v němž byly vytvořeny pseudoscreenshoty jednotlivých aktivit aplikace. Ke zhotovení takového návrhu jsem přistoupil, aby bylo možné předejít chybám v použitelnosti aplikace ještě před jejím samotným programováním. 3.2 NÁVRH UŽIVATELSKÉHO ROZHRANÍ 3.2.1 Úvodní nastavení Při prvním spuštění aplikace se uživateli zobrazí průvodce (wizard) popisující fungování aplikace a umožňující nastavit základní parametry pro její bezproblémové používání. Obr. 1: Úvodní text při spuštění aplikace Obr. 2: Nastavení vlastního čísla a podpisu. V úvodním textu bude vysvětleno, že nezadá-li uživatel žádný podpis, nebude se automaticky přidávat žádný. Obr. 3: Přidání účtu služby Vodafone Park 5
Obr. 4: Přidání účtu služby sms.1188.cz Obr. 5: Hláška zobrazená po úspěšném ukončení průvodce 3.2.2 Rozhraní pro psaní a odesílání zpráv Po ukončení výše zmíněného průvodce nebo při dalších spuštění aplikace se automaticky objeví aktivita pro psaní nové zprávy. V horní části displeje si povšimněte lišty action bar. Obr. 6: Hlavní aktivita, nelze-li detekovat operátora, tlačítko Odeslat je neaktivní. Obr. 7: Hlavní aktivita, tentokrát bylo možné zjistit telefonního operátora příjemce. Obr. 8: Hlavní aktivita, ruční výběr operátora příjemce 6
Obr. 9: Opisování CAPTCHA kódu při odesílání zprávy; varianta pro případ, kdy se text zprávy vleze do jedné SMS Obr. 10: Opisování CAPTCHA kódu při odesílání zprávy; varianta pro případ, kdy se text zprávy vleze do více než jedné SMS Obr. 11: Toto hlášení se zobrazí, pokusí-li se uživatel navrátit zpět k psaní zprávy, ale jedna část textu již byla úspěšně odeslána. Obr. 12: Hlášení o úspěšném odeslání zprávy 7
3.2.3 Dialog nastavení a historie zpráv Přístup k těmto dialogům je možný přes horní lištu ( action bar ). Obr. 13: Hlavní aktivita dialogu nastavení Obr. 14: Nastavení přiřazených účtů (Vodafone Park a sms.1188.cz) Obr. 15: Historie odeslaných zpráv 3.3 TESTOVÁNÍ UŽIVATELSKÉHO ROZHRANÍ 3.3.1 Úvod k testování K testování návrhu uživatelského rozhraní aplikace czsms byla použita metoda heuristické evaluace. Při testování použitelnosti uživatelského rozhraní touto metodou si nejprve stanovíme cíl, jejž chceme při používání zařízení nebo aplikace dosáhnout. Dále provádíme kroky potřebné k dosažení cíle a během tohoto procesu přemýšlíme, jaké zásady návrhu dobře použitelného uživatelského rozhraní byly na zařízení či v aplikaci porušeny. Zde byl použit seznam deseti nejvýznamnějších znaků dobře použitelného rozhraní podle Jacoba Nielsena: H1: Viditelnost stavu systému H2: Podobnost systému s reálným světem H3: Svoboda uživatele při ovládání H4: Konzistence a standardy 8
H5: Prevence chyb H6: Ovládání bez nutnosti pamatování si informací H7: Efektivita používání H8: Estetika a minimalistický design, žádné zbytečné informace H9: Výstižná chybová hlášení H10: Nápověda a dokumentace Testování jsem prováděl já (v tomto semestru navštěvuji předmět Testování uživatelských rozhraní A7B39TUR) a kamarád Ondřej Vaverka (student 3. ročníku informatiky na Přírodovědecké fakultě Univerzity Palackého v Olomouci, v minulém semestru absolvoval ekvivalent našeho předmětu Testování uživatelských rozhraní). Následující scénáře použití byly otestovány: průchod průvodcem úvodním nastavením odeslání textové zprávy s textem kratším než 160 znaků odeslání textové zprávy s textem delším než 160 znaků průchod dialogem nastavení průchod historií zpráv 3.3.2 Testování použitelnosti Jan Kolařík Během procházení jsem narazil na následující prohřešky vůči zmíněným pravidlům použitelnosti: Popis prohřešku: V dialogu, který se zobrazí po kliknutí na tlačítko Odeslat (opisování CAPTCHA kódu), není zobrazeno číslo příjemce a např. začátek textu zprávy, pokud uživatel odesílá mnoho různých zpráv různým příjemcům během krátké doby. (viz obr. 9) Prohřešek proti zásadě: H6 ovládání bez nutnosti pamatování si informací Návrh řešení: Přidání čísla příjemce a krátkého úryvku odesílané zprávy pro lepší orientaci Popis prohřešku: Nelze ručně vybrat operátora, aniž by bylo vybráno číslo příjemce. (viz obr. 6) Prohřešek proti zásadě: H7 efektivita používání Návrh řešení: Přidání této možnosti 9
Popis prohřešku: Při odesílání zprávy skládající se z více SMS není dostatečně výrazně zobrazeno, kolik kódů bude ještě třeba opsat. (viz obr. 10) Prohřešek proti zásadě: H7 efektivita používání Návrh řešení: Zvýraznění informace Popis prohřešku: Po kliknutí na tlačítko Uložit nastavení a zpět v dialozích nastavení uživatel nedostane zprávu o tom, zda bylo nastavení uloženo. Po zmáčknutí hardwarového tlačítka krok zpět neví, zda bylo nastavení uloženo, nebo ne. (viz obr. 13; obr. 14) Prohřešek proti zásadě: H7 viditelnost stavu systému Návrh řešení: Přidání message boxů s informacemi o tom, zda byla nastavení uložena 3.3.3 Testování použitelnosti Ondřej Vaverka Během procházení Ondřej narazil na následující prohřešky vůči zmíněným pravidlům použitelnosti: Popis prohřešku: V dialogu správy účtů mimo úvodního průvodce chybí odkazy pro registrace na službách Vodafone Park a sms.1188.cz. (viz obr. 14) Prohřešek proti zásadě: H3 svoboda uživatele při ovládání Návrh řešení: Přidání těchto odkazů Popis prohřešku: Nepovede-li se odeslání zprávy, je zobrazena pouze generická chybová hláška a příčina neúspěšného odeslání není nikde uvedena. Prohřešek proti zásadě: H9 výstižná chybová hlášení Návrh řešení: Rozlišení mezi důvody nemožnosti odeslání Popis prohřešku: Po kliknutí na odkaz Zrušit úvodní nastavení není zobrazen žádný potvrzovací dialog. (viz obr. 2; obr. 3; obr. 4; obr. 5) Prohřešek proti zásadě: H5 prevence chyb Návrh řešení: Přidání dialogu Popis prohřešku: V průvodci úvodním nastavením chybí číslo aktuálního kroku (viz obr. 1; obr. 2; obr. 3; obr. 4; obr. 5) Prohřešek proti zásadě: H1 viditelnost stavu systému Návrh řešení: Přidání textového popisku s číslem kroku a celkového počtu kroků 10
Popis prohřešku: V průvodci úvodním nastavením chybí zaškrtávací políčko, zda se má používat podpis. To by umožnilo definovat a uložit podpis pro další použití, aniž by jeho automatické vkládání do zpráv muselo být povoleno. Prohřešek proti zásadě: H3 svoboda uživatele při ovládání Návrh řešení: Přidání zaškrtávacího políčka Popis prohřešku: V dialogu historie zpráv chybí tlačítko pro její vymazání, přitom v dialogu nastavení je. (viz obr. 15; obr. 13) Prohřešek proti zásadě: H4 konzistence a standardy Návrh řešení: Přemístění nebo přidání tlačítka Popis prohřešku: Dokumentace je dostupná pouze přes hardwarové tlačítko menu. (viz obr. 6; obr. 7) Prohřešek proti zásadě: H10 nápověda a dokumentace Návrh řešení: Přidání tlačítka pro otevření nápovědy do hlavní aktivity Popis prohřešku: Nelze znovu spustit průvodce úvodním nastavením (viz obr. 13) Prohřešek proti zásadě: H7 efektivita používání Návrh řešení: Přidání odkazu pro opětovné spuštění tohoto průvodce do dialogu nastavení 3.3.4 Návrhy pro část D4 Při komplexnějším návrhu rozhraní aplikace v části D4 je nutné brát ohled na všechny zvyklosti jednotlivých platforem, aby byla zachována konzistence s konkrétními operačními systémy. Rovněž je nutné poučit se z výsledků testování návrhů uživatelského rozhraní z části D3. 11