Sem vložte zadání Vaší práce.
České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství
Diplomová práce
Mobilní aplikace Živá abeceda pro Windows Phone Bc. Jan Nepraš
Vedoucí práce: Ing. Josef Gattermayer
15. května 2014
Prohlášení Prohlašuji, že jsem předloženou práci vypracoval samostatně a že jsem uvedl veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů, zejména skutečnost, že České vysoké učení technické v Praze má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle § 60 odst. 1 autorského zákona.
V Praze dne 15. května 2014
.....................
České vysoké učení technické v Praze Fakulta informačních technologií c 2014 Jan Nepraš. Všechna práva vyhrazena.
Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora.
Odkaz na tuto práci Nepraš, Jan. Mobilní aplikace Živá abeceda pro Windows Phone. Diplomová práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2014.
Abstract The goal of this thesis is to create a mobile application Live alphabet for Windows Phone. Main purpose of this application is to generate text photogtaphs where each letter represents one photomodel. A prototype for Windows RT and Windows 8 is also included. Keywords Live alphabet, Windows Phone, Windows 8, Windows RT
Abstrakt Předmětem této práce je vytvořit mobilní aplikaci Živá abeceda pro platformu Windows Phone. Aplikace si klade za cíl generování textových fotografií, kde každé písmeno reprezentuje jeden fotomodel. Projekt dále obsahuje prototyp aplikace pro platformy Windows RT a Windows 8. Klíčová slova Živá abeceda, Windows Phone, Windows 8, Windows RT
vii
Obsah Úvod Rozbor zadání . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1
1 Analýza 1.1 Platformy firmy Microsoft . . . . . . . . . . . . . . . . . . . 1.2 Market Share . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Design GuideLines [19] . . . . . . . . . . . . . . . . . . . . .
5 5 16 18
2 Návrh 2.1 Případy užití . . . . . . . . . . . . . . . 2.2 TaskGraph . . . . . . . . . . . . . . . . . 2.3 Wireframe . . . . . . . . . . . . . . . . 2.4 Doménový model . . . . . . . . . . . . . 2.5 Data binding [2, 29] . . . . . . . . . . . . 2.6 The Model-View-ViewModel pattern [24, 2.7 Isolated storage [6, 29, 27] . . . . . . . . 2.8 Portable Class Libraries [10, 29] . . . . .
23 23 27 27 29 30 33 34 35
. . . . . . . . . . 29] . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
3 Implementace 37 3.1 Použité nástroje . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.2 Skládání obrázků . . . . . . . . . . . . . . . . . . . . . . . . 37 3.3 Použité knihovny . . . . . . . . . . . . . . . . . . . . . . . . 38 4 Testování 45 4.1 Remote Device Access [12] . . . . . . . . . . . . . . . . . . . 45 4.2 Unit Testing [15] . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3 Uživatelské testování . . . . . . . . . . . . . . . . . . . . . . 46 ix
Závěr 49 Splnění jednotlivých bodů zadání . . . . . . . . . . . . . . . . . . 49 Závěr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Literatura
53
A Seznam použitých zkratek
57
B Obsah přiloženého CD
59
C Návod k použití pro Windows Phone 61 C.1 Tvorba obrázku . . . . . . . . . . . . . . . . . . . . . . . . . 61
x
Seznam obrázků 1.1 1.2 1.3 1.4 1.5 1.6
Windows Phone architektura . . . . . . . . . . . Podíl na majoritních trzích jednotlivých platforem Nokia Lumia 520 . . . . . . . . . . . . . . . . . . Nokia X . . . . . . . . . . . . . . . . . . . . . . . Porovnání podílů na trhu operačních systémů . . Ukázka ListView . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
6 17 18 18 19 20
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14
Use case Hlavní obrazovka . . . . . . . . . . . . . . . . . Use case Gallery . . . . . . . . . . . . . . . . . . . . . . Use case Store . . . . . . . . . . . . . . . . . . . . . . . . Use case ShapeInput . . . . . . . . . . . . . . . . . . . . Use case ShapeBuilder . . . . . . . . . . . . . . . . . . . TaskGraph Windows Phone . . . . . . . . . . . . . . . . TaskGraph Windows Store . . . . . . . . . . . . . . . . . Wireframe Hlavní obrazovky platformy Windows Phone Wireframe ShapeBuilder platformy Windows Phone . . . Wireframe Hlavní obrazovky platformy Windows Store . Wireframe ShapeBuilder platformy Windows Store . . . Doménový model . . . . . . . . . . . . . . . . . . . . . . Příklad DataBindingu . . . . . . . . . . . . . . . . . . . Ukázka návrhového vzoru MVVM . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
24 24 25 26 26 27 28 29 29 30 30 31 32 34
3.1 3.2
ShareMediaTask výběr služby . . . . . . . . . . . . . . . . . . . DataTransferManager výběr služby . . . . . . . . . . . . . . . .
40 41
C.1 Hlavní obrazovka . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Zadávání textu . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Vytvoření obrázku . . . . . . . . . . . . . . . . . . . . . . . . .
61 62 62
xi
. . . . . .
. . . . . .
. . . . . .
C.4 Sdílení obrázku . . C.5 Výběr služby . . . C.6 Odeslání ve zprávě C.7 Vytváření obrázku C.8 Galerie . . . . . . . C.9 Sdílení . . . . . . . C.10 Mazání obrázku . . C.11 Nákup abecedy . . C.12 Nákup HD exportu
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
xii
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
63 63 64 64 65 65 66 66 67
Seznam tabulek 1.1
Tabulka naměřených hodnot . . . . . . . . . . . . . . . . . . . .
xiii
14
Úvod Mobilní aplikace Živá abeceda je pokročováním aplikace Photoshape [28], kterou vytvořil Bc. Dominik Veselý. Photoshape umožňuje pomocí šablon jednotlivých písmen nafotit abecedu z lidí. Tvorba živé abecedy může být v některých situacích zdlouhavý proces. Živá abeceda je tedy dalším krokem - tato aplikace bude primárně sloužit ke skládání fotografií z písmen tvořenými fotomodely. Uživatel vepíše do připravených kolonek krátký text a Živá abeceda mu tento text převede do grafického formátu. Aplikace Živá abeceda bude obsahovat několik variant graficky identického textu tvořených různými fotomodely, takže koncový uživatel si bude moci zvolit tu variantu, která je jeho krátkému sdělení nejbližší. Vygenerovanou grafiku s textem pak bude okamžitě možné sdílet na sociálních sítích, poslat emailem, nebo jako MMS zprávu.
Rozbor zadání Nastudujte doporučení vzhledu (design guidelines) pro platformu Windows Phone. Cílem této práce je vytvořit aplikaci pro platformu Windows Phone, která může nalézt uplatnění u široké skupiny uživatelů. Sdílením generovaných vzkazů je zaručena propagace. Doporučený vzhled (design guidelines) je nutné dodržovat proto, aby aplikace splňovala uživatelovy požadavky a zároveň zachovala ekosystém platformy, na který je zvyklý. Zavedené postupy pro tvorbu grafického vzhledu bude nutné prozkoumat na oficiálních stránkách firmy Microsoft 1
Úvod a na blozích developerů. Na tomto základě pak bude možno navrhnout grafické rozhraní aplikace.
Nastudujte rozdíly mezi jednotlivými verzemi Windows Phone (Windows Phone 7, Windows Phone 8, Windows RT). Zjistěte tržní podíly jednotlivých verzí. Po dohodě s vedoucím práce zvolte vhodnou verzi pro vývoj aplikace v roce 2014. Společnost Microsoft v současné době nabízí několik různých platforem určených pro vývoj aplikací pro mobilní telephony, tablety, notebooky a stolní počítače. V této části práce je důležité prozkoumat jednotlivé platformy a zjistit, jaká je politika společnosti Microsoft a kam bude pravděpodobně směřovat další vývoj. Jedná se zejména o platformy Windows Phone 7, Windows Phone 8, Windows 8 a Windows RT, které nejsou vzájemně kompatibilní. Z tohoto důvodu bude důležité prozkoumat trh a zjistit jednotlivé podíly na trhu. Podle těchto poznatků poté vybrat nejvhodnější verze pro vývoj.
Upravte wireframy dodané vedoucím práce dle doporučení pro platformu Windows Phone. Wireframy dodané vedoucím práce budou přepracovány podle design guidelines, jak bylo uvedeno v prvním bodě zadání.
Navrhněte a implementujte mobilní aplikaci Živá abeceda pro platformu Windows Phone. Aplikace bude primárně navržena pro Windows Phone. Společnost Microsoft poskytuje mechanismy, které umožňují napsat jádro aplikace, a to poté použít pro různé platformy. Při návrhu bude důležité dodržovat tyto postupy, aby aplikace byla lehce přenositelná mezi platformami.
Popiště testovací metodiky, které umožní spustit akceptační testy na reálném hardware a jednu po dohodě s vedoucím práce vyberte. Vývojové prostředí Visual Studio poskytuje otestování aplikace v emulátoru. Zde je možnost spustit aplikaci pro všechna možná rozlišení obra2
Rozbor zadání zovky, která jsou kompatibilní se všemi doposud známými zařízeními pro Windows Phone. Těchto metodik existuje více a je nutné tyto postupy nastudovat a použít, aby výsledná aplikace byla stabilní a dosáhla určitých kvalit již před uvolněním do Storu.
Otestujte mobilní aplikaci Živá abeceda pomocí zvolené metodiky. Jedna z těchto metodik z předchozího bodu zadání bude použita a aplikace bude s pomocí této metodiky důkladně otestována.
3
Kapitola
1
Analýza 1.1 1.1.1
Platformy firmy Microsoft Windows Phone [29]
Když byla uvolněna první verze Windows Phone, bylo ohlášeno, že nevzniká pouze nová platforma odlišující se od předchozích verzí (Windows Mobile), ale že také vzniká nová platforma, která se výrazně liší od platforem Android a iOS. Uživatelské rozhraní Uživatelské rozhraní je přehledné a plynulé. Zaměřuje se především na jednoduché zobrazení obsahu, než na složité grafické efekty. Hlavní obrazovka obsahuje tzv. "Dlaždice", které si uživatel může uspořádat dle svého uvážení. "Dlaždice"nespouští pouze samotné aplikace, ale také jednotlivé části aplikací. Windows Phone používá v celém systému jednotný font Segoe WP. Pro vývojáře je připraveno několik stylů tohoto fontu. Architektura Architektura systému Windows Phone je znázorněna na obrázku 1.1. TaskHost, který je umístěn v horní části, reprezentuje XAML aplikační model. Tento model se začal používat od verze Windows Phone 7. CoreApplication je nový aplikační model, který je podmnožinou aplikačního modelu Windows 8. Package Manager je zodpovědný za instalaci a uchování dat aplikací během jejich životního cyklu. Například uchová informaci, která aplikace je licencovaná nebo která aplikace byla přidána na hlavní obrazovku. Execution 5
1. Analýza
Obrázek 1.1: Windows Phone architektura Manager zodpovídá za aplikaci od jejího spuštění až do ukončení. Pro aplikaci, která je spuštěna, je vytvořen hostující proces, který registruje události aplikace - startup, shutdown, deactivated. Execution Manager zodpovídá za běh procesů na pozadí a jeho správné plánování. Navigation Server spravuje všechny aplikace, které běží na popředí. Například uživatel, který se nachází na hlavní obrazovce, otevře aplikac. Navigation Server je zodpovědný za předání této události do Execution Manageru. Resource Manager je zodpovědný za rychlost systému a monitoruje vytížení CPU a paměti telefonu. Jestliže některý ze spuštěných procesů alokuje paměť, která není dostupná, je tento proces ukončen Resource Managerem. Background Processing Windows Phone poskytuje několik scénářů pro běh aplikace na pozadí. Vývojář nemá možnost určovat, kdy aplikace poběží na pozadí, ale musí si vybrat ze zvoleného scénáře. Execution Manager přidělí aplikaci prostředky na provedení konkrétní akce. Typy scénářů • Background OS Sevices 1. Background Transfer Services 2. Alarm • Background Audio Agents 6
1.1. Platformy firmy Microsoft • Scheduled Tasks 1. Periodic tasks 2. Resource-intensive agents Security Model Windows Phone Security Model je založen na principu rozdělení funkčností systému do jednotlivých bezpečnostních komponent. Každá komponenta obsahuje práva k množině funkcí, která je mu přidělena. Model dodržuje princip nejnižších možných oprávnění. To znamená, že aplikace by měla vlastnit práva pouze ke komponentám se kterými pracuje. Jestliže aplikace potřebuje přístup například k uživatelovým kontaktům, je nutné nastavit v souboru WMAppManifest.xml v sekci "Capabilities"práva. Uživatel, který se rozhodne ve Windows Store nainstalovat aplikaci, je upozorněn, že aplikace bude mít přístup k jeho kontaktům, a musí potvrdit, že souhlasí s touto instalací. Windows Phone 7.0 Tato verze operačního systému byla poprvé spuštěna 21.října 2010. První název byl Windows Phone 7 Series, ale pro kritiku příliš dlouhého označení, bylo jméno zkráceno na Windows Phone 7. Operační systém byl spuštěn na deseti modelech od firem HTC, Dell, Samsung a LG. Zajímavá aktualizace verze • Zlepšení procesu pro aktualizování verzí • Copy Paste • Lepší integrace Facebooku • Zamítání neověřených certifikátů Windows Phone 7.5 Mango Microsoft uvolňuje tuto verzi v září 2011 a verze je často označována klíčovým slovem Mango. Verze má číslo 7.5, ale formálně má tato verze mít číslo 7.1. Steve Balamer oznámil, že Mango bude obsahovat přes 500 nových zlepšení. Zajímavá aktualizace verze • Itegrace Twitteru a LinkedInu 7
1. Analýza • Podpora dokumnetů Office 365 a jejich sdílení na SkyDrive • Internet Explorer 9 podporuje HTML 5 • Podpora TCP/IP a UDP socketů • Sdílení internetu Windows Phone 7.8 Na jaře roku 2013 je vypuštěna tato verze zároveň s verzí Windows Phone 8. Verze obsahuje malou podmnožinu funkcí, které obsahuje windows phone. Uživatelům mobilních zařízení s verzí Windows Phone 7 je oznámeno, že nebudou mít možnost aktualizovat OS na verzi Windows Phone 8. Zajímavé aktualizace verze • Možnost nastavení různých velikostí dlaždic • Podpora zobrazování notifikací na Lock screenu Windows Phone 8.0 Apollo Další generace Windows Phone od firmy Microsoft nese označení Apollo a je vypuštěna v říjnu 2012. Mobilní zařízení dodávají Nokia, Huawei, Samsung a HTC. Všechny zařízení využívají čip Qualcomm Snapdragon. Aplikace, které jsou vyvinuty pro platformu Windows Phone 7 mohou být emulovány pro Windows Phone 8 s menším zpomalením. Opačným způsobem aplikace emulovat nelze. Zajímavá aktualizace verze • Podpora MicroSD karet • Podpora NFC • In-app Purchase • Skype • Podpora Google account 8
1.1. Platformy firmy Microsoft Windows Phone 8.1 Blue Další důležitá verze bude vypuštěna v květnu roku 2014 s onzačením Blue. Tato verze si klade za cíl opravit některé funkční vlastnosti Windows Phone a přiblížit se tím operačním systémům Android a iOS. Další dlouhotrvající vizí je spojit platformy Windows Phone 8 a Windows 8 do jedné. To je zatím realizováno pomocí Windows Portable Library a techniky MVVM. Zajímavá aktualizace verze • Cortana smart agent • Back button nezavře aplikaci • VPN • Připojení klávesnice a myši • Formát souboru aplikace .XAP se mění na APPX
1.1.2
Windows RT [23]
Windows RT je edice operačního systému Windows 8 navržena pro procesory ARM s 32 bitovou architekturou. Hlavní výhodou této edice je hlavně dlouhá životnost baterie. Výrobce uvádí, že tablet s tímto systémem může být aktivní až 10 hodin. Tato edice operačního systému využívá Metro UI na rozdíl od Windows 8, které používají stejné jádro jako Windows 7 a zároveň používá Metro UI. U operačního systému Windows 8 byla integrace Metro UI velmi kritizovaná, protože toto rozhraní je vhodné pro ovládání tabletů, nikoliv však pro používání desktopů. Windows RT nepodporuje programy Windows 7, ale pouze aplikace z Windows Store, kterých v současné době není mnoho. 1.1.2.1
Design
Rozhraní Metro nabízí uživateli nastavit si prostředí z mnoha barevných témat. Dále je možné vybrat si z tzv.: "tatoos", které nastaví pozadí hlavní nabídky. Uživatelé jsou omezeni 20 předdefinovanými tématy a není zde možnost nahrát si vlastní "tatoo". Témata dodávají tabletům určitou eleganci a krásu. 9
1. Analýza 1.1.2.2
Desktop
Stejně jako ve Windows 8 je možné se přepnout na klasický Windows Desktop. Jsou zde klasicky známé ikony jako například "Odpadkový koš"nebo "Panel nástrojů". Ve verzi Windows RT 8.0 ze spodní lišty byl odstraněn "Start button", ale ve verzi 8.1 byl tento button vrácen zpět. Tato lišta defaultně obsahuje dále ikony pro Internet Explorer, Word, PowerPoint, Excel a OneNote. Pouze tyto aplikace lze spouštět na Windows Desktop, protože Windows RT nepovoluje instalaci aplikací třetích stran. Nicméně se zde nachází spousta jiných klasických funkcionalit, jako je třeba "Průzkumník"nebo "Příkazový řádek". Průzkumník je nejlepší možnost, jak pracovat se soubory a kopírovat je mezi diskem a flash pamětmi. 1.1.2.3
Metro UI
Primární cíl vzniku tohoto rozhraní bylo vyvinout operační systém, který bude snadno ovladatelný pomocí myši a dotykové obrazovky. V současné době, kdy počet uživatelů, kteří používají tablety, rapidně narůstá, je tato strategie velmi důležitá. Rozhraní Metro se velmi dobře ovládá na zařízeních s dotykovou obrazovkou. Zařízení s plnohodnotnými Windows 8, kde se systém ovládá pomocí myši, se ovládá o něco hůře, a nebyl to od společnosti Microsoft dobrý krok. Windows Key button přepíná na hlavní obrazovku a při opětovném stisknutí se vrátí zpět do aplikace, ve které uživatel stisknul toto tlačítko. Multitasking tohoto systému je řešen lépe než u konkurenčních platforem. Swipováním do levé části obrazovky se otevře seznam s náhledy spuštěných aplikací. Zde je možné pracovat s aplikacemi, které běží na pozadí. Multitasking umožňuje běh dvou aplikacím, které si rozdělí obrazovku na dvě části. Tato funkcionalita, ale nefunguje u všech aplikací, například u her. Když se uživatel nachází v rozhraní Metro UI a začne psát, otevře se dialog pro vyhledávání, uživatel může spustit ihned kterýkoliv program nebo najít konkrétní soubory. Vyhledávání ve verzi Windows RT 8.0 je pro běžného uživatele problematické, protože je kategorizováno do několika skupin např. aplikace, nastavení nebo soubory. Uživatel, který vyhledává program pro správu aplikací "Windows Update"v kategorii aplikace, nic nenalezne, protože musí hledat v kategorii nastavení. 1.1.2.4
Aplikace
Počet aplikací ve Windows Store není zatím tak velký, a to je jeden z hlavních důvodů, proč je Windows RT kritizován. Velkou výhodou je, že 10
1.1. Platformy firmy Microsoft uživatel po zakoupení přístroje s Windows RT dostane balík Microsoft Office zdarma. Store nabízí i několik her, které nabízí Xbox 360. Windows RT podporuje Smartglass. Tato technologie umožňuje propojení obrazovek tabletu a konzole Xbox. Uživatel může sledovat film nebo hrát hru na konzoli Xbox a na tabletu sledovat informace o filmu nebo hře. Jak bylo zmíněno, Microsoft Office jsou zdarma. Všechny programy v tomto balíku nejsou vytvořeny pro rozhraní Metro. Při otevření programu se systém přepne z Metro UI na Windows Desktop a poté je program spuštěn. Nicméně design těchto aplikací je velmi elegantní. Například Microsoft PowerPoint obsahuje velmi rozmanitou kolekci šablon pro tvorbu prezentací.
1.1.2.5
Výkonost Windows RT
Operační systém se nabootuje a spustí do 30 sekund. Systém je velmi svižný a pohotový. Jediný menší problém je při prvním spuštění aplikací, kdy trvá otevření trochu déle. Windows RT rychle přepíná mezi aplikacemi, které běží na pozadí, a nemá problém rychle přepnout mezi právě rozehranou hrou a rozkoukaným filmem. Velmi rychlý je běh dvou aplikací na rozdělené obrazovce. Výkonost Windows RT je velmi vysoká. Při testování tabletu Microsoft Surface dosáhla životnost baterie 7,5 hodiny při nepřetržitém sledování filmu.
Video Všechny tablety s tímto operačním systémem poskytují vysoké rozlišení v HD. Uživatel si může stahovat filmy přes Xbox Video. Služba funguje jako u Xbox 360. Uživatel si může stahovat, půjčovat nebo streamovat filmy. Poté co je film stažen, je možné sesynchronizovat film na všech zařízeních s Windows nebo Windows Phone.
1.1.2.6
Podporované soubory
Windows RT limituje formáty souborů. To je důležité zejména z důvodu bezpečnosti zařízení. Pro video podporuje pouze WMV a MK4 a nepodporuje AVI nebo MKV. Podporované formáty pro hudbu jsou například M4A, MP3, MPEG, WMA, AAC. 11
1. Analýza 1.1.2.7
Internet Explorer
Internet Explorer je pouze jediným podporovaným prohlížečem. Lze spustit v Metro UI nebo v na Desktopu. Je přizpůsoben ovládaní přes dotykové rozhraní. Například jsou zde velké ikony, umožňuje zoomovat a přejetí prstem do horní nebo spodní části spustí address bar. Shrnutí Metro UI je velmi atraktivní rozhraní a určitě se hodí pro ovládání tabletů. Interaktivní dlaždice, u kterých se dá nastavovat velikost, jsou velkou zbraní pro tento systém. Další pozitivum je kvalitní multitasking a split screen. Každého uživatele potěší dlouhá životnost baterie a kancelářský balík Microsoft Office zdarma. Velkou nevýhodou je Windows Desktop, který zde prakticky plní funkci spuštění pár programů a nastavení operačního systému. Celkově je tato část zbytečná a mate uživatele, protože ikony jsou zde malé a nejsou přizpůsobeny ovládání přes dotykové rozhraní. Absence aplikací pro sociální sítě jako jsou Facebook nebo Twitter operačnímu systému také ubírá na kvalitě. Je tedy otázkou, jestli si pořídit tablet s Microsoft Windows RT nebo raději s plnohodnotným operačním systémem Windows 8. Cenové relace těchto zařízeních se moc neliší a to je možná jedním z důvodů, proč prodej Windows RT nebyl profitabilní.
1.1.3
Windows 8 [17]
Nástupcem systému Windows Phone 7. OS byl uveden do prodeje v říjnu 2012. Je určen pro desktopy, notebooky a tablety. Systém využívá jádro z Windows 7 a nové Metro UI. K dispozici jsou 2 verze ke koupi – Windows 8 a Windows 8 Pro. Lze si vybrat mezi 32 bitovou a 64 bitovou verzí. Na rozdíl od systému Windows RT, Windows 8 nenabízí kancelářský balík Microsoft Office. Tyto verze Windows 8 nelze instalovat na tablety s Windows RT s procesory ARM. Plnohodnotná verze Windows 8 se vyskytuje pouze na jediném tabletu s procesorem ARM, a tím je Microsoft Surface RT. Požadavky • Procesor 1GHz • 1GB RAM pro 32bit verzi, 2GB RAM pro 64bit verzi • 20GB místa na disku 12
1.1. Platformy firmy Microsoft • Grafická karta s ovladačem WDDM Jestliže uživatel chce zajistit běh aplikací z Windows Store, je nutné mít nastavené minimální rozlišení 1024 x 768 a pro běh dvou aplikací na jedné obrazovce je zapotřebí mít nastavené minimální rozlišení obrazovky 1366 x 768. 1.1.3.1
Desktop UI
Klasické rozhraní, které je velmi podobné Windows 7, kde je povoleno instalovat aplikace třetích stran. Velká změna pro uživatele je odstranění Start buttonu a Start menu. Další změnou je odstranění rozhraní Aero Glass. Aero Glass bylo poprvé představeno v operačním systému Windows Vista. Poskytuje grafické efekty, jako je například částečná průhlednost oken. Toto rozhraní bylo odstraněno z důvodů úspory baterie a výkonu grafické karty. Start button už není k dispozici, ale zobrazí se, když uživatel zacílí myš do dolní levé části obrazovky. Po najetí myší do pravé dolní části má uživatel k dispozici menu, které poskytuje například vyhledávání, nastavení nebo správu zařízení. Levý horní roh po najetí myší slouží ke spuštění nastavení zařízení. Metro UI Toto rozhraní je stejné jako u Windows RT. Programátoři, kteří chtějí vytvořit aplikace pro Windows Store, mohou použít knihovny pro platformu RT a zároveň pro knihovny WIN32. Programátor může založit jeden projekt a když použije knihovny pouze z RT, aplikace bude dostupná pro Windows RT a Windows 8. Jakmile bude využívat knihovny WIN32, je nutné založit dva projekty. Výkonost Windows 8 Windows 8 běží mnohem rychleji než jeho předchůdce Windows 7. Díky změnám, které byly provedeny ve správě procesů (např.: vytváření, ukončování nebo probouzení) běží bootování, probouzení z hybernace, nebo vypínání mnohem rychleji. Nové zajímavé vlastnosti • Framework pro lepší správu tiskáren • Podpora ovladačů pro rozhraní USB 3 13
1. Analýza Tabulka 1.1: Rychlost operací Windows 7 a Windows 8 Windows 7 Windows 8
Startup 13s 7s
Shutdown 13s 7s
Resume 25s 16s
Hibernate 16s 7s
• Vylepšená správa rozšířené obrazovky při práci na více monitorech • Monitorování a správa při práci se soubory Shrnutí Velkou výhodou je zrychlení systému oproti Windows 7. Uživatel ocení i levný upgrade z Windows 7. Uživatel si může koupit levnější tablet s Windows RT nebo si připlatí a zakoupí plnohodnotný Windows 8. Nevýhoda je, že tyto platformy nejsou zcela propojeny, a bude ještě chvíli trvat, než bude vše propojeno i s platformou Windows Phone. Ovládání pomocí dotykového rozhraní je velmi vydařené a propracované, naopak ovládání pomocí myši a klávesnice se pro tento systém moc nehodí a budou muset přijít patřičné změny a opatření.
1.1.4
Windows 8.1 [18]
Tato nová verze Windows 8.1 byla zpřístupněna 17. srpna 2013 ve Windows Store. Společnost Microsoft rozhodla, že se nebudou dále vydávat service packy, proto se všechny opravy nachází v této nové verzi. Dále se Microsoft chlubí vylepšeným vyhledáváním a výraznou změnou ve Windows Store. Ve staré verzi bylo možné rozdělit obrazovku na 2 aplikace a v současné době lze rozdělit již na 4 aplikace. Uživatel si může vytvořit obrázkové heslo. Skydrive se nachází ve Windows Store s novým rozhraním. Vyhledávání Vyhledávání kombinuje výsledky ze souborů uložených na disku, Skydrivu, ze souborů, které pocházejí z aplikací a nakonec z internetu. Výsledky z internetu pocházejí z vyhledávače Bing. Při stisku klávesové zkratky pro vyhledávání se nevyhledává v jednotlivých kategoriích, ale ve všech najednou. Vyhledávat lze i v konkrétních aplikacích. Microsoft sliboval, že vyhledávání bude fungovat i pro Outlook a bude vyhledávat konkrétní emaily. Tato funkčnost bohužel není zatím dostupná. 14
1.1. Platformy firmy Microsoft Výsledky, které pochází z vyhledávače Bing, zobrazují v závislosti na klíčových slovech odkazy na wikipedii, youtube, bing obrázky, mapy a mnoho dalších. Tento způsob vyhledávání se přizpůsobuje především pro ovládání tabletů a je velmi užitečný.
Metro UI Microsoft razí teorii, že systém, který kombinuje Metro UI a Desktop UI se bude používat na všech velikostech obrazovek zařízení. Nová verze usnadňuje práci zejména rozdělením obrazovky tzv.: "Split screen", kde můžou běžet až čtyři aplikace najednou. Pohodlnější a intuitivnější ovládání se vyskytuje u mini tabletů. Systém nabízí mnoho dalších grafických a barevných stylů, které zahrnují grafické animace prvků v prostředí Metro UI. Některé styly ve verzi Windows 8 byly odstraněny. Dlaždice je možné nastavit na několik velikostí. To umožňuje zobrazit různé notifikace, informace nebo upozornění. Uživatel je schopen si přečíst na největším typu dlaždice až 3 emaily. Start screen poskytuje spravování více dlaždic najednou, kategorizovat a vložit je do skupin. Aplikace se dají řadit dle počtu spuštění a uživatel si tak může přidat na plochu aplikace, které často používá.
Desktop UI Nejočekávanější změnou všech uživatelů této verze je návrat Start buttonu. Start button lze vypnout v nastevení. V Exploreru se nezobrazují knihovny, ale je možné nastavit viditelnost knihoven v nastavení.
Shrnutí Vylepšené Metro UI je velkým kladem. Built-in Skydrive svou nově vylepšenou synchronizací přináší mnohé výhody v ukládání souborů a jejich sdílení na více zařízeních. V mnohých výkonostních testech si Windows 8.1 opět polepšil oproti předchozí verzi. Vylepšené vyhledávání, které zobrazuje výsledky zároveň z offline uložených dokumentů a z webu, poskytuje velmi silný nástroj. Nevýhodou jsou skryté knihovny, které se nezobrazují v Exploreru, ale pouze v aplikacích z Windows Store. To je pro uživatele, kteří byli zvyklí na tuto funkčnost několik let, hodně matoucí. Nová funkčnost aplikace SkyDrive je velmi přínosná, ale bohužel funguje pouze na verzi 8.1. 15
1. Analýza
1.2 1.2.1
Market Share Windows Phone
V současné době je platforma Windows Phone, určená pro mobilní zařízení, na třetím místě. V roce 2013 začal velký propad prodeje telefonů fungujících na platformě Blackberry a to je jeden z hlavních důvodů proč se Windows Phone dostal na třetí místo. Mezitím platformy Android a iOS mezi sebou neustále bojují o první místo, podíl Windows Phone neustále roste. Nejrychlejší růst prodeje těchto telefonů je v Evropě. V posledním čtvrtletí roku 2013 byl podíl na trhu 6.1%, ale první čtvrtletí roku 2014 přineslo na tomto kontinetu výrazný růst v podobě 10.1%. Všechny majoritní trhy jsou shrnuty v tabulce níže 1.2. Tabulka v prvním sloupci ukazuje statistiku v Německu, Velké Británii, Francii, Itálii a Španělsku. Druhý sloupec ukazuje podíl platforem v USA, Číně, Austrálii, Japonsku a Evropě. Statistika Evropy je tvořena výše zmíněnými peti zeměmi [20, 21]. Jedním z důvodů proč Windows Phone začal růst, je strategie nalákat uživatele na low-endowé telefony. Uživatel si zvykne na prostředí Microsoft a poté začne mít zájem o mid-endové nebo high-endové modely. Jedním z typických low-end telefonů je model Nokia Lumia 520 1.3. Na zahraničních trzích se dá pořídit za 80 dolarů a v České republice za 2800kč. Díky této částce je to nejlevnější telefon společnosti s Windows Phone a stal se nejprodávanějším z modelů společnosti Nokia. Model nabízí téměř stejnou funkčnost jako model Nokia Lumia 720. Chybí například fotoaparát na přední straně a LED dioda u hlavního fotoaparátu. Běžný uživatel se bez těchto funkcí dokáže obejít. Na konci února roku 2014 na Mobile World Congress v Barceloně Nokia oznámila, že uvede nové 2 low-endové modely s operačním systémem Android [7]. Jedná se o modely Nokia X1.4 a X+. Zajímavé je, že uživatelé těchto modelů nebudou moci instalovat aplikace z Google Play, ale z Nokia Store. Je tedy zřejmé, že Nokia vydala tyto modely, aby získala uživatele levných zařízení platformy Android, Symbian nebo BlackBerry,a následně se jim snažila nabídnout dražší modely s operačním systémem Windows Phone. Společnost Microsoft a Nokia se netají strategií, že se snaží získat tuto cílovou skupinu uživatelů. Je to velmi odvážný krok a čas prověří, jak byl úspěšný. 16
1.2. Market Share
Obrázek 1.2: Podíl na majoritních trzích jednotlivých platforem
1.2.2
Windows 8
Velká kritika nového rozhraní Metro UI nepřinesla Windows 8 žádný velký propad v prodeji. V lednu roku 2014 Microsoft prodal 200 milionů licencí. V porovnání s Windows 7 se za stejné období prodalo v minulosti 240 milionů licencí Windows 8. Windows 8.1 vytlačuje postupně Windows Vista a Windows 8, ve kterých uživatelé mají možnost bezplatně upgradovat na 17
1. Analýza
Obrázek 1.3: Nokia Lumia 520
Obrázek 1.4: Nokia X verzi 8.1. Jediný operační systém, který konkuruje společnosti Microsoft, je iOS od společnosti Apple. Ten má v současné době 7,68
1.3
Design GuideLines [19]
Filozofie a design aplikací Windows Phone vystihují slova jednoduchost a přehlednost. Jednotlivá okna aplikace pracují velmi rychle. 18
1.3. Design GuideLines [19]
Obrázek 1.5: Porovnání podílů na trhu operačních systémů
1.3.1
Button [1]
Button vyvolává akci nebo posloupnost akcí aplikace, jakmile na něj uživatel klikne. Pozadí buttonu je většinou nastaveno na volitelnou barvu nebo obrázek. Dělí se na 3 stavy - normal, pushed a inactive. Ve stavu pushed se změní barva pozadí, aby uživatel věděl, že button stisknul. Je doporučeno použít button, jakmile stránka obsahuje jednu nebo dvě akce, např. Accept a Cancel. Jakmile stránka obsahuje více akcí, je doporučeno použít CheckBox nebo RadioButton. Další doporučení vzhledu: • Button by měl obsahovat mximálně 2 slova. • Text buttonu by měl obsahovat sloveso • Text buttonu může být dynamický • Pro text buttonu by měl být použit systémový font Windows Phone má k dispozici několik typů buttonů pro různé případy užití. Například pro zobrazení stejného buttonu na více stránkách, je doporučeno použít ApllicationBar. 19
1. Analýza
1.3.2
Grid view a List view [5]
Grid view and List view je zpravidla kolekce prvků sloužící pro zobrazení obsahu ve Windows Store a Windows Phone aplikacích. Poskytují sladěné zobrazení položek a jsou optimalizované pro dotykové ovládání.
Obrázek 1.6: Ukázka ListView Tyto komponenty je správné použít v těchto případech • Zobrazení dat do skupin • Výběr uživatele jedné nebo více položek • Nastavení akcí jak se data nahrají • Pro správné nastylování položek a nastavení jejich událostí • Zobrazení položek různých velikostí List view nebo grid view se typicky používá pro zobrazení všech položek a následného zobrazení vybrané položky. Data můžou být vloženy buď dynamicky nebo staticky.
1.3.3
Pivot [9]
Pivot je kontejner, který je zpravidla přes celou obrazovku a slouží pro snadnou navigaci mezi dalšími pivoty. Pivoty většinou pochází ze stejné kolekce dat. Například emailová aplikace využívá dva pivoty pro kategorie přečtené a nepřečtené emaily. Kdy použít a nepoužít pivot 20
1.3. Design GuideLines [19] • Je vhodné použít vlastní téma pro zobrazení a přepsat tím výchozí nastavení pivotu. • Kolekce pivotů se chová jako kruhová fronta a je nutné navrhnout správné flow aplikace. • Pro správnou výkonost aplikace je doporučené použít 4 - 5 pivotů. • Pivot je vhodné použít pro zobrazení objektů nebo dat stejného typu. • Není vhodné vkládat pivot do jiného pivotu. • Není doporučené vkládat slider, scroll viewer a další komponenty, kde se používají gesta. • Je zakázáno vkládat textbox do pivotu.
1.3.4
Progress control [11]
Progress control poskytuje uživateli zpětnou vazbu, jestliže aplikací vykonává časově náročnou úlohu. Uživatel je touto cestou vyrozuměn, že aplikace právě pracuje. Progress control se dělí na "determine"(zobrazuje aktuální počet procent) a "interminate"(zobrazuje pouze informaci, že apliakce pracuje). Kdy použít a nepoužít • Pokud operace trvá méně jak 2 sekundy, nastaví se zobrazení vždy na půl sekundy, aby progress control pouze neprobliknul. • Pokud jste přesně schopni určit, kolik procent z dané akce je hotovo, použijte "Determine Progress control". • Pro stahování věcí z internetu použijte "Interminate Progress control". • V některých případech je vhodné nastavit zastavení nebo zrušení prováděné akce. • Je zakázané měnit pozici a velikost komponenty v průběhu akce. • Jakmile je akce dokončena, je nutné počkat na dokončení animace.
1.3.5
TextBox [14]
Text box umožňuje uživateli zadat textovou nebo číselnou hodnotu pomocí virtuální nebo fyzické klávesnice. Text box může být nastaven na jednu nebo více řádek textu. 21
Kapitola
Návrh Tato kapitola popisuje samotný návrh aplikace. Aplikace byla navržena pro anglický jazyk a z tohoto důvodu je zachováno anglické pojmenování stránek. Po dohodě s vedoucím práce bylo domluveno, že aplikace vznikne pro platformy Windows Phone, Windows RT a Windows 8. Celá práce bude obsahovat tyto tři projekty • Portable Class Library • Windows Phone projekt • Windows Store projekt pro platformy Windows RT a Windows 8
2.1
Případy užití
Po důkladné analýze byly navrženy případy užití, které reprezentují, jak bude výsledná aplikace vypadat. Veškeré diagramy byly vytvořeny v programu Microsoft Visio.
2.1.1
Aktéři
Aplikace obsahuje pouze jeden typ uživatele, který se nemusí do aplikace logovat. Uživatel může nakupovat jednotlivé produkty In-App purchase. Zakoupené produkty si aplikace ukládá jako svůj stav na lokální úložiště telefonu. 23
2
2. Návrh
2.1.2
MainPage
Úvodní stránka aplikace nebo také Landing Page se skládá ze tří podstránek Main, Gallery a Store. 2.1.2.1
Main
Po spuštění aplikace se uživateli zobrazí stránka Main. Z této stránky je možné zahájit proces tvorby TextShapu.
Obrázek 2.1: Use case Hlavní obrazovka
2.1.2.2
Gallery
Stránka Gallery zobrazuje všechny TextShapy, které uživatel vygeneroval. Uživatel může TextShape exportovat na sociální sítě, odeslat emailem nebo zkopírovat do zprávy. Dále je zde možnost TextShape smazat.
Obrázek 2.2: Use case Gallery
24
2.1. Případy užití 2.1.2.3
Store
Stránka Store zobrazuje všechny In-App purchase produkty, které je možné zakoupit. Nejprve jsou seřazeny všechny abecedy, které se řadí do skupiny "Durable", a pod nimi jsou zobrazeny HD exporty, které se řadí do skupiny "Consumable". Uživatel, který si chce zakoupit produkt, je přesměrován na oficiální stránky společnosti Microsoft, kde potvrdí platbu. Aplikace se následovně spustí a na základě úspěšnosti provedení platby přidá uživateli zakoupený produkt.
Obrázek 2.3: Use case Store
2.1.3
ShapeInput
Na stránce "ShapeInput"uživatel zadává textový vstup, ze kterého se vytvoří výsledný TextShape. Uživatel má k dispozici 3 řádky a každý řádek může mít maximální velikost 11 znaků. Znaky jsou omezeny pouze na velká a malá písmena a žádný řádek nesmí obsahovat mezeru.
2.1.4
ShapeBuilder
Stránka ShapeBuilder zobrazuje náhled TextShapu na základě vstupního textu zadaného uživatelem. Uživatel má k dispozici na výběr z několika abeced. Některé abecedy jsou zdarma a některé si uživatel musí koupit. Každá abeceda má předdefinované 3 barvy pozadí, které může uživatel zvolit pro barvu pozadí výsledného TextShapu. Zde má uživatel znovu možnost zakoupit abecedu nebo 1 HD export. 25
2. Návrh
Obrázek 2.4: Use case ShapeInput
Po výběru abecedy a barvy pozadí si uživatel může zvolit, jestli výsledný TextShape uloží v normální nebo HD kvalitě. Po uložení obrázku v HD kvalitě se uživateli odečte 1 HD export.
Obrázek 2.5: Use case ShapeBuilder
26
2.2. TaskGraph
2.2
TaskGraph
Task graf vychází z use case diagramů a reprezentuje akce, které lze provádět na konkrétní stránce, a na kterou stránku se uživatel dostane po této akci. Obrázek 2.6 reprezentuje Task graf pro projekt Windows Phone. Obrázek 2.7 reprezentuje Task graf pro platformu Windows Store, který se liší tím, že zde chybí stránka ShapeInput. Tento krok byl učiněn z důvodu, že v desktopové aplikaci je hardwarová klávesnice a výše zmíněná stránka by zde byla zbytečná.
Obrázek 2.6: TaskGraph Windows Phone
2.3
Wireframe
Wireframy slouží ke grafickému návrhu aplikace. Mohou být nakresleny ručně na papír nebo pomocí grafického editoru. Byly předělány podle Design 27
2. Návrh
Obrázek 2.7: TaskGraph Windows Store
Guidelines a velký důraz byl kladen na zachování nativních prvků grafických komponent Windows Phone. Na obrázcích 2.8 a 2.9 se nachází wireframy pro platformu Windows Phone. Obrázek 2.8 reprezentuje hlavní stránku, kde je použita grafická komponenta pivot obsahující podstránky main, gallery a store. Obrázek 2.9 reprezentující stránku ShapeBuilder využívá také pivot. Uživatel může posuntím doleva nebo doprava vybírat mezi jednotlivými abecedami. Wireframy pro pro platformu Windows 8 a Windows RT jsou na obrázcích 2.10 a 2.11. Hlavní stránka používá komponentu Hub, kde se přesouvá swipováním mezi podstránky main, gallery a store. ShapeBuilder využívá komponentu FlipView, kde kliknutím na šipku doprava nebo doleva se přesouvá mezi abecedami. 28
2.4. Doménový model
Obrázek 2.8: Wireframe Hlavní obrazovky platformy Windows Phone
Obrázek 2.9: Wireframe ShapeBuilder platformy Windows Phone
2.4
Doménový model
Doménový model na obrázku 2.12 obsahuje třídy Shape a Alphabet, které patří v návrhovém vzoru MVVM 2.6 do kategorie Model a třída MainViewModel, která patří do kategorie ViewModel. Tyto třídy se nachází v knihovně Portable Class Libraries 2.8. Aplikace pro Windows Phone a Win29
2. Návrh
Obrázek 2.10: Wireframe Hlavní obrazovky platformy Windows Store
Obrázek 2.11: Wireframe ShapeBuilder platformy Windows Store
dows Store referencují tuto knihovnu a pomocí Data Bindingu2.5 pracují s daty ve třídě MainViewModelu.
2.5
Data binding [2, 29]
Data binding poskytuje mechanismy pro reprezentaci dat v grafickém rozhraní. Tento framework využívá best practices pro oddělení dat od grafického rozhraní, zajišťuje metody a postupy pro spojení dat a uživatelského rozhraní, a dále kontroluje, jestli grafická komponenta, která pracuje s daty, 30
2.5. Data binding [2, 29]
Obrázek 2.12: Doménový model
notifikuje všechny jejich změny. V aplikacích pro Windows Phone je možné provádět operace mezi datovými zdroji a uživatelským rozhraním manuálně. To znamená, že v každé instanci stránky se pro každou grafickou komponentu nastaví v code behind její chování a vlastnosti. Jestliže jsou data aplikace jednoduchá a jejich rozsah není velký, je výše zmíněný postup rozumný. V komplexnějších aplikacích, kde je nutné vykonat mnoho operací mezi daty a grafickým rozhraním, je tento postup velmi obtížný. Představuje riziko vzniku chyb a bugů v logice aplikace. V průběhu vývoje aplikace je obvyklé, že se budou měnit požadavky na její funkčnost. Všechny tyto změny vedou k přepsání zdrojového kódu, a aplikace se může stát zranitelnou. Platforma Windows Phone poskytuje podporu automatické inicializace grafického rozhraní od zálohování dat po propagování změn v obou směrech. Hlavní cíle Data bindingu: • Propojení různorodých datových zdrojů (web services, SQL queries, business objects atd.). Datové zdroje jsou reprezentovány ve zdrojovém kódu aplikace jako třídy. • Zjednodušení propojení a synchronizace dat. Vývoj nemusí propagaci dat vykonávat manuálně. • Separace aplikační logiky a grafického rozhraní. Data binding je vzor, který se definuje jako vztah mezi daty aplikace a uživatelským rozhraním, které zobrazuje data bez tzv. "hard-coding". Specifikuje, jak se data zpropagují do grafického rozhraní. Tímto vzorem se maximalizuje SoC (Sepration of Concerns). SoC vymezuje hranice mezi odlišnými částmi aplikace. Tzn. že UI komponenty jsou zodpovědné pouze za uživatelské rozhraní a datové komponenty pracují s datovými zdroji. Každá komponenta se tedy především stará pouze o svou funkčnost a má minimální zodpovědnost za jinou komponentu. 31
2. Návrh
Obrázek 2.13: Příklad DataBindingu
Hlavní výhodou SoC je oznámení notifikace při jakékoliv změně. Při jakékoliv změně na datové vrstvě aplikace nepotřebuje žádné další funkce pro vyvolání změn a překreslení uživatelského rozhraní. O vše se postará datová vrstva, která vyvolá "change notification event"a tímto se zpropagují veškeré změny do UI. Stejně tak to funguje i naopak, když uživatel vykoná změnu v UI, a všechny změny se tím zpropagují zpět na datovou vrstvu.
2.5.1
Data-binding collections
Běžnou záležitostí je provázání kolekce dat s grafickou komponentou. Kolekce dat se běžně provazuje s vlastností "ItemsControl", kterou využívají komponenty ListBox, ListPicker nebo LongListSelector. Pro provázání kolekce je nutné udělat následující kroky: • Objekt s kolekcí dat musí implementovat rozhraní "IEnumerable" • Nastavit objekt kolekce "ItemsSource"vlastnosti "ItemsControl" • Při zobrazení více vlastností kolekce je dobré použít "DataItemTemplate". Komponenta, která je takto nastavena, se mnohem lépe formátuje.
2.5.2
Command binding
Rozhraní ICommand rozšiřuje nastavení viewmodelu a může být provázána jako vlastnost view. Velkou výhodou Command bindingu je eliminace kódu v "code behind"třídy view a zvýšení "Decouplingu"mezi view a viewmodelem. Vešekeré provázání proběhne v XAMLu. 32
2.6. The Model-View-ViewModel pattern [24, 29]
2.5.3
Type-value converters
Pro formátování třídění grafických komponent lze použít Type/value konvertery. Je možné převádět datové typy komponenty na jiné datové komponenty. To například umožní zobrazit pouze některé prvky kolekce na základě metody rozhraní IValueConverter.
2.5.4
Data validation
Windows Phone poskytuje validaci v módu "two-bindings". Validace se nastaví uvnitř třídy modelu. V každém property setteru se vyhodí výjímka, jakmile jsou zadána neplatná data. V XAMLu se nastaví vlastnosti NotifyOnValidationError a ValidatesOnExceptions na hodnotu true. V grafické komponentě je nutné vytvořit event handler BindingValidationError a nastavit chování komponent.
2.6
The Model-View-ViewModel pattern [24, 29]
Tento návrhový vzor se používá především v aplikacích Windows Phone nebo Windows 8. Model-View-ViewModel se vyvinul z návrhového vzoru Model-View Controller (MVC). Hlavním cílem tohoto vzoru je oddělit design od zdrojového kódu. Výhodou je mnohem jednodušší testování. Vývojář netestuje celou aplikaci jako celek, ale testuje zvlášť každou vrstvu. Zde jsou uvedeny všechny tři vrstvy: • View - Grafické rozhraní reprezentované XAML kódem. • Model - Datové objekty, které reprezentují jednotlivé datové zdroje. • ViewModel - Tato část je podobná controlleru z MVC, která operuje mezi modelem a view. Obrázek uvedený níže ilustruje reprezentaci jednotlivých vrstev. Třídy view, viewmodel a model jsou odděleny. Ve Windows Phone aplikacích je možné využívat stejný viewmodel pro jednu nebo více stránek. Žádné view tedy není závislé na vytváření viewmodelu. 33
2. Návrh
Obrázek 2.14: Ukázka návrhového vzoru MVVM
2.7
Isolated storage [6, 29, 27]
Isolated storage poskytuje mechanismy pro izolaci, bezpečnost a ukládání dat. Je navržena tak, aby nedocházelo k porušení da,t a poskytuje přístup dat pouze aplikacím, které mají právo na jejich zobrazení. File systém obsahuje běžnou adresářovou strukturu dat, ke které běžný uživatel nemá přístup.
2.7.1
Isolate storage settings
Všechny aplikace si potřebují uložit stav, ve kterém se nacházeli před posledním vypnutím, aby se při příštím spuštění nahrály do stavu, ve kterém je uživatel zanechal. Některé malé aplikace si potřebují uložit pouze několik málo hodnot jako např. nejvýše dosažené skóre, uživatelské jméno atd. Pro takto málo dat je vhodné použít IsolatedStorageSettings z jmenného prostoru IsolatedStorage. Aplikace si ukládá hodnotu klíč a hodnotu bez nutnosti, aby musela pracovat se soubory nebo provádět serializaci objektů. Třída IsolateSorageSettings je pouze wrapper, který provádí serializaci/deserializaci, a obstarává čtení a zápis do souborů tak, aby se vývojář nemusel o vykonání těchto funkcí starat. Jelikož se všechny uložené hodnoty automaticky serializují do slovníku, který se nachází v lokálním úložišti aplikace, musí být všechna tato data serializovatelné třídou DataContractSerializer. Existuje ale několik typů, jako je například ObservableCollection, které nejdou touto třídou serializovat. Třída IsolatedStorageSettings hodnoty, které ukládá do slovníku dále převádí do XML souboru. Narůstající velikost tohoto souboru může způsobit pokles výkonu, zejména při spuštění nebo vypnutí aplikace. Tento způsob je tedy vhodný pro použití primitivních typů a menších objektů. 34
2.8. Portable Class Libraries [10, 29] Není doporučené ukládat data do IsolatedStorage, které zpracovává aplikace a zároveň BackGround Agent, protože může dojít k jejich porušení.
2.7.2
Isolated storage files
Pro práci se soubory IsolatedStorage API nabízí třídu IsolatedStorageFile. IsolatedStorageFile je jednoduchý wrapper nad file systémem, který poskytuje metody pro vytváření, otevírání, přesouvání a mazání souborů a adresářů. Jediný Rozdíl mezi IsolatedStorageFile a Win32 API je, že IsolateStorageFile izoluje data mezi aplikacemi. API neposkytuje žádné rozhraní pro přístup k datům zvenčí. Z pohledu aplikace jsou všechny cesty souborů a adresářů relativní. Třídu IsolatedStorageFile je vhodné použít pro ukládání větších objektů nebo kolekcí.
2.8
Portable Class Libraries [10, 29]
Ve správně navržené aplikaci, která dodržuje všechny principy návrhového vzoru MVVM, se veškerá logika nachází v modelu a viewmodelu. Jádro aplikace, které se skládá z modelu a viewmodelu, se dá sdílet mezi aplikacemi pro Windows Phone a Windows 8. Existují techniky, které sdílí grafické komponenty na vrstvě view. Portable Class Libraries jsou tedy navrženy pro sdílení kódu mezi platformy. Knihovny, které jsou sdílené v jádru, musí podporovat všechny platformy. Doporučuje se, aby všechen kód obsažený v PCL mohl být volán na obou platformách.
2.8.1
Problémy mezi platformami
Mezi platformy lze napsat mnoho sdíleného kódu, ale mnohokrát se stane, že některé knihovny nebo třídy nebude možné použít. PCL projekt nemůže volat přímo třídy, které do něj nepatří, ale může je volat nepřímo. Jednou z možností, jak uvedené problémy řešit, je vytvořit abstraktní třídu. Na konkrétní platformě se vytvoří její potomek.
2.8.2
Conditional compilation
V některých případech může nastat situace, kdy většina zdrojového kódu bude stejná a například knihovna, která bude poskytovat funkčnost v tomto 35
2. Návrh kódu, bude pro každou platformu jiná. Vývojář může vložit podmínku pro podmíněnou kompilaci a kompilátor potom použije knihovnu pro určenou platformu. \# i f NETFX_CORE u s i n g A p p l i c a t i o n D a t a . Current . RoamingFolder ; \# e l s e i f WINDOWS_PHONE u s i n g A p p l i c a t i o n D a t a . Current . L o c a l F o l d e r ; \#e n d i f Klíčové slovo NETFX_CORE je pro platformu Windows 8 a WINDOWS_PHONE pro platformu Windows Phone. Tyto zkratky pro podmíněnou kompilaci fungují pouze pro vývojářem vytvořený zdrojový kód. Pro nativní kód se použijí klíčová slova WINAPI_FAMILY_APP a "WINAPI_FAMILY_PHONE_APP".
2.8.3
Sdílení vlastního kódu pomocí partial classes
Projekt využívající podmíněnou kompilaci při narůstajícím množstvím kódu se může stát nepřehledným. Elegatnějším řešením jsou partial classes. Partial class je označení pro třídu, která se může nacházet ve více zdrojových souborech. To zajišťuje klíčové slovo partial. PCL potom bude obsahovat třídu, která má funkce skládající se ze společných knihoven. V projektu bude zbytek třídy, která bude obsahovat funkce implementované knihovnami konkrétní platformy. p a r t i a l c l a s s Car { p u b l i c v o i d Break ( ) { vsechny p l a t f o r m y } } p a r t i a l c l a s s Car { p u b l i c v o i d Turbo ( ) { pouze Windows Phone } }
36
Kapitola
Implementace 3.1
Použité nástroje
Pro vývoj aplikací bylo použito vývojové prostředí Microsoft Visual Studio 2013 [16] verze Ultimate. Toto prostředí poskytuje velmi rozsáhlý nástroj pro vývoj a testování aplikací. Velkou výhodou je emulátor, který simuluje reálné zařízení, a lze tak otestovat aplikaci ve všech dostupných rozlišeních.
3.2
Skládání obrázků
Tvorbu obrázků zajišťuje třída Builder. Ta generuje výsledné třídy WriteableBitmap pro export nebo pro náhled na stránce ShapeBuilder. Během vývoje bylo prozkoumáno několik variant, jak výsledné obrázky generovat, ale nakonec byla vybrána varianta s maticí přechodů, podle které se počítají mezery mezi písmeny. Na základě vstupního textu zadaného uživatelem jsou vypočteny rozměry bitmapy. Vykreslí se pozadí a poté se načítají a kopírují obrázky každého písmene do výsledné bitmapy. Pokud je bitmapa určená pro export je do něj nakopírována ještě bitmapa obsahující text wattermarku.
3.2.1
Matice přechodů
Každá abeceda má svojí matici přechodů, která obsahuje koeficienty, které určují mezery mezi dvěma písmeny. Už při kalkulaci velikosti bitmapy algoritmus počítá velikosti písmen a mezeru mezi nimi. s = h ∗ ci,j • s je mezera 37
3
3. Implementace • h je výška • c je koeficient • i je aktuální písmeno • j je následující písmeno Písmena mají různé velikosti šířky. Bez tohoto postupu vznikaly opticky různé mezery mezi jednotlivými písmeny. Nyní je tedy zajištěno, že na výsledném obrázku jsou opticky relativně stejné mezery.
3.3 3.3.1
Použité knihovny WriteableBitmap [25]
WriteableBitmap poskytuje API, které umožňuje měnit bitmapu. V prostředí WPF jsou Bitmapy neměnné objekty. To znamená, že nelze provádět jakékoliv změny v těchto objektech. Z těchto je dobré využít třídu WriteableBitmap, která poskytuje funkce pro změny v bitmap2.. Tato třída poskytuje přístup k jednotlivým pixelům a manipulaci s nimi. To se hodí zejména při dynamickém zpracování bitmap. WriteableBitmap poskytuje pouze základní funkčnost pro přístup k Bitmapám. Pokročilé funkce, které byly použity v této práci, poskytuje knihovna WriteableBitmapEx, která rozšiřuje třídu WriteableBitmap.
3.3.2
WriteableBitmapEx [26]
Knihovna WriteableBitmapEx je kolekce funkcí, které rozšiřují třídu WriteableBitmap, která je dostupná pro platformy Windows Phone, WPF, Windows Store nebo Silverlight. Tato knihovna slouží pro přímý přístup, modifikaci a následné vykreslení do bitmapy, ze které lze velmi rychle vygenerovat obrázek. API této knihovny je velmi minimalistické a metody jsou velmi podobné jako knihovna GDI+. Metody, které rozšiřují knihovnu WriteableBitmap, se řadí do třech skupin: rychlé 2D vykreslování, metody pro konverzi bitmap a skupina, která využívá funkce blit. Všechny třídy této knihovny obsahují klíčové slovo partial. Mechanismus se postará o rozšíření třídy WriteableBitmap těmito metodami. Je možné také přidat pouze některé rozšiřující. 38
3.3. Použité knihovny Výkonost Metody knihovny WriteableBitmapEx jsou mnohem rychlejší než potomci třídy Shape. Například vykreslování čáry je 20 - 30 krát rychlejší než třída Line z platformy SilverLight. V projektu, který bude vykreslovat mnoho dynamických elementů, je vhodné využít knihovnu WriteableBitmapEx. Funkce Zde jsou uvedeny některé metody, které jsou zajímavé, nebo byly v této práci využity. Bázová třída • GetPixel • SetPixel • Metody pro klonování WriteableBitmap • Foreach metoda k procházení WriteableBitmapy Transformace • Metoda Crop • Změna velikosti využívající bilineární interpolace • Otočení bitmapy o 90 stupňů Konverze • Konverze WritebleBitmapy do pole bajtů • Vytvoření WriteableBitmapy z pole bajtů • Vytvoření WriteableBitmapy ze zdroje projektu • Vytvoření WriteableBitmapy ze streamu, který podporuje konkrétní platforma • Metody sloužící k uložení do PNG formátu Blit • Různé módy jako jsou například : alpha, additive, subtractive, mulitply nebo mask 39
3. Implementace Licence Tato knihovna je majetkem společnosti Microsoft a je typu Microsoft Public License (Ms-PL).
3.3.3
ShareMediaTask [13]
Knihovna je ze jmenného prostoru Microsoft.Phone.Task slouží ke sdílení obsahu v aplikacích pro Windows Phone. Uživatel může sdílený obsah kopírovat do zpráv, posílat emailem nebo sdílet v nainstalovaných aplikacích, jako jsou například facebook, twitter atd. Poté, co je zavolána metoda Show, se zobrazí nativní menu se zaregistrovanými službami na obrázku.
Obrázek 3.1: ShareMediaTask výběr služby
3.3.4
DataTransferManager [3]
DataTransferManager má stejnou funkci jako ShareMediaTask a je určen pro platformy Windows RT a Windows 8. Nejprve je nutné zaregistrovat událost eventeImageHandler do DataTransferManageru. V této události se vytvoří asynchronní požadavek, jemuž se přiřadí data, která se budou sdílet. Tato událost lze zavolat metodou ShareUI, která otevře okno se zaregistrovanými službami, které jsou na obrázku. 40
3.3. Použité knihovny
Obrázek 3.2: DataTransferManager výběr služby
3.3.5
Windows Phone Toolkit [22]
Windows Phone Toolkit poskytuje kolekci grafických komponent, které rozšiřují uživatelské rozhraní Windows Phone. Uživatelé Windows Phone jsou zvyklí používat tyto komponenty, takže se dají považovat za nativní. WrapPanel WrapPanel je kontejner podobný Gridu nebo StackPanelu. Chováním se nejvíce přibližuje StackPanelu, který každý nový prvek vloží na novou řádku. WrapPanel každý nový prvek vloží na stejnou řádku, dokud není vyčerpán prostor této řádky. Poté je prvek vložen na další řádku. ContentMenu Grafická komponenta se spustí po dlouhém stisknutím na prvek, kterému je přiřazeno toto menu. V diplomové práci je ContentMenu použito v Galerii, kde u každého obrázku má uživatel možnost vymazat zvolený obrázek. 41
3. Implementace
3.3.6
Flurry Analytics [4]
Flurry Analytics pro Windows Phone 8 poskytuje API, které slouží zejména ke sledování uživatelových akcí, které v aplikaci provedl. Všechna provedené akce uživateli jsou uloženy na sever Flurry a majitel aplikace může sledovat a porovnávat pomocí webového rozhraní všechny data. Na základě dat lze aplikaci optimalizovat. Instalace Pro instalaci Flurry Analytics do apliakce je nutné stáhnout knihovnu FlurryWP8SDK.dll a naimportovat do projektu. V projektu je nutné povolit ID_CAP_NETWORKING a ID_CAP_IDENTITY_DEVICE. Při každém spuštění aplikace je nutné zavolat funkci StartSession s parametrem apiKey, kde apiKey je klíč sloužící k identifikaci aplikace. Při zavření aplikace je nutné zaolat funkci EndSession. Nasazení v aplikaci V aplikaci Živá abeceda byly logovány události, které jsou zmíněny v odstavci níže: • Store - uživatel navštívil obrazovku store • Galerie - uživatel navštívil galeriii • About - uživatel navštívil about • TextEntered - uživatel vyplnil text a přišel na stránku s výběrem fontu • ShareInvoked - uživatel zvolil font a klikl na export parametry následující font :
,hd : , text : • TextShared - uživatel klikl na share parametry • BuyFont - uživatel koupil font font :
3.3.7
Theme Manager [8]
V prostředí Windows Phone si uživatel může v nastavení telefonu vybrat styl (např.: Light theme nebo Dark theme). Barva grafických komponent v každé aplikaci bude záviset na uživatelem zvoleném tématu. 42
3.3. Použité knihovny Aplikace byla navržena do stylu tématu Dark theme a problém by nastal, kdyby uživatel zvolil jakékoliv jiné téma. Grafické komponenty by mezi sebou neladily a z těchto důvodu je nutné použít knihovnu Theme Manager. Tato knihovna zajistí po každém spuštění aplikace vynucení vybraného tématu. V praxi to znamená, že uživatel, který bude mít nastavené jakékoliv téma, při spuštění aplikace bude vždy použito jedno zvolené téma.
43
Kapitola
Testování 4.1
Remote Device Access [12]
RDA je služba poskytvaná společností Nokia, která umožňuje developerům otestovat vzdáleně aplikaci na zažízeních Windows Phone, Nokia X a mnoho dalších. Vývojář musí mít developerský účet společnosti Nokia a poté si může zarezervovat zařízení vždy v 15ti minutových intervalech. Na zařízení si může nainstalovat a otestovat svoji aplikaci. Po testování je možné si prohlédnout logy.
4.2
Unit Testing [15]
Unit se používají k testování jednotlivých metod nebo tříd. Vývojář tak může rychle a efektivně zkontrolovat funkčnost aplikace a zjistit chyby v konkrétních částech aplikace. Unit Testing je často optimalizován, ale některé situace vyžadují vytvořit testy manuálně. Každá testovaná část kódu má obvykle několik vstupů a jednoduchý výstup. Tato část v objektovém programování může patřit bázové, rodičovské nebo abstraktní třídě. Pro tento typ testování se používají frameworky, které vývojáři ulehčí práci. Microsoft Visual Studio 2013 poskytuje mechanismy pro Unit testy. Vývojáři tedy nemusí používat programy třetích stran. Unit testy se zpravidla vytváří už ve fázi návrhu, aby vývojář odstranil případné chyby co nejdříve. To přináší mnoho výhod. Jednou z nich je například úspora času při vývoji. Výhody: • Kód, který byl otestován je modulární a znovupoužitelný 45
4
4. Testování • Jednodušší debuggování. Jestliže selže konkrétní test, vývojář bude debuggovat pouze tuto část. • Kód je mnohem více spolehlivější. • Vývoj je rychlejší, protože včasně odhalené chyby není nutné zdlouhavě hledat v pozdější fázi vývoje.
4.2.1
Ukázková metoda
Tato jednoduchá metoda byla vybrána pro reprezentaci jednoduchého unit testu. V tomto případě je testována správnost pořadí prvků při vkládání. [ TestMethod ] p u b l i c v o i d TestShapesOrder ( ) { TextShapeWP . App . ViewModel . Shapes . I n s e r t ( 0 , ( new Shape ( ) { F i r s t L i n e =" a h o j " , Name="Ahoj " } ) ) ; TextShapeWP . App . ViewModel . Shapes . I n s e r t ( 0 , ( new Shape ( ) { F i r s t L i n e = " nazdar " , Name = " Nazdar " } ) ) ; A s s e r t . AreEqual ( " Nazdar " , TextShapeWP . App . ViewModel . Shapes [ 0 ] . Name , " The name i s not v a l i d ! " ) ; A s s e r t . AreEqual ( " Ahoj " , TextShapeWP . App . ViewModel . Shapes [ 1 ] . Name , " The name i s not v a l i d ! " ) ; }
4.3 4.3.1
Uživatelské testování Hlavní cíle
Cílem tohoto testu je odstranit nedostatky uživatelského rozhraní a připravit aplikaci pro uživatele tak, aby bylo její ovládání co nejintuitivnější. Často se stává, že aplikace je nepřehledná. Uživatel chce provést určitou akci a dostane se do situace, kdy neví jak konkrétní akci provést. V průběhu tohoto testu by měl být uživatel sledován, jak provádí konkrétní kroky a na tomto základě bude učiněna oprava aplikace, aby se stala více přehlednější a intuitivnější. Dále tento test pomůže odhalit nefunkční části aplikace, které se nepodařilo nalézt ve fázi vývoje. 46
4.3. Uživatelské testování
4.3.2
Seznam uživatelů
Uživatelé tohoto testu byly rozděleny do dvou skupin. První tvoří uživatelé, kteří používají mobilní telefon s operačním systémem Windows Phone. Tato skupina je zvyklá na grafické prostředí a předpokládá se, že nebudou mít s ovládáním větší problémy. Druhá skupina jsou uživatelé, kteří používají mobilní telefon s operačním systémem Android nebo iOS. Tato skupina je pro tento test velmi důležitá, protože nemají s platformou Windows Phone žádné zkušenosti. Bude tedy důležité sledovat dobu reakce při vykonávání jednotlivých akcích, a tam kde reakce uživatele bude delší než obvykle, bude stát za zvážení, jestli na tomto místě zlepšit nebo zjednodušit ovládání aplikace. První skupina testovala aplikaci na svých zařízeních a druhé skupině byl zapůjčen telefon.
4.3.3
Seznam úkolů
• Vytvořte obrázek s textem "ahoj". • Obrázek uložte v normální kvalitě a použijte první abecedu. Obrázek nesdílejte. • Vraťte se zpět na hlavní stránku. • Vytvořte obrázek s textem dle Vašeho uvážení. • Kupte si abecedu s názvem "Anime". • Kupte si jeden HD export. • Uložte obrázek v HD kvalitě, nastavte barvu pozadí a ihned dejte sdílet. • Pošlete obrázek na libovolný email. • Vraťte se do hlavní nabídky. • V sekci "gallery"vymažte obrázek s textem "ahoj". • Obrázek, který jste vytvořili s textem dle Vašeho uvážení opět sdílejte. Nyní formou zprávy. • Kupte si 5 HD exportů. 47
4. Testování
4.3.4
Odhalené chyby
• V sekci "gallery"ikonka hd nevhodně překrývá text. • Stránka "ShapeInput"si pamatuje naposledy zadaný text a tento postup není vhodný. • Uživatelé, kteří nepoužívají Windows Phone měli problémy s mazáním obrázků. • Při nakupování HD exportů aplikace spadla. • Obrázky, které jsou tvořeny textem na 3 řádky jsou příliš velké a při tvorbě bitmapy aplikace spadne z důvodu OutOfMemory Exception.
4.3.5
Diskuze s uživateli
Po celkové diskuzi s uživateli bylo provedeno vyhodnocení. Uživatelé zhodnotili aplikaci až na drobné nedostatky jako atraktivní. Grafické prostředí bylo dobře zpracované a pro většinu uživatelů přehledné.
48
Závěr Splnění jednotlivých bodů zadání Nastudujte doporučení vzhledu (design guidelines) pro platformu Windows Phone. Jednotlivé platformy mají svá specifika, co se týče grafiky a ovládání. Některé vlastnosti jsou nepřenosné či vzájemně nekombinovatelné.Doporučený vzhled (design guidelines) není pouhým grafickým rozmarem, ale má svá odůvodnění z hlediska celé architektury systému. Doporučený vzhled je tedy na jednu stranu určitým omezením v tom smyslu, že neumožňuje použít každý zajímavý nápad, na druhou stranu však jeho dodržování vede ke srozumitelnému a stabilnímu řešení. Podrobný rozbor výše uvedeného je v kapitolách 1.1 a 1.3.
Nastudujte rozdíly mezi jednotlivými verzemi Windows Phone (Windows Phone 7, Windows Phone 8, Windows RT). Zjistěte tržní podíly jednotlivých verzí. Po dohodě s vedoucím práce zvolte vhodnou verzi pro vývoj aplikace v roce 2014. Tržních podíly jednotlivých platforem byly popsány v kapitole 1.1 a 1.2. Platforma Windows Phone sice nemá na trhu výrazný podíl, nicméně v některých zemích je na vzestupu. Navzdory ne příliš významnému podílu na trhu má však platforma Windows Phone jednu velmi zajímavou výhodu, totiž to, že z hlediska architektury, a tedy kompatibility, nemá daleko k platformě Windows 8, která je rozšířeným rozhraním na noteboocich 49
Závěr a tabletech. Potenciálně je tedy relativně snadné uzpůsobit aplikaci i pro tato prostředí. Hlavním cílem této práce bylo vytvořit aplikaci pro Windows Phone 8, ale vzhledem k výše uvedeným důvodům jsem nad rámec zadané diplomové práce adaptoval tuto aplikaci i pro systémy Windows RT a Windows 8.
Upravte wireframy dodané vedoucím práce dle doporučení pro platformu Windows Phone. Wireframy dodané vedoucím práce byly přepracovány podle design guidelines pro platformu Windows Phone 8, nad rámec zadání pak i pro platformy Windows 8 a Windows RT. Podrobnější rozbor viz. 2.3.
Navrhněte a implementujte mobilní aplikaci Živá abeceda pro platformu Windows Phone. Aplikace Windows Phone byla vytvořená jako beta verze určená pro testování. Zanedlouho bude uvolněna do Windows Store. Aplikace Windows Store byla vytvořená jako prototyp. Návrh a implementace se nachází v kapitolách 2 a 3.
Popiště testovací metodiky, které umožní spustit akceptační testy na reálném hardware a jednu po dohodě s vedoucím práce vyberte. Testovací metodiky byly popsány v kapitole 4.
Otestujte mobilní aplikaci Živá abeceda pomocí zvolené metodiky. Aplikace pro Windows Phone byla nejprve otestována metodikou Unit testů 4.2. Dále bylo provedeno uživatelské testování 4.3, které pomohlo odhalit několik chyb, ze kterých budou učiněna určitá opatření.
Závěr Během práce na tomto projektu jsem měl příležitost se podrobně seznámit s technologiemi společnosti Micorsoft pro tvorbu mobilních, tabletových a 50
Závěr desktopových aplikací. V tomto ohledu považuji znalost konkrétních zákonitostí z praxe za důležitou součást možnosti budoucího uplatnění, což byl koneckonců jeden z hlavních důvodů, proč jsem si pro svou diplomovou práci nezvolil teoretičtější či akademičtější zadání. Velice mě obohatila také plodná a korektní spolupráce nejen s vedoucím mé diplomové práce, ale také s kolegy, kteří se podíleli na vývoji této aplikace pro platformy Android a iOS. Cílem této práce bylo vytvořit mobilní aplikaci Živá abeceda pro mobilní platformu Windows Phone, která byla navržena, implemntována a otestována. Během testování byly odhaleny chyby, které budou odstraněny. Aplikace bude poté nasazena ve Windows Store. Dále byla navržena a implementována aplikace Windows Store pro Windows RT a Windows 8.
Budoucí vývoj Do budoucna mě zajímá ještě možnost prozkoumat projekt Mono. Ta v principu umožňuje naprogramovat pouze jedno jádro aplikace, které je pak lehce přenositelné na mobilní platformy Android a iOS. Bylo by zajímavé porovnat a kvantifikovat parametry, v nichž se liší aplikace naprogramovaná v projektu Mono a aplikace naprogramovaná v nativním jazyce. Zejména by bylo zajímavé a žádoucí testovat např. rychlost odezvy. Za předpokladu, že aplikace vytvořené pomocí projektu Mono nebudou rapidně pomalejší než aplikace naprogramované v nativním jazyku, stálo by za uvážení nasadit tento projekt v reálném vývoji aplikací. Tento postup by mohl být krokem k urychlení vývoje aplikací pro platformy Windows Phone, Android a iOS. Doufám, že nejen během práce na tomto projektu jsem ukázal, že aktuální vývoj sleduji, a že s nadšením prozkoumávám možnosti nových technologií a zařízení.
51
Literatura [1] Button control design guidelines for Windows Phone. [online], stav ze dne 11.3.2014. Dostupné z: http://msdn.microsoft.com/en-us/ library/windowsphone/design/hh487169(v=vs.105).aspx [2] Data Binding Overview. [online], stav ze dne 15.3.2014. Dostupné z: http://msdn.microsoft.com/en-us/library/ms752347(v= vs.110).aspx [3] DataTransferManager class. [online], stav ze dne 12.4.2014. Dostupné z: http://msdn.microsoft.com/library/windows/apps/ windows.applicationmodel.datatransfer.datatransfermanager.aspx [4] FLURRYCONNECTS PERSONALIZING THE MOBILE EXPERIENCE. [online], stav ze dne 12.4.2014. Dostupné z: http:// www.flurry.com/ [5] Guidelines for list and grid view controls. [online], stav ze dne 15.3.2014. Dostupné z: http://msdn.microsoft.com/en-us/library/ windows/apps/hh465465.aspx [6] Isolated Storage. [online], stav ze dne 15.3.2014. Dostupné z: http: //msdn.microsoft.com/en-us/library/3ak841sy(v=vs.110).aspx [7] Nokia’s shrewd move with the Nokia X undermines Google, bolsters Microsoft. [online], stav ze dne 25.2.2014. Dostupné z: http://www.techradar.com/reviews/pc-mac/software/ operating-systems/windows-rt-1113319/review [8] PhoneThemeManager: allow your app to have the Light, Dark, or Inverted theme with 1 line of code. [online], stav ze 53
Literatura dne 12.4.2014. Dostupné z: http://www.jeff.wilcox.name/2012/01/ phonethememanager/ [9] Pivot control design guidelines for Windows Phone. [online], stav ze dne 5.3.2014. Dostupné z: http://msdn.microsoft.com/en-us/library/ windowsphone/design/hh202919(v=vs.105).aspx [10] Portable Class Libraries. [online], stav ze dne 20.3.2014. Dostupné z: http://msdn.microsoft.com/en-us/library/vstudio/ gg597391(v=vs.100).aspx [11] ProgressBar control design guidelines for Windows Phone. [online], stav ze dne 11.3.2014. Dostupné z: http://msdn.microsoft.com/enus/library/windowsphone/design/hh202916(v=vs.105).aspx [12] Remote Device Access. [online], stav ze dne 24.4.2014. Dostupné z: http://developer.nokia.com/resources/remote-device-access [13] ShareMediaTask Class. [online], stav ze dne 1.4.2014. Dostupné z: http://msdn.microsoft.com/en-us/library/windowsphone/ develop/microsoft.phone.tasks.sharemediatask [14] TextBox control design guidelines for Windows Phone. [online], stav ze dne 10.3.2014. Dostupné z: http://msdn.microsoft.com/en-us/ library/windowsphone/design/hh202916(v=vs.105).aspx [15] Unit Testing. [online], stav ze dne 24.4.2014. Dostupné z: http:// msdn.microsoft.com/en-us/library/aa292197(v=vs.71).aspx [16] Visual Studio 2013. [online], stav ze dne 20.3.2014. Dostupné z: http: //msdn.microsoft.com/cs-cz/library/dd831853.aspx [17] Windows 8 review. [online], stav ze dne 3.3.2014. Dostupné z: http://www.techradar.com/reviews/pc-mac/software/ operating-systems/windows-8-1093002/review [18] Windows 8.1 review. [online], stav ze dne 3.3.2014. Dostupné z: http://www.techradar.com/reviews/pc-mac/software/ operating-systems/windows-8-1-1161745/review [19] Windows Phone Dev Center. [online], stav ze dne 5.3.2014. Dostupné z: http://dev.windowsphone.com/en-us/design [20] Windows Phone remains the fastest growing mobile OS in Europe. [online], stav ze dne 24.2.2014. Dostupné z: http://www.wpcentral.com/ windows-phone-remains-fastest-growing-mobile-os-europe 54
Literatura [21] Windows Phone to be fastest growing mobile OS, says IDC. [online], stav ze dne 25.2.2014. Dostupné z: http://www.cnet.com/news/ windows-phone-to-be-fastest-growing-mobile-os-says-idc/ [22] The Windows Phone Toolkit. [online], stav ze dne 12.4.2014. Dostupné z: http://phone.codeplex.com/ [23] Windows RT review. [online], stav ze dne 27.2.2014. Dostupné z: http://admin.wpcentral.com/nokia-x-undermines-googlebolsters-microsoft [24] WPF Apps With The Model-View-ViewModel Design Pattern. [online], stav ze dne 15.3.2014. Dostupné z: http://msdn.microsoft.com/ en-us/magazine/dd419663.aspx [25] WriteableBitmap Class. [online], stav ze dne 20.3.2014. Dostupné z: http://msdn.microsoft.com/cs-cz/library/ system.windows.media.imaging.writeablebitmap(v=vs.110).aspx [26] WriteableBitmap Class. [online], stav ze dne 1.4.2014. Dostupné z: http://writeablebitmapex.codeplex.com/ [27] Vaughan, D.: Windows phone 8 : unleashed. Sams publishing, 2013, ISBN 9780672336898. [28] Veselý, D.: Skládání fotografií pro platformu iPhone. Praha: České vysoké učení technické, 2012. Dostupné z: https://dip.felk.cvut.cz/ browse/pdfcache/veseldom_2012bach.pdf R Phone 8 Development In[29] Whitechapel, A.; McKenna, S.: Windows ternals. Sebastopol, CA: O’Reilly Media, 2013, ISBN 9780735676237.
55
Příloha
Seznam použitých zkratek MVVM Model-View-Viewmodel MVC Model View Controller PCL Portable Class Libraries UI User Interface HD High Definition SoC Separation of Concerns XAML Extensible Application Markup Language XML Extensible Markup Language API Application Programming Interface WPF Windows Presentation Foundation
57
A
Příloha
Obsah přiloženého CD
readme.txt ................................ stručný popis obsahu CD bin TextShapeWP.....adresář se spustitelnou formou implementace pro Windows Phone TextShapeWS.....adresář se spustitelnou formou implementace pro Windows Store src TextShape...........................zdrojové kódy implementace tex ....................... zdrojová forma práce ve formátu LATEX text.....................................................text práce nepraja1.pdf ........................ text práce ve formátu PDF 59
B
Příloha
Návod k použití pro Windows Phone C.1
Tvorba obrázku
• Klikněte na "CREATE TEXTSHAPE".
Obrázek C.1: Hlavní obrazovka
61
C
C. Návod k použití pro Windows Phone • Zadejte text. Můžete zadat do každého TextBoxu maximálně 11 znaků.
Obrázek C.2: Zadávání textu
• Vyberte abecedu ve které chcete vygenerovat obrázek. Pro uložení klikněte na "SAVE"nebo pro uložení v HD na "SAVE HD".
Obrázek C.3: Vytvoření obrázku
62
C.1. Tvorba obrázku • Po uložení budete vyzvání ke sdílení obrázku. Klikněte na "ok".
Obrázek C.4: Sdílení obrázku
• Vyberte službu pomocí které budete obrázek sdílet. Pro zkopírování do zprávy klikněte na "Messaging".
Obrázek C.5: Výběr služby
63
C. Návod k použití pro Windows Phone • Vyberte příjemce zprávy a odešlete zprávu. Poté klikněte na tlačítko zpět.
Obrázek C.6: Odeslání ve zprávě
• Nyní můžete vytvářet nové obrázky různých abeced nebo se vrátit zpět do hlavního menu pomocí tlačítka zpět.
Obrázek C.7: Vytváření obrázku
64
C.1. Tvorba obrázku
C.1.1
Opětovné sdílení obrázku
• Z hlavní nabídky přejděte do "gallery". Zde jsou uloženy všechny Vaše obrázky. Po kliknutí na konkrétní obrázek se zobrazí dialog pro sdílení.
Obrázek C.8: Galerie
• Poté bude vyzvání jestli chcete obrázek sdílet. Postupujte jako v předchozím bodě.
Obrázek C.9: Sdílení
65
C. Návod k použití pro Windows Phone
C.1.2
Vymazání obrázku
• Podržte dlouze obrázek a poté se zobrazí dialog. Klikněte na "Delete"a obrázek bude vymazán.
Obrázek C.10: Mazání obrázku
C.1.3
Nákup abecedy
• Z hlavní nabídky přejděte do "store". Zde si vyberte abecedu a poté klikněte na tlačítko s částkou. Budete vyzvání k platbě. Po zaplacení můžete font používat.
Obrázek C.11: Nákup abecedy
66
C.1. Tvorba obrázku
C.1.4
Nákup HD exportu
• Z hlavní nabídky přejděte do "store". Pro nákup klikněte na částku.
Obrázek C.12: Nákup HD exportu
67