Vysoká škola ekonomická v Praze Fakulta informatiky a statistiky Katedra informačních technologií Studijní program: Aplikovaná informatika Obor: Informační systémy a technologie
Diplomant:
Bc. Marek Novotný
Vedoucí diplomové práce:
doc. Ing. Alena Buchalcevová, Ph.D.
Oponent diplomové práce:
Ing. Vladimír Selčan
Vývoj aplikací na platformě Windows Mobile
školní rok 2009/2010
Prohlášení
Prohlašuji, že jsem diplomovou práci zpracoval samostatně a že jsem uvedl všechny použité prameny a literaturu, ze kterých jsem čerpal.
V Praze dne
………………………………. podpis
Vývoj na platformě Windows Mobile
Strana 2 z 112
Poděkování Rád bych poděkoval paní doc. Ing. Aleně Buchalcevové, Ph.D., že mi vyšla vstříc a umožnila mi psát o vlastním tématu. Stejně tak jí děkuji za vstřícnost a akceptování časového harmonogramu psaní práce a za odborné vedení práce. Dále bych rád poděkoval rodině a Bc. Šárce Matuškové za podporu při celém studiu.
Vývoj na platformě Windows Mobile
Strana 3 z 112
Abstrakt
Abstrakt Tato práce pojednává o vývoji mobilních aplikací pro platformu Windows Mobile. Obsahuje přehled ostatních mobilních platforem (mobilních operačních systémů) a srovnávací tabulku podle vybraných kategorií, aby si mohl čtenář udělat představu i o ostatních platformách. Součástí práce je také přehled technologií pro vývoj, který je podpořen srovnávací tabulkou. Hlavním cílem je navržená metodika vývoje mobilních aplikací pro platformu Windows Mobile. Pro upřesnění nejdůležitějších specifik slouží pak samostatné kapitoly popisující tato specifika. Jedná se o návrh uživatelského rozhraní pro mobilní aplikace, kde je kladen zřetel na způsob ovládání, protože pro každý způsob ovládání by měl být návrh uživatelského rozhraní rozdílný. Dalším rozebíraným specifikem je testování aplikací v Microsoft Device Emulatoru V3, čemuž předchází popis tohoto nástroje pro testování a možnosti jeho nastavení. Pro demonstraci metodiky je součástí práce také praktický příklad, který znázorňuje postupně vybrané kroky korespondující s fázemi metodiky a vykonávání jednotlivých činností. V příloze se nacházejí tabulky, které vystihují jednotlivé fáze metodiky s popisem jejich cíle, rolí a jim přiřazených činností a jaké jsou vstupy a výstupy této fáze. Klíčová slova: Windows Mobile, technologie pro vývoje, metodika vývoje, specifika GUI, Microsoft Device Emulator
Vývoj na platformě Windows Mobile
Strana 4 z 112
Abstrakt
Abstract This thesis treats of the development of mobile applications for Windows Mobile platform. It contains a list of other mobile platforms (mobile operating systems) and a comparative table according to selected categories, so that readers can get an idea of other platforms. Part of this thesis is an overview of technologies for development, which is supported by the comparative table. The main objective is to propose a methodology of mobile application development for platform Windows Mobile. To clarify the most important specifics serves the separate chapters describing these specifics. It is about the design of user interface for mobile applications, where attention is placed on the method of operating, because for each method of operating should be a different user interface design. Another specific feature, which is discussed in my thesis, is testing applications in Microsoft Device Emulator V3, this precedes the description of this tool for testing and the possibilities of its settings. To demonstrate the methodology the thesis contains the practical example illustrating the gradual steps corresponding to the phases of the methodology and execution of activities. In the annex are tables describing the various phases of the methodology, a description of their objectives, roles and them associated activities and what are the inputs and outputs of this phase. Key words: Windows Mobile, development technologies, methodology for development, specifics of mobile GUI, Microsoft Device Emulator
Vývoj na platformě Windows Mobile
Strana 5 z 112
Obsah
OBSAH 1 ÚVOD........................................................................................ 9 1.1 1.2 1.3 1.4 1.5 1.6 1.7
VYMEZENÍ TÉMATU ........................................................................................................... 10 DŮVOD VÝBĚRU TÉMATU ................................................................................................. 10 VYMEZENÍ ZÁKLADNÍCH POJMŮ ...................................................................................... 10 CÍLE PRÁCE ......................................................................................................................... 13 OČEKÁVANÉ VLASTNÍ PŘÍNOSY ....................................................................................... 13 PŘEDPOKLADY A OMEZENÍ PRÁCE .................................................................................. 14 KOMU JE PRÁCE URČENA .................................................................................................. 14
2 MOBILNÍ PLATFORMY ............................................................. 15 2.1 2.2 2.3 2.4 2.5 2.6 2.7
WINDOWS MOBILE (PHONE) ......................................................................................... 15 SYMBIAN OS....................................................................................................................... 16 GOOGLE ANDROID ............................................................................................................. 17 IPHONE OS ......................................................................................................................... 18 BLACKBERRY ..................................................................................................................... 20 WEBOS (PALMOS) ........................................................................................................... 21 SHRNUTÍ PŘEHLEDU MOBILNÍCH PLATFOREM ............................................................. 23 2.7.1 Srovnávací tabulka platforem ................................................................. 24 2.7.2 Důvody pro výběr platformy Windows Mobile ................................. 26
3 POPIS PLATFORMY WINDOWS MOBILE (PHONE) ..................... 27 3.1 3.2 3.3
HISTORIE WINDOWS MOBILE......................................................................................... 27 NOVINKY VE VERZI 6.5..................................................................................................... 28 CHARAKTERISTIKA PLATFORMY ..................................................................................... 29 3.3.1 Hardwarový pohled ...................................................................................... 29 3.3.2 Softwarový pohled ........................................................................................ 31
4 MOŽNOSTI VÝVOJE PRO PLATFORMU WINDOWS MOBILE ....... 32 4.1 4.2
4.3
4.4
NATIVNÍ APLIKACE ............................................................................................................ 32 4.1.1 Visual C++ ......................................................................................................... 32 ŘÍZENÉ APLIKACE .............................................................................................................. 33 4.2.1 Java Micro Edition ......................................................................................... 33 4.2.2 JavaFX Mobile.................................................................................................. 34 4.2.3 .NET Compact Framework ........................................................................ 35 4.2.4 OpenNetCF (Smart Device Framework) .............................................. 37 WEBOVÉ APLIKACE, RIA APLIKACE ............................................................................... 37 4.3.1 Webové aplikace ............................................................................................ 38 4.3.2 Flash lite ............................................................................................................ 39 4.3.3 Silverlight .......................................................................................................... 39 SHRNUTÍ PŘEHLEDŮ TECHNOLOGIÍ PRO VÝVOJ ............................................................ 40
Vývoj na platformě Windows Mobile
Strana 6 z 112
Obsah 4.4.1 Srovnávací tabulka technologií pro vývoj .......................................... 40 4.4.2 Důvody výběru technologie pro vývoj ................................................... 41
5 METODIKA VÝVOJE PRO PLATFORMU WINDOWS MOBILE ....... 43 5.1 5.2
5.3
5.4
NÁVRH METODIKY............................................................................................................. 44 FÁZE METODIKY................................................................................................................. 45 5.2.1 Úvodní studie ................................................................................................... 46 5.2.2 Analýza .............................................................................................................. 46 5.2.3 Návrh .................................................................................................................. 46 5.2.4 Implementace.................................................................................................. 47 5.2.5 Testování ........................................................................................................... 47 5.2.6 Nasazení ............................................................................................................ 48 ROLE .................................................................................................................................... 48 5.3.1 Analytik.............................................................................................................. 49 5.3.2 Datový specialista ......................................................................................... 49 5.3.3 Grafik .................................................................................................................. 50 5.3.4 Programátor.................................................................................................... 50 5.3.5 Specialista na mobilní technologie ........................................................ 51 5.3.6 Specialista na UI ............................................................................................ 51 5.3.7 Sponzor .............................................................................................................. 52 5.3.8 Tester .................................................................................................................. 52 5.3.9 Vedoucí projektu ............................................................................................ 52 DIMENZE ............................................................................................................................. 53 5.4.1 Hardware .......................................................................................................... 53 5.4.2 Software ............................................................................................................ 53 5.4.3 Uživatelské rozhraní .................................................................................... 54 5.4.4 Data/Informace ............................................................................................. 54
6 NÁVRH UŽIVATELSKÉHO ROZHRANÍ......................................... 55 6.1 6.2 6.3 6.4
NÁVRH GUI PRO OVLÁDÁNÍ POMOCÍ DOTYKOVÉHO PERA ......................................... 57 NÁVRH GUI PRO OVLÁDÁNÍ POMOCÍ PRSTŮ ................................................................. 57 NÁVRH GUI PRO OVLÁDÁNÍ BEZ DOTYKOVÉHO DISPLEJE .......................................... 58 ZÁVISLOST NÁVRHU GUI PODLE VELIKOSTI DISPLEJE ................................................ 58
7 PRÁCE S DATY ......................................................................... 60 7.1 7.2 7.3 7.4
DATA V SOUBORECH ......................................................................................................... 60 7.1.1 Přístup v .NET Compact Frameworku .................................................. 61 DATA VE FORMÁTU XML ................................................................................................. 63 7.2.1 Práce s XML v .NET Compact Frameworku ........................................ 64 DATA V DATABÁZÍCH ........................................................................................................ 66 7.3.1 Práce s SQLCE v .NET Compact Frameworku ................................... 67 LANGUAGE INTEGRATED QUERY (LINQ) .................................................................... 73
8 MOŽNOSTI TESTOVÁNÍ MOBILNÍCH APLIKACÍ .......................... 74
Vývoj na platformě Windows Mobile
Strana 7 z 112
Obsah 8.1
POPIS MOŽNOSTÍ V MICROSOFT DEVICE EMULATOR V3........................................... 75 8.1.1 Hlavní nastavení ............................................................................................ 76 8.1.2 Nastavení displeje ......................................................................................... 77 8.1.3 Nastavení připojení ...................................................................................... 78 8.1.4 Nastavení periferií ........................................................................................ 79
9 PRAKTICKÁ ČÁST ..................................................................... 80 9.1 9.2 9.3
9.4
9.5
VYMEZENÍ PŘÍKLADU ........................................................................................................ 80 POPIS APLIKACE ................................................................................................................. 81 ANALÝZA ............................................................................................................................. 81 9.3.1 Konceptuální diagram tříd ........................................................................ 81 9.3.2 Diagram užití .................................................................................................. 82 NÁVRH................................................................................................................................. 85 9.4.1 Deployment diagram ................................................................................... 85 9.4.2 Databázový diagram ................................................................................... 86 9.4.3 Designový diagram tříd .............................................................................. 87 9.4.4 Návrh GUI ......................................................................................................... 87 IMPLEMENTACE ................................................................................................................. 88 9.5.1 Vybrané ukázky kódu .................................................................................. 88 9.5.2 Testování aplikace v emulátoru .............................................................. 92
10 ZÁVĚR ..................................................................................... 96 11 POUŽITÉ ZDROJE A LITERATURA .............................................. 98 12 TERMINOLOGICKÝ SLOVNÍK ................................................... 102 13 PŘÍLOHY ................................................................................ 103 13.1 13.2
PŘÍLOHA A .................................................................................................................. 103 PŘÍLOHA B .................................................................................................................. 104 13.2.1 Windows Mobile 5 ................................................................................... 104 13.2.2 Windows Mobile 6.0 ................................................................................ 104 13.2.3 Windows Mobile 6.1 (6.1.4) ................................................................. 105 13.2.4 Windows Mobile 6.5 ................................................................................ 105 13.3 PŘÍLOHA C .................................................................................................................. 106 13.3.1 Úvodní studie ............................................................................................. 106 13.3.2 Analýza ......................................................................................................... 107 13.3.3 Návrh............................................................................................................. 108 13.3.4 Implementace ............................................................................................ 109 13.3.5 Testování ..................................................................................................... 110 13.3.6 Nasazení....................................................................................................... 111
Vývoj na platformě Windows Mobile
Strana 8 z 112
Úvod
1 Úvod Většina lidí v rozvinutých zemích dnes vlastní jedno či více mobilních zařízení. Mobilní zařízení může být např. GPS navigace, mobilní telefon, chytrý telefon (z anglického originálu Smartphone), PDA či jiný typ komunikátoru. Tato zařízení se snaží nabídnout co nejvíce funkcí svému uživateli. Proto najdeme na trhu zařízení, která nabízejí funkce telefonu, diáře, GPS navigace, fotoaparátu, datového připojení a další. Jedná se zejména o trh mobilních telefonů, PDA a Smartphone. Je to způsobeno dlouhodobým trendem výrobců, kteří se snaží integrovat co nejvíce funkcí do těchto vyráběných zařízení. Výrobci ostatních zařízení nechtějí zůstat pozadu. Aby neztráceli tržní podíl, začínají také integrovat další funkce do svých zařízení. Dostanou se tak na trh např. GPS navigace a digitální fotoaparáty, které umožňují telefonovat a nabízejí datová připojení. Každé z těchto zařízení má nějaký svůj operační systém, který jej umožňuje ovládat. Operační systém umožňuje rozšíření či nahrazení své stávající nabídky funkcí dohráním dalších aplikací. Mobilní aplikace se nazývají mobilními, právě podle toho, že běží na mobilním zařízení. Mobilní aplikace jsou dnes velice důležité, protože umožňují často vykonat práci, kterou bylo dříve možné provést pouze fyzickou přítomností na místě výkonu práce anebo za pomoci počítače a vzdáleného připojení. Je to dáno tím, že tyto aplikace mají k dispozici vyspělou komunikační technologii, zejména datová připojení. Mobilní aplikace často neumožňuje takový komfort v ovládání a výkon jako např. aplikace, které běží běžně na stolních a přenosných počítačích. V tom spočívají také specifika vývoje mobilních aplikací. Proto je nutné si dobře rozmyslet před vývojem mobilní aplikace, zda bude pro obsluhu požadovaných funkcí k dispozici dostatečný výkon, možnost přizpůsobení GUI (grafické uživatelské rozhraní) a hlavně také jestli poskytuje cílové zařízení funkcionalitu, která je nutná k provozu plánovaných funkcí aplikace.
Vývoj na platformě Windows Mobile
Strana 9 z 112
Úvod
1.1
Vymezení tématu Práce se zabývá vývojem aplikací pro platformu Windows Mobile, konkrétně
pomocí hardwarově nezávislého prostředí .NET Compact Framework, které umožňuje vytvářet a provozovat řízené aplikace. Počet zařízení s operačním systémem Windows Mobile neustále roste a .NET Compact Framework je v tomto operačním systému integrován. Aplikace jsou především o zpracování dat a jejich poskytování uživateli. Práce s daty a přístup k nim je tedy také nedílnou součástí vývoje aplikace. V .NET frameworku je nejpoužívanějším jazykem C#, proto jsou příklady v této práci psány v tomto jazyce.
1.2
Důvod výběru tématu Téma Vývoj aplikací na platformě Windows Mobile jsem si vybral, protože mě
oblast mobilních zařízení zajímá. Na trhu je několik mobilních platforem a každá platforma nabízí řešení pro vývoj aplikací. Navíc se možnosti vývoje mobilních aplikací stále vyvíjejí, a tak je důležité tyto možnosti zmapovat. Jelikož je na trhu operačních systémů hlavní platformou Microsoft Windows, vybral jsem platformu Windows Mobile jako hlavní pro analýzu možností vývoje aplikací. K demonstraci příkladů jsem vybral .NET Compact Framework, protože vychází z moderního principu OOP1 a nabízí snadný způsob vývoje, zejména při využití integrovaného vývojového prostředí Visual Studio 2008.
1.3
Vymezení základních pojmů Pro správné pochopení práce je nutné vymezit základní pojmy, protože
některé termíny se v různých oblastech používají s různým významem. Mobilní zařízení – tento termín označuje zařízení, které splňuje požadavky na mobilitu. Jde především o přizpůsobené ovládání ztíženým podmínkám, ve kterých je mobilní zařízení používáno a dále jde o adekvátní rozměry zařízení, aby zařízení splňovalo požadavky na mobilitu. Každý má však jinou představu, co ještě je a co není mobilní zařízení z hlediska rozměrů. Nelze tedy přesně stanovit rozměry zařízení, podle kterých by se zařízení posuzovalo jako mobilní. Avšak
1
OOP – Objektově Orientované Programování
Vývoj na platformě Windows Mobile
Strana 10 z 112
Úvod např. rozdíl mezi notebookem či mobilním telefonem je rozměrově znatelný a přesto lze obě zařízení nazvat mobilními. V této práci bude za mobilní zařízení považováno takové zařízení, které se svými rozměry pohybuje na úrovni mobilních telefonů. Patří sem tedy mobilní telefony, PDA, MDA, Smartphone, GPS navigace, multimediální přehrávače apod. Mobilní platforma – obecně je pod termínem platforma v oboru IT/ICT označována buď
soustava
hardwarových
komponent
anebo
softwarový
framework.
U hardwarového označení jde o soustavu komponent tvořících jeden celek. Na těchto hardwarových platformách běží různé typy operačních systémů. Tyto operační systémy jsou také chápany jako platformy, protože slouží jako prostředek ke spouštění aplikací, které mohou být psány pro více platforem. Z tohoto pohledu je dále nutné zmínit, že jako platformu lze označit i frameworky, které slouží pro vývoj a provozování aplikací pomocí virtuálních strojů. Ze softwarového hlediska jsou tedy platformy i JavaME či .NET Compact Framework. V této práci je za platformu považován operační systém Windows Mobile jakožto prostředek, který běží na různých typech mobilních zařízení a umožňuje provozování aplikací, které jsou vyvíjené pomocí dostupných technologií pro tuto platformu. Za technologie pro vývoj jsou tak označeny v kontextu této práce i JavaME a .NET Compact Framework, které by jinak v širším kontextu byly považovány za platformu. Je to z důvodu, že je jejich využití uvažováno pouze pro jednu konkrétní platformu. Virtuální stroj - jedná se o prostředek, který slouží k provozu aplikací, které jsou psány nezávisle na prostředí, v kterém mají být provozovány. Tyto aplikace jsou přeloženy do mezikódu, který je až při spuštění v konkrétním prostředí přeložen či částečně překládán za běhu aplikací do strojového kódu tohoto prostředí. Pro každé prostředí, ve kterém má být aplikace provozována, musí být k dispozici tento virtuální stroj. Tento princip využívají např. softwarové frameworky Java a .NET framework a na nich postavené mobilní frameworky JavaME a .NET Compact Framework. Mobilní aplikace - tento termín označuje aplikaci běžící na některém z mobilních zařízení. Mobilní aplikace se vyznačují především tím, že umožňují svému uživateli vykonat práci kdekoliv, kde má mobilní zařízení a vyžadované dostupné technologie. Vývoj na platformě Windows Mobile
Strana 11 z 112
Úvod Mobilní aplikace je vyvíjená nejčastěji pro konkrétní platformu. Architektura mobilních aplikací se může skládat ze všech vrstev a komponent, které jsou zobrazeny na obrázku (Obrázek 1.3-1), ale nutně je nemusí obsahovat všechny.
Obrázek 1.3-1 - Architektura mobilních aplikací (1 str. 9)
Vývoj na platformě Windows Mobile
Strana 12 z 112
Úvod
1.4
Cíle práce Hlavním cílem diplomové práce je návrh vlastní metodiky vývoje mobilních
aplikací na platformě Windows Mobile. Tato metodika vychází z metodiky Multidimensional Management and Development of Information System (MMDIS) (2) a je přizpůsobena na potřeby vývoje aplikací pro mobilní zařízení s operačním systémem Windows Mobile. Dílčí cíle, které umožňují splnit hlavní cíl práce, jsou:
vybrat vhodné části z metodiky MMDIS (fáze a dimenze),
přizpůsobit vybrané části pro potřeby vývoje na mobilní zařízení pro platformu Windows Mobile,
provést analýzu mobilních platforem z pohledu možnosti vytváření aplikací a vytvořit srovnávací tabulku pro porovnání jednotlivých mobilních platforem podle vybraných atributů,
provést analýzu možností vývoje pro platformu Windows Mobile a vytvořit srovnávací tabulku pro porovnání těchto technologií pro vývoj.
1.5
Očekávané vlastní přínosy Hlavním přínosem diplomové práce je vytvoření vlastní metodiky vývoje
mobilních aplikací pro platformu Windows Mobile. Přínosem práce je také:
srovnávací tabulka mobilních platforem z hlediska vývoje podle předem vymezených atributů,
srovnávací tabulka technologií pro vývoj pro platformu Windows Mobile, která je určena pro výběr vhodné technologie,
závěrečný příklad, na kterém bude demonstrován vývoj vzorové aplikace pro platformu Windows Mobile.
Vývoj na platformě Windows Mobile
Strana 13 z 112
Úvod
1.6
Předpoklady a omezení práce U čtenářů se předpokládá orientace v oboru IT/ICT, znalost jazyka C#
a dotazovacího jazyka SQL2 pro relační databáze. Bloky programového kódu v práci, které demonstrují jednotlivé příklady, jsou totiž psány v jazyce C#. V souvislosti s jazykem C# je předpokládána i znalost principů objektově orientovaného programování (OOP), protože na tom je C# postaven. U příkladů, které demonstrují práci s databází je využíván dotazovací jazyk SQL.
1.7
Komu je práce určena Cílovou skupinou čtenářů této práce jsou zájemci o vývoj na mobilní
platformě Windows Mobile. Jako konkrétní technologie pro vývoj je vybrána technologie .NET Compact Framework a jazyk C#. Pro práci s daty je pak vzhledem k vybrané technologii vybrán SQL Server Compact Edition. Práce je tedy určena pro čtenáře, které tyto technologie zajímají nebo plánují jejich využití a chtějí se s nimi seznámit. Zároveň je jim nabídnuta metodika vývoje, kterou tato práce zpracovává.
2
SQL – Structured Query Language – dotazovací jazyk relačních databází
Vývoj na platformě Windows Mobile
Strana 14 z 112
Mobilní Platformy
2 Mobilní Platformy V této kapitole jsou představeny mobilní platformy, pro které je možné vyvíjet aplikace. Čtenář má tak možnost udělat si přehled o tom, s jakými platformami se může v současnosti na trhu setkat a jaký jazyk a nástroj lze použít k vývoji pro tyto platformy. Na konci kapitoly se nachází srovnávací tabulka (Tabulka 2.7-1) jednotlivých platforem. Srovnávanými atributy jsou historický vznik platformy, vydání poslední verze OS, možnosti vývoje aplikací z pohledu jejich provozování, technologie pro vývoj, vývojová prostředí.
2.1
Windows Mobile (Phone) Platforma Windows Mobile již prošla dlouhým vývojem. První verze se
objevila v roce 2000 pod názvem PocketPC 2000. Poslední verze operačního systému je aktuální verze 6.5. Za tu dobu se změnil několikrát jak název, tak i číslování verzí. V říjnu roku 2009 došlo zatím k poslední změně názvu3 celé platformy k příležitosti vydání verze 6.5. I tato poslední verze staví na jádře Windows CE 5.2 jako verze předešlá. 4 Tato nová verze zareagovala na stále se zvyšující postavení telefonu iPhone od společnosti Apple a dalších zařízení s dotykovým displejem, které jsou uzpůsobeny pro ovládání prsty. Celkové zrychlení odezvy při ovládání systému a integrace dotykových gest a celkové uzpůsobení systému pro ovládání systému prstem místo dotykového pera jsou tak hlavními novinkami poslední verze. Pro operační systém Windows Mobile lze aplikace vyvíjet nativně v C++, pomocí řízeného kódu v .NET Compact Frameworku (jazyky Visual Basic a C#), Flash lite, Java ME, JavaFX a v blízké době i pomocí technologie Silverlight. Následující obrázky (Obrázek 2.1-1, Obrázek 2.1-2) znázorňují standardní obrazovku tohoto mobilního operačního systému při různých orientacích displeje.
3 4
Od verze 6.5 se pojmenování celé platformy mění na Windows Phone (31) Předchozí verze - Windows Mobile 6.1
Vývoj na platformě Windows Mobile
Strana 15 z 112
Mobilní Platformy
Obrázek 2.1-1 (vlevo) - Today obrazovka v zobrazení na šířku Obrázek 2.1-2 (vpravo) - Today obrazovka v zobrazení na výšku
2.2
Symbian OS Operační systém Symbian je pokračovatelem operačního systému EpocOS
resp. Psion. Tato platforma patří mezi vůbec nejstarší platformy mobilních zařízení, především Smartphones. Dnes můžeme najít několik tzv. sérií (S60,S80,S90,UIQ) na mobilních telefonech různých výrobců (Nokia, Sony Ericsson, Motorola). Jedná se o již prověřenou platformu. Má širokou základnu uživatelů, majitelů telefonů značek již dříve zmíněných. Především se ale jedná o majitele zařízení Smartphone značky Nokia. Tento operační systém nabízí podporu jak dotykových displejů, tak i dalších v současnosti moderních technologií jako např. GPS. Aplikace lze vyvíjet pomocí C++, Java ME, .NET k čemuž je zapotřebí mít nainstalovaný Net60 (což je runtime, který umožňuje spouštět aplikace vytvořené v .NET Compact Frameworku 2.0 v prostředí operačního systému Symbian), Flash lite, Python a dokonce i Ruby. (3) Následující obrázek (Obrázek 2.2-1) znázorňuje standardní obrazovku tohoto mobilního operačního systému.
Vývoj na platformě Windows Mobile
Strana 16 z 112
Mobilní Platformy
Obrázek 2.2-1 - Základní obrazovka operačního systému Symbian (4)
2.3
Google Android Mobilní platforma, kterou představila světoznámá společnost Google, nabízí
další vyspělé řešení provozu mobilních zařízení s možností provozování aplikací třetích stran. Jedná se o operační systém založený na operačním systému Linux. Jelikož Google Android vznikal až v době, kdy Windows Mobile již několik let existoval, tak se snažil vzít si samozřejmě z něho to nejlepší, ale zároveň odstranit největší neduhy, které byly v tomto případě v podobě ovládání pouze pomocí dotykového pera. Inspiroval se také u konkurenčního zařízení iPhone a nabízí také podporu co nejsnadnějšího a uživatelsky nejpřívětivějšího ovládání dotykovými gesty, ač také jako u Windows Mobile s absencí „multitouch“5 ovládání (více o tomto tématu v popisu platformy iPhone). V současné době je tento operační systém na vzestupu a čím dál více výrobců se o toto řešení začíná zajímat. Jsou to i výrobci klasických mobilních telefonů jako Nokia či Sony Ericsson a Motorola, kteří plánují uvedení zařízení s tímto operačním systémem, který tak nahradí jejich stávající řešení a udělá tak z klasických mobilních telefonů zařízení Smartphone či PDA. Už teď ale můžeme na trhu najít zařízení, která představují v současné době naprostou špičku v kategorii PDA. Jsou to zařízení 5
Multitouch je ovládání více doteky na dotykovém displeji.
Vývoj na platformě Windows Mobile
Strana 17 z 112
Mobilní Platformy od vedoucího výrobce na trhu s PDA, kterým je společnost HTC. Společnost HTC totiž dodává s operačním systémem navíc vlastní nadstavbu pro jednoduché ovládání, zvanou HTC Sense. Vývoj na operační systém Google Android je založen na jazyce Java. Jako vývojové prostředí lze použít známé IDE6 Eclipse. Aplikace takto psané opět vycházejí ze skutečnosti, že programový kód je uskutečňován přes Java VM (java virtual machine). Kromě toho lze psát i nativní aplikace pomocí C/C++. Jedná se tedy o velmi podobný princip, jaký nabízí platforma Windows Mobile. Následující obrázek (Obrázek 2.3-1) znázorňuje standardní obrazovku tohoto mobilního operačního systému s rozšířením HTC Sense.
Obrázek 2.3-1 - Základní obrazovka operačního systému Google Android s rozšířením HTC Sense (5)
2.4
iPhone OS Společnost Apple začala na trhu s mobilními telefony uvedením revolučního
zařízení pojmenované iPhone. Nejednalo se o revoluční zařízení svojí výbavou či vnitřní funkcionalitou z pohledu aplikační výbavy, kterou by tento přístroj nabízel. Přístroj nabídl, jak je to už u firmy Apple zvykem jednoduché ovládání, které si noví uživatelé velmi rychle osvojí. Klade tedy důraz na co nejjednodušší a nejpříjemnější 6
IDE – Integrated Development Environment (integrované vývojové prostředí)
Vývoj na platformě Windows Mobile
Strana 18 z 112
Mobilní Platformy používání zařízení. K tomu pomohl klíčový prvek, který se skrývá v displeji. Tento displej podporuje technologii multitouch7. Zatímco např. zařízení s Windows Mobile nabízeli a zatím stále nabízí pouze standardní dotykové ovládání. Tato skutečnost a vhodná marketingová strategie (což je také mimochodem velikou předností společnosti Apple) zapříčinila, že iPhone se krátce po svém uvedení stal doslova hitem na poli mobilních telefonů. Ovládání pomocí technologie multitouch totiž nabízí daleko větší možnosti z pohledu ovládání. Ovládání aplikací je tak postaveno na tzv. dotykových gestech (z anglického originálu – touch gestures). Uživatel drží prst na displeji a táhne s ním některým směrem a aplikace na tento pohyb reaguje. Prstů je možné samozřejmě využívat více najednou, proto také název multitouch. Mezi klasické ukázky tohoto nového způsobu patří např. otáčení fotek a jejich roztahování dvěma prsty. Aby bylo možné ovšem toto pohodlně provádět, je nutné mít větší displej než je obvyklé, aby byly ovládací prvky dostatečně veliké a nezabraly celý displej. V současné době se už displeje vyrábějí větší, než tomu bývalo. Je to díky většímu rozšiřování způsobu ovládání pomocí dotykových displejů. Vzhledem k dotykovým schopnostem displeje není třeba dalších tlačítek pod displejem, jak bývalo zvykem. Prvním představitelem tohoto druhu byl právě iPhone od společnosti Apple, který tak vnesl nové myšlenky pro vývoj aplikací i do platforem ostatních výrobců, kteří vyrábějí zařízení s dotykovými displeji. Pro klasický nativní vývoj je nutné vlastnit Mac OS X, protože iPhone SDK 8 je dostupné pouze pro tento operační systém. Jako jazyk se zde používá Objective-C. Pro zařízení iPhone existuje framework Cocoa Touch založený na knihovnách Objective-C. Jako vývojové prostředí pro tento jazyk a framework se využívá IDE Xcode. (6) (7) Dalšími možnostmi je vývoj webových aplikací a aplikací pomocí technologie Flash. Společnost Adobe navíc připravila pro vývojáře ve Flashi kompilátor, který
Technologie multitouch umožňuje ovládání displeje více dotyky současně. Displej tedy rozpozná stisk více dotykových ploch v jeden okamžik a dokáže tuto informaci předat operačnímu systému, který na základě stisknutých ploch provede potřebnou akci. 8 SDK – Software Development Kit – Sada vývojových nástrojů 7
Vývoj na platformě Windows Mobile
Strana 19 z 112
Mobilní Platformy zkompiluje aplikaci ve Flashi do nativní podoby pro zařízení iPhone. První vývojový nástroj, který tuto funkci nabízí je Adobe Flash Profesional CS5. Na iPhone OS existuje i framework MonoTouch, který umožňuje do jisté míry portování aplikací vytvořených v. NET Compact Frameworku a psané v jazyce C#. Následující obrázek (Obrázek 2.4-1) znázorňuje standardní obrazovku tohoto mobilního operačního systému.
Obrázek 2.4-1 - Základní obrazovka na zařízení iPhone (8)
2.5
BlackBerry Série telefonů BlackBerry od společnosti Research In Motion Limited není
na našem trhu tolik známá a rozšířená mezi běžnými uživateli. Nicméně ve velkých společnostech jsou tyto telefony používané a oblíbené. Tyto přístroje mají největší tržní podíl zejména v USA. V současnosti jsou k dispozici pouze 3 typy telefonů
Vývoj na platformě Windows Mobile
Strana 20 z 112
Mobilní Platformy pro náš trh, ale samozřejmě není problém sehnat jiný typ nákupem v zahraničních obchodech či nákupem od neoficiálních prodejců této značky. Vývoj na tuto platformu lze provádět pomocí technologie Java, konkrétně její mobilní podoby Java ME. Kromě toho lze vytvářet RIA9, které jsou spouštěny pomocí MDS (Mobile Data System) runtime. Jako vývojové prostředí lze využít IDE Eclipse s doinstalovaným pluginem. Další variantou je využítí IDE Visual Studio 2005/2008 také s patřičným pluginem. (9) Následující obrázek (Obrázek 2.5-1) znázorňuje standardní obrazovku tohoto mobilního operačního systému.
Obrázek 2.5-1 - Obrazovka zařízení BlackBerry (10)
2.6
webOS (PalmOS) V případě PalmOS se jedná o jednu ze starších platforem, které jsou stále
na trhu. První verze PalmOS vyšla v roce 1996. Poslední verze 5.5 vyšla v roce 2007. S touto verzí také došlo k přejmenování na Garnet OS. Nová verze tohoto mobilního operačního systému zatím není plánována, protože nová mobilní zařízení Palm mají již jiný operační systém nazvaný webOS. Nejsou ani plánována další nová mobilní zařízení s tímto starším (PalmOS) mobilním operačním systémem. Všechna nová mobilní zařízení od společnosti Palm, Inc jsou plánována již pouze s novým operačním systémem webOS.
9
RIA - Rich Internet Application
Vývoj na platformě Windows Mobile
Strana 21 z 112
Mobilní Platformy Tento operační systém je založený na jádře operačního systému Linux. Název operačního systému již sám o sobě vypovídá, na kterých technologiích staví. Jde o webové technologie HTML, CSS, JavaScript, AJAX. Z toho také plyne způsob vývoje na tento operační systém. Jde tedy o vytváření webových aplikací pomocí těchto zmíněných technologií. Tento způsob přináší výhodu ve smyslu přístupnosti pro širší komunitu vývojářů, protože vývoj webových aplikací je poměrně snadnější než např. vývoj v C++. Na druhou stranu chybí zde možnost vývoje nativních aplikací. K vývoji webových aplikací na tento operační systém je k dispozici Palm® Mojo™ SDK10, který obsahuje již předpřipravené knihovny (např. pro integraci dotykových gest). Pro testování je k dispozici vlastní emulátor zařízení, provozovaný na virtualizačním nástroji VirtualBox od společnosti Sun Microsystems. Jako vývojové prostředí lze použít IDE Eclipse, pro které je k dispozici patřičný modul. Následující obrázek (Obrázek 2.6-1) znázorňuje standardní obrazovku tohoto mobilního operačního systému.
Obrázek 2.6-1 - Základní obrazovka a spouštěč aplikací v operačním systému webOS (11)
10
SDK - Software Development Kit
Vývoj na platformě Windows Mobile
Strana 22 z 112
Mobilní Platformy
2.7
Shrnutí přehledu mobilních platforem Z přehledu mobilních platforem je patrné, že má uživatel na trhu bohatý
výběr a může si tak zvolit sobě vyhovující platformu v podobě mobilního zařízení. Stejně tak si mohou vývojáři mobilních aplikací zvolit, pro kterou z mobilních platforem budou vytvářet své produkty. Počet mobilních zařízení neustále roste a jsou představovány nové mobilní zařízení, aby pokryly co největší skupiny zájemců s rozlišnými požadavky. V posledních měsících se objevují na veřejnosti zprávy, které hovoří o celkovém zvyšování podílu mobilních zařízení s operačními systémy na úkor klasických mobilních telefonů. V současnosti je podíl chytrých mobilních telefonů 14 % a očekává se nárůst tohoto podílu do roku 2012 na 37 %. (12) V rámci konkurenčního boje mezi společnostmi Microsoft a Apple se Microsoft inspiroval úspěchem zařízení iPhone a hlavně ve spolupráci s firmou HTC, která vyrábí PDA podobající se vzhledem zařízení iPhone, uvádí na trh nová zařízení. Tato nová mobilní zařízení nabízí funkcionalitu, kterou naopak iPhone nedisponuje. Ovšem podobně v rámci tohoto boje postupuje nejen společnost Apple, která doplňuje funkcionalitu11. A také ostatní výrobci uvedených platforem se snaží přiblížit modelu, který se postupně profiluje v posledních měsících. Jako ideální výrobek pro většinu uživatelů těchto mobilních zařízení je zařízení s velkým dotykovým displejem (zejména kvůli prohlížení internetu), prostředí v telefonu, které se dá ovládat jednoduše prsty, dostupnost datových služeb všeho druhu, bohatá hardwarová výbava (Bluetooth, GPS, fotoaparát, pohybový senzor) a hlavně rozšiřitelnost softwarové výbavy podle uživatelova přání. Přibližování podoby zařízení neprobíhá pouze na hardwarové úrovni, ale také na softwarové úrovni. Na obrázcích základních obrazovek jednotlivých operačních systémů uvedených v příslušných kapitolách je vidět, že všichni výrobci využívají Např. při vstupu na trh neuměl iPhone odesílat MMS zprávy, nebo obsluhovat GPS navigaci, protože neexistoval žádný navigační software pro tento telefon. Dnes je toto již minulostí, a čím novější firmware, tím více nových funkcí toto zařízení umí. Kromě toho se toto zařízení dočkalo nového vylepšeného modelu. 11
Vývoj na platformě Windows Mobile
Strana 23 z 112
Mobilní Platformy takřka stejný model pro stavbu základního grafického uživatelského rozhraní operačního systému. Jde o osvědčený model, který se nachází i u většiny klasických mobilních telefonů.
2.7.1 Srovnávací tabulka platforem Pro srovnání jednotlivých platforem, jsem vybral kritéria:
Vznik platformy - Vznik platformy vyjadřuje její stáří a jak dlouho je daná platforma v povědomí uživatelů a zároveň vývojářů.
Vydání poslední verze operačního systému - Čím novější verze operačního systému, tím větší předpoklad, že zahrnuje podporu nejnovějších technologií, ať už z pohledu HW nebo SW.
Možnosti vývoje aplikací – Možnosti vývoje aplikací pro platformu.
Podpora vývoje ve formě vývojových nástrojů – Jak jsou dostupné vývojové nástroje a jaká je možnost jejich výběru.
Vývojové nástroje pro různé platformy – Zda jsou vývojové nástroje dostupné na více platforem. Čím více platforem umožňuje vývoj, tím více vývojářů může tato mobilní platforma oslovit.
Z tabulky je patrné, že všechny platformy (vyjma platformy Symbian) mají poslední verzi svého operačního systému z aktuálního12 roku (2009). Nejširší možnosti vývoje aplikací nabízí platforma Symbian, dále Windows Mobile, Google Android a iPhone OS. Pro všechny platformy existují volně dostupné nástroje pro vývoj aplikací. Komerční nástroje jsou k dispozici pro platformy: Windows Mobile, iPhone OS a BlackBerry. Oficiální vývojové nástroje pro různé operační systémy nejsou dostupné u platformy Windows Mobile a platformy iPhone OS, ale neplatí to pro všechny možnosti vývoje u těchto platforem.
12
Aktuálního v době psaní práce (pozn. autora)
Vývoj na platformě Windows Mobile
Strana 24 z 112
Mobilní Platformy Tabulka 2.7-1 - Srovnání mobilních platforem
Kritérium Mobilní platforma (OS) Windows Mobile (Phone)
Symbian OS
Google Android
iPhone OS
Vznik platformy
1999
2001*
2007
2007
Vydání poslední verze operačního systému
2009 (6.5)
2007 (9.5)
2009 (2.0)
2009 (3.1)
Možnosti vývoje aplikací Nativní C++ Řízené J2ME, .NET CF Webové Nativní C++ Řízené J2ME, .NET CF 2, Python, Ruby Webové Nativní C++ Řízené Java Webové Nativní Ojective C Řízené .NET CF (MonoTouch) Webové
Podpora vývoje ve formě vývojových nástrojů
Vývojové nástroje pro různé platformy
Přímá podpora od výrobce OS, komerční i volně dostupné nástroje
NE13
Od výrobců zařízení (Nokia, Sony Ericsson), volně dostupné nástroje
ANO
Přímá podpora od výrobce OS, volně dostupné nástroje
ANO
Přímá podpora od výrobce OS, komerční i volně dostupné nástroje
NE14
Přímá podpora od výrobce OS, BlackBerry 1999 2009 (5.0) komerční i volně ANO dostupné nástroje Přímá podpora od výrobce OS, webOS 2009** 2009 (1.3) Webové ANO volně dostupné nástroje * - Předchůdce Symbianu EPOC resp. PSION pochází již z roku 1990 resp. 1980, ** - Předchůdce webOS PalmOS pochází z roku 1996 Řízené J2ME Webové
Existují i vývojové nástroje pro jiné platformy než MS Windows, ale nejde o oficiální vývojové nástroje. U některých technologií pro vývoj, jako je např. Flash jsou dostupné nástroje i pro jiné platformy. Stejně tak webové aplikace lze vytvářet i v jiných platformách než je MS Windows. 14 Aplikace lze vyvíjet i v jiném operačním systému než je Mac OS s využitím nové možnosti kompilace technologie Flash anebo pomocí vývojového nástroje Airplay SDK. 13
Vývoj na platformě Windows Mobile
Strana 25 z 112
Mobilní Platformy
2.7.2 Důvody pro výběr platformy Windows Mobile Po představení všech hlavních platforem, pro které lze vyvíjet mobilní aplikace jsem vybral v kontextu diplomové práce platformu Windows Mobile, na kterou se zaměřím. Obecně výběr samozřejmě závisí na povaze vyvíjené aplikace a na kategorii cílových zákazníků a na zaměření subjektu, který aplikaci vyvíjí. Každá platforma má své spektrum cílových zákazníků. A je nutné si tak rozmyslet předem, kterou skupinu má aplikace oslovit. Zatímco platforma OS iPhone je spíše pro mladší generaci a tak se na ní dělají zejména aplikace sloužící pro zábavu, tak např. platforma Google Android slouží zatím zejména pro technické nadšence. Jednou z výhod Windows Mobile je právě široké spektrum uživatelů. Čím dál více se začíná prosazovat i u mladších generací a nejen u podnikové klientely a technických nadšenců. Navíc existuje i např. možnost jak portovat oblíbené aplikace z platformy iPhone OS a to je další způsob jak přilákat zákazníky, kteří zatím využívají tuto konkurenční platformu.15 Jedním z hlavních důvodů proč vyvíjet aplikace pro platformu Windows Mobile je široká možnost vývoje aplikací, jak je popsáno v jedné z následujících kapitol, konkrétně kapitole 4 Možnosti vývoje pro platformu Windows Mobile. Pro vývoj pro tuto platformu hovoří také fakt, že jsou dostupné kvalitní vývojové nástroje. Patří mezi ně např. vývojové prostředí Visual Studio a Microsoft Device Emulator, který je popsán v dalších kapitolách. Dalším faktorem je stabilita společnosti Microsoft a její rozhodnutí podporovat tuto platformu a snaha získat v co nejkratší době většinový podíl na trhu s mobilními operačními systémy.
Způsob jak portovat aplikace z platformy iPhone OS na Windows Mobile popisuje případová studie: Porting the Amplitude Application from the iPhone to a Windows Mobile Device – a Case Study viz. [http://msdn.microsoft.com/en-us/library/ee355030.aspx] 15
Vývoj na platformě Windows Mobile
Strana 26 z 112
Popis platformy Windows Mobile (Phone)
3 Popis platformy Windows Mobile (Phone) 3.1
Historie Windows Mobile Historie operačního systému Windows Mobile začíná v roce 2000, kdy
společnost Microsoft vydala verzi nazvanou Pocket PC 2000, která ještě nebyla přizpůsobená, aby podporovala modul GSM. Společnost Microsoft zareagovala na zvyšující se požadavky a vydala novou verzi svého operačního systému a to ve 2 verzích. Jednak stále verzi pro zařízení bez GSM modulu Pocket PC 2002. Druhou verzí byla nová verze pro zařízení s GSM modulem nazvaná Pocket PC 2002 Phone Edition. Zároveň vydává první verzi operačního systému Windows Mobile pro chytré telefony Smartphone 2002. Následovala verze Windows Mobile 2003, která přišla s podporou nových technologií jako Wi-fi či Bluetooth. Ta se dočkala updatu v obou verzích jak pro Smartphone, tak pro Pocket PC a jednalo se o verzi WM2003 SE (Second Edition). V roce 2005 společnost Microsoft uvedla novou verzi Windows Mobile 5.0 opět pro oba typy zařízení. Tato verze se dočkala několika aktualizovaných balíčků tzv. AKU (Adaptation Kit Update), které postupně přidávaly některé funkce a vylepšovaly stávající funkčnost zařízení. Poslední hlavní verzí tohoto operačního systému ještě pod názvem platformy Windows Mobile je verze Windows Mobile 6.0, resp. Windows Mobile 6.1, která má opět funkci updatu verze 6.0. Další verze nazvaná Windows Mobile 6.5 je vydána již pod změněným názvem platformy na název Windows Phone. Verze 6.5 je opět update verze 6.0. Příští hlavní a zlomová verze 7 má podle plánů společnosti Microsoft vyjít v roce 2010-2011. Tato verze má být již postavena na jádře WindowsCE 6.0 a podporovat např. technologii multitouch.
Vývoj na platformě Windows Mobile
Strana 27 z 112
Popis platformy Windows Mobile (Phone)
3.2
Novinky ve verzi 6.5 Zatím poslední verzí operačního systému Windows Mobile je verze 6.5.3 Tato
verze přináší tato hlavní vylepšení:
nový model plug-inů16 do Today17 obrazovky,
nový model programové nabídky,
novou obrazovku zamknutí zařízení,
novou verzi Internet Exploreru,
zrychlení odezvy systému,
nový formát kontextové nabídky,
integrace dotykových gest do systému,
nové služby,
vylepšení softwarové klávesnice v landscape zobrazení.
Nový model plug-inů do Today obrazovky je postaven na webových technologiích HTML, CSS, AJAX, Javascript. Tyto plug-iny se nazývají Windows Mobile Widgets. Plug-iny mají přístup k systému přes ovládací prvky ActiveX. Přinášejí tak nový možný způsob vývoje aplikací pro platformu Windows Mobile. Lze tedy vytvářet zcela nové aplikace anebo podporovat jiné vyvíjené aplikace ve formě plug-inu do Today obrazovky. Nový
model
programové
nabídky
nabízí
pohodlnější
procházení
nainstalovaných aplikací a ovládacích aplikací systému. Jedná se hexagonální matici ikon, kterou lze posouvat v horizontálním směru pomocí dotykových gest (tahem nahoru nebo dolů dotykovým perem či prstem kdekoliv v hexagonální matici). Nová obrazovka zamknutí nabízí nyní přehled o zmeškaných hovorech a došlých SMS zprávách. Nová verze mobilního Internet Exploreru nabízí plnou funkcionalitu desktopové verze Internet Exploreru verze 6 a ještě jí rozšiřuje o další funkce.
Plug-in je zásuvný modul, který rozšiřuje funkcionalitu aplikace. Today obrazovka je výchozí obrazovka systému, kterou vidí uživatel po zapnutí a naběhnutí zařízení. Součástí této obrazovky jsou informace o následujících událostech v kalendáři, seznam úkolů, příchozí pošta či SMS a další. 16 17
Vývoj na platformě Windows Mobile
Strana 28 z 112
Popis platformy Windows Mobile (Phone) Systém nabízí rychlejší odezvu na uživatelské pokyny, než tomu bylo u předchozí verze. Vše je závislé i na výkonu zařízení, na kterém je operační systém provozován. Rychlost odezvy tak není na každém zařízení s tímto operačním systémem stejná. Nový formát kontextové nabídky umožňuje ovládání kontextových nabídek pomocí prstů. Došlo k rozšíření ovládacích prvků tvořící kontextovou nabídku tak, aby na jednotlivé položky nabídky šlo poklepat prstem a nebylo nutné použití dotykového pera. Díky integraci dotykových gest nyní operační systém umožňuje posouvat obsah obrazovek v systému horizontálními a vertikálními tahy na dotykovém displeji. Pro využití těchto funkcí ve vyvíjených aplikací je nutné použít potřebné API. Nové služby MyPhone a Marketplace rozšiřují nabídku služeb poskytovanou operačním systémem Windows Mobile. Služba MyPhone umožňuje synchronizaci dat kalendáře, úkolů, kontaktů, fotografií a nabízí jejich využití v některých komunitních sítích. Služba Marketplace slouží k pohodlnému nákupu aplikací z portálu Windows Marketplace for Mobile, kde jsou umístěné aplikace, setříděné do tematických kategorií.
3.3
Charakteristika platformy Windows Mobile/Phone jako platformu lze sledovat z 2 pohledů. První je
hardwarový pohled, druhý pohled je z hlediska softwaru. Tyto pohledy jsou zároveň dimenzemi pro navrhovanou metodiku vývoje aplikací pro platformu Windows Mobile.
3.3.1 Hardwarový pohled Platforma Windows Mobile/Phone představuje řešení, které umožňuje využití moderních komunikačních technologií. Základním předpokladem je ale podpora hardwarového vybavení mobilních zařízení na úrovni operačního systému. Vývoj na platformě Windows Mobile
Strana 29 z 112
Popis platformy Windows Mobile (Phone) V začátcích této platformy byla zařízení oproti těm dnešním daleko méně výkonná. Také nenabízela dnešní moderní ICT technologie (Bluetooth, GPS, Wi-Fi, GSM, WCDMA a další). Výkony prvních zařízení začínaly u kmitočtů procesoru řádově na 10kách MHz a 16MB paměti RAM. Dnešní zařízení jsou již o poznání výkonnější. Nejvýkonnější zařízení má dnes kmitočet procesoru 1GHz a kapacitu paměti RAM 448MB. Kromě toho nabízejí daleko lepší rozlišení obrazovky a více barev. Zároveň již v předstihu některá zařízení integrují dotykové displeje, které podporují technologii multitouch. Ta ale zatím není v operačním systému Windows Mobile podporována. Výrobci ji ale integrují z důvodu, aby byl možný upgrade operačního systému na budoucí verzi 7, která již bude tuto technologii podporovat a zákazníci si tak nemuseli ihned kupovat nové zařízení. Ač z krátkodobého obchodního hlediska by tomu mělo být naopak. Jako procesor se dnes nejčastěji používá typ ARM, což je 32bitová mikroprocesorová architektura typu RISC. Na některých zařízeních lze také najít procesory typu MIPS nebo SH3. Mezi nejčastější hardwarové komponenty u mobilních zařízení dnes patří moduly GPS, Bluetooth, Wi-Fi, IrDa, G-Senzor, digitální fotoaparát, GSM, FM rádio. Moduly jsou nejčastěji integrovány již na základní desce zařízení. Některé moduly lze dokoupit samostatně a provozovat je s externím připojením buď pomocí Bluetooth anebo přípojného kabelu. Zařízení se dělí na 2 kategorie. Na zařízení s dotykovým displejem (PDA, MDA) a na zařízení s displejem, který není dotykový (Smartphone). Zařízení bez dotykového displeje jsou vybavena dalšími ovládacími prvky, aby je bylo možné ovládat. Nejčastěji k tomu slouží číselná matice 0-9 a další tlačítka, tak jak je tomu u ostatních mobilních telefonů. Další variantou je QWERTY klávesnice, která se nachází u zařízení, která jsou specifická svým širším rozměrem, aby se tam tato klávesnice vešla. U těchto zařízení bývají displeje nejčastěji orientovány na šířku anebo mají čtvercový tvar. Jsou to např. rozlišení (240x240, 320x320, 440x240 a další).
Vývoj na platformě Windows Mobile
Strana 30 z 112
Popis platformy Windows Mobile (Phone) Zařízení s dotykovým displejem teoreticky již žádné další ovládací prvky, kromě tlačítka pro zapnutí a vypnutí zařízení nepotřebuje, ale v praxi jsou vždy přítomna alespoň některá další tlačítka (např. tlačítka pro zvednutí a položení telefonického hovoru, směrový joystick, tlačítko pro zapnutí fotoaparátu, Wi-Fi atd.). U dotykových displejů se již odstupuje od dříve klasického rozlišení QVGA (240x320) k rozlišení WVGA (480x800). Kromě těchto rozlišení jsou nabízená i zařízení s různými rozlišeními (např. 240x400,320x320 a další). Mezi výrobce zařízení pro tuto platformu patří např. společnosti HTC, Acer, HP, Dell, LG, Samsung, Motorola, Toshiba, Sony Ericsson.
3.3.2 Softwarový pohled Operační systém Windows Mobile je založený na jádře systému Windows CE, který je konstruován právě pro přenosná zařízení a zařízení s nižším výkonem. Předností tohoto operačního systému je také skutečnost, že podporuje moderní ICT technologie jak na hardwarové úrovni, tak i na úrovni software. Aplikace tak mohou využívat tento dostupný hardware (např. modul GPS, Bluetooth, Wi-Fi). Tento operační systém je charakteristický zejména svým vzhledem. Koresponduje s ostatními produkty společnosti Microsoft. Vzhled nabídek, oken a ovládacích prvků operačního systému je tak velmi podobný desktopovému vzhledu operačních systémů Microsoft Windows což umožňuje snadnou orientaci uživatelů při využívání tohoto mobilního operačního systému bez jeho předchozích znalostí. Operační systém Windows Mobile nabízí multitasking18 a lze na něm vytvářet aplikace s více-vláknovým zpracováním. Umožňuje tak např. současně telefonovat (aplikace pro telefonování) a využívat datové přenosy (aplikace pro procházení webového obsahu). Pro vývoj aplikací existuje více možností. Z pohledu prostředí běhu aplikace mohou vývojáři vytvářet aplikace nativní, řízené a webové. Podporovány jsou tak různé programovací jazyky a technologie. To dává také možnost výběru vhodné technologie a jazyka pro vývoj aplikace v závislosti na typu a zaměření aplikace.
18
Provozování více aplikací najednou
Vývoj na platformě Windows Mobile
Strana 31 z 112
Možnosti vývoje pro platformu Windows Mobile
4 Možnosti vývoje pro platformu Windows Mobile Podle prostředí běhu aplikace můžeme definovat tyto kategorie aplikací: Nativní aplikace, Řízené aplikace, Webové aplikace.
4.1
Nativní aplikace Nativní aplikace se vyznačují především svojí rychlostí. Jsou kompilovány
do strojového kódu procesoru, na kterém mají běžet. Není tedy žádná mezivrstva, která by zpomalovala běh aplikace.
4.1.1 Visual C++ Jedinou možností vývoje nativních aplikací na OS Windows Mobile je vývoj v jazyce Visual C++. Pro tuto variantu hovoří hlavně fakt, že se jedná o aplikace, které jsou provozovány přímo v systému bez mezivrstvy a jsou tedy schopné naplno využít výkon zařízení. Tento jazyk standardně využívá systémové knihovny operačního systému a umožňuje tak využít všechnu dostupnou funkcionalitu, kterou operační systém Windows Mobile nabízí. Na druhou stranu oproti řízeným aplikacím je vývoj nativních aplikací ve Visual C++ náročnější na znalosti. To co lze často v řízeném kódu provést pomocí jednoho příkazu, tak v C++ je k tomu potřeba více příkazů. Aplikace v jazyce Visual C++ lze vytvářet pomocí více vývojových nástrojů. Jsou to např. Visual Studio, eMbedded Visual C++, Dev-C++ s knihovnami Smartwin. Jsou dostupné tedy jak nástroje komerční (Visual Studio19) tak i volně dostupné (eMbedded Visual C++, Dev-C++ s knihovnami Smartwin). Tyto nástroje jsou charakteristické tím, že součástí je IDE 20. Existují i volně dostupné kompilátory jako např. Pocket GCC, CeGCC. Jejich výhodou je, že jsou nezávislé na platformě Windows a lze tak vytvářet aplikace v prostředí OS Linux nebo Mac-OS.
Visual Studio existuje i ve volně dostupných edicích express, ale tyto edice nepodporují vývoj na mobilní zařízení 20 IDE – Integrated Development Environment (Integrované vývojové prostředí) 19
Vývoj na platformě Windows Mobile
Strana 32 z 112
Možnosti vývoje pro platformu Windows Mobile Vývoj nativních aplikací je vhodný použít v případě, kdy jde o rychlost aplikace, využívání systémových knihoven a tzv. low-level21 přístup.
4.2
Řízené aplikace Řízené aplikace jsou aplikace, které jsou provozovány v operačním systému
pomocí mezivrstvy. Tato mezivrstva překládá řízený kód do nativního až ve chvíli, kdy je aplikace spuštěna. Výhodou tohoto řešení je možnost optimalizace běhu aplikace na konkrétní procesor a možnost kompilování formou JIT 22. JIT kompilace tak kompiluje jednotlivé úseky aplikace, které jsou zrovna potřeba. Kromě toho uvolňuje prostředky již uskutečněných příkazů. Tento způsob má tak výhodu v šetření systémových zdrojů. Nevýhodou je skutečnost, že každé další zavolání funkce znamená nové přeložení do nativního kódu.
4.2.1 Java Micro Edition Java ME představuje poměrně dobrý způsob vývoje aplikací na všechny mobilní platformy, protože většina z nich umožňuje provozovat tyto aplikace, jelikož podporují Java Virtual Machine ve svém prostředí. Zejména v posledních letech platilo, že Java ME byla určena zejména pro vývoj mobilních her, které byly portovány na všechny možné typy mobilních telefonů (zejména velkých značek: Sony Ericsson, Nokia, Motorola a další). Při vývoji v prostředí Java ME není možné využívat systémové knihovny operačního systému a vývojář je omezen pouze na základní balíček tříd. Má však k dispozici další balíčky, které rozšiřují funkcionalitu a ovládají další funkce u zařízení, které jsou s tímto balíčkem kompatibilní. Zároveň někteří výrobci vyrábí vlastní přídavné balíčky určené k určitému zařízení (např. balíček tříd pro obsluhování GPS modulu pro konkrétní typ mobilního telefonu). Ovšem to má i svojí jednu výhodu a to konkrétně takovou, že tím že není umožněno využívat systémové knihovny operačního systému, tak ani není umožněno jakkoliv zasahovat do systému a nedojde tak k poškození uživatelových dat jakou jsou např. kontakty,
Low-level přístup – jde o vývoj aplikace, která přistupuje přímo k HW a nevyužívá přitom žádné další mezivrstvy. Tento přístup je náročnější, ale dovoluje aplikaci využívat všechny funkce HW. 22 JIT – Just-In-Time 21
Vývoj na platformě Windows Mobile
Strana 33 z 112
Možnosti vývoje pro platformu Windows Mobile zprávy atd23. Ovšem jak to už bývá, tak i zde lze najít cestu, která s uživatelovou interakcí může vést k nechtěným telefonátům na drahá placená telefonní čísla, či odcizení kontaktů.
4.2.2 JavaFX Mobile JavaFX Mobile je nová technologie firmy Sun Microsystems pro tvorbu RIA aplikací. Tato mobilní technologie je součástí technologie JavaFX. Je také postavená na principu řízených aplikací. Aplikace ke svému běhu potřebují JVM obdobně jako je tomu u technologie J2ME. Je to z toho důvodu, že JavaFX ve skutečnosti přímo využívá technologii JavaME. Jediné vývojové prostředí, které zatím podporuje tuto technologii, je IDE NetBeans. Jako jazyk slouží tedy Java a také JavaFX Script.
Obrázek 4.2-1 - Architektura platformy JavaFX (13)
Pro Javu ME existuje balíček JSR 75: PDA Optional Packages for the J2METM Platform, který umožňuje zpřístupnit složky v zařízení a tzv. PIM (Personal Information Management) data, ale situace je taková, že pro Windows Mobile existuje několik J2ME Midlet Managerů pro provoz javovských aplikací, ale ani jeden z nich nepodporuje naplno tuto funkcionalitu v prostředí Windows Mobile. Nejlépe je na tom v současnosti Midlet Manager Esmertec Jbed od společnosti Myriad Group AG. (30) 23
Vývoj na platformě Windows Mobile
Strana 34 z 112
Možnosti vývoje pro platformu Windows Mobile
4.2.3 .NET Compact Framework .NET Compact Framework představuje řešení z rodiny řízených aplikací, kdy jsou aplikace napsány a posléze přeloženy do mezi-jazyka CIL a poté pomocí JIT kompilátoru zkompilovány pro dané prostředí. V .NET Compact Frameworku (dále .NET CF) má vývojář možnost výběru při psaní aplikací mezi jazykem Visual Basic.NET a C#. Visual Basic.NET vychází ze svého předchůdce Visual Basicu, zatímco jazyk C# je poměrně nový a má základy v jazycích C (zejména co se týče syntaxe) či C++. Ovšem nejvíce se jazyk C# podobá jazyku Java svým pojetím objektově orientovaného programování. Historie .NET Compact Frameworku z pohledu jednotlivých verzí První verzí mobilního operačního systému, na kterém bylo možné provozovat .NET CF (verzi 1.0), byla verze Pocket PC 2000. Od té doby se s vývojem .NET CF zvyšovaly i nároky na mobilní OS, ovšem z dnešního pohledu nijak zásadně dramaticky. A tak nejnovější verze .NET CF 3.5 běží na OS Pocket PC 2003 a výše. Běží tedy z dnešního pohledu i na starších přístrojích, které svojí hardwarovou výbavou zaostávají za dnešními top přístroji, zejména komunikačními možnostmi (GSM, UMTS, Wi-fi, Bluetooth) a dalšími přídavnými technologiemi jako je digitální fotoaparát či navigace GPS, což se samozřejmě také odráží na možnostech tvorby aplikací pro tato starší zařízení, kdy logicky ač jsou ovládání těchto moderních technologií podporovány ze strany frameworku, tak reálné využití u starších přístrojů není možné v základním vybavení. Na druhou stranu není problém přístroj dovybavit nákupem chybějícího zařízení a připojit jej k němu. Nejčastěji se tak stává pomocí technologie Bluetooth2. Tak je možné připojit k zařízení náhlavní soupravu, GPS navigaci, Stereo sluchátka (která umožňují využití profilů A2DP3) a další. .NET Compact Framework prošel z hlediska vývoje již dlouhou cestu. Vše ale proběhlo relativně v krátké časové době, ovšem v počítačovém světě je tato doba dostatečná k velkým změnám a přechodům. První verze .NET CF pro veřejnost spatřila světlo světa již ke konci roku 2002. První řada .NET CF se držela velmi dlouho na všech zařízeních na kterých bylo možné ji provozovat i díky 3 service packům, kdy poslední byl uvolněn až v lednu roku 2005. Avšak ke konci roku 2005 (říjen) došlo k uvedení druhé řady (2.0) .NET CF. Ta s sebou přinášela obrovské
Vývoj na platformě Windows Mobile
Strana 35 z 112
Možnosti vývoje pro platformu Windows Mobile množství změn a hlavně mnoho rozšíření stávající funkcionality .NET CF. Druhá řada vydržela tentokrát o něco méně než první řada, opět i díky 2 service packům (poslední vydán v dubnu roku 2007). Třetí řada .NET CF však přišla až s verzí 3.5 (plně použitelnou) na přelomu roku 2007 a 2008 a přinesla opět další rozšíření již stávající bohaté nabídky funkcionality předcházející verze, viz vývoj verzí v čase příloha A (Tabulka 13.1-2) Popis jednotlivých verzí První verze .NET CF nebyla ještě z hlediska funkcionality nijak bohatá, ovšem s příchodem verze 2.0 přišly veliké změny za současné kompatibility aplikací vytvořených ve verzi 1.0. Jedním z vylepšení verze 2.0 byl hlavně výkon. Aplikace tak pracovaly daleko rychleji díky vylepšenému JIT kompilátoru, který zároveň sjednocoval JIT kompilátory z předchozí verze a podporoval všechny typy procesorů. Zároveň bylo urychleno zpracovávání XML Web služeb a přístup k datům. .NET Compact Framework 2.0 také implementoval nové vlastnosti jazyka C# (2.0), které obsahoval „dospělý“ .NET 2.0. Přidány byly některé události k ovládacím prvkům. Také byly vylepšeny kryptografické služby. Serializace XML probíhá rychleji a přibyla podpora SOAP 1.2. Další novinkou byla plná podpora sériových portů (jako u .NET 2.0). Vylepšená byla i podpora vláken a zpracování XML pomocí XPath. Vylepšeno bylo i debugování a kompilování aplikací. Do jazyka samotného pak přibyla podpora některých datových typů. Další vylepšení se pak nacházely na poli tvorby GUI, kdy přibyla podpora dokování a ukotvování, automatické scrollování atd. (14) (15) (16) Více o možnostech návrhu GUI je v samostatné kapitole, která se tomuto tématu věnuje. Verze 3.5 opět přinesla oproti verzi 2.0 plno vylepšení. Jednak je to podpora WCF (Windows Communication Foundation), což je unifikovaný programovací model společnosti Microsoft pro tvorbu aplikací orientovaných na služby. A pak také je to podpora LINQ (Language-Integrated Query). LINQ je nástroj pro práci nad různými datovými zdroji při používání jednotného dotazovacího jazyka. LINQ ovšem není plně podporován jako v .NET 3.5, ale pouze omezeně. Podpora LINQ je také ze strany prvků DataSet a DataTable. V rámci LINQ to XML nejsou podporovány rozšíření XPath. (17) Vylepšeny byly opět některé ovládací prvky, zejména
Vývoj na platformě Windows Mobile
Strana 36 z 112
Možnosti vývoje pro platformu Windows Mobile pro jejich práci s grafikou. Jsou to prvky: TabPage, Panel, Splitter, PictureBox. Přibyla podpora ClearType fontů u třídy Control. Přibyly vlastnosti u prvku ComboBox
pro zjišťování vybraného textu. Další novinkou je třída
SoundPlayer, přes kterou lze na zařízení přehrávat více zvuků současně a celkově tak ovládat přehrávání podporovaných zvukových souborů v .NET CF aplikacích. Vylepšení
se
také
dočkalo
zpracování
komprese
ve
jmenném
prostoru
System.IO.Compression. Pro vývojáře přibyla plná podpora jako u plného .NET frameworku CLR profilů, čímž můžou sledovat chování garbage collectoru. Vylepšeno je také debutování a logování. Také přibyla enum hodnota pro rozlišení platformy (PocketPC, Smartphone, WinCEGeneric). (17)
4.2.4 OpenNetCF (Smart Device Framework) Jelikož .NET Compact Framework nenabízí plnou funkcionalitu jako .NET framework, tak musí vývojáři v některých případech psát třídy, které často využívají systémové knihovny a tuto funkcionalitu si tak sami nahradit vlastním řešením. OpenNETCF je také framework postavený na .NET frameworku a obsahuje funkcionalitu .NET Compact Frameworku. Přidává však navíc funkcionalitu obsaženou právě v .NET frameworku. Obsahuje tedy třídy, které si většinou vývojáři tvoří sami. Kromě tříd které obsahují zpřístupnění některé funkcionality obsažené v plnohodnotném .NET frameworku se také jedná i o ovládací prvky, které nabízejí nové vlastnosti. Tyto ovládací prvky tak umožňují tvorbu lépe ovladatelného grafického uživatelského prostředí. Nejnovější OpenNETCF je k dispozici zdarma pouze ve verzi Community Edition, která však nenabízí např. podporu IntelliSense v IDE, dokumentaci k jednotlivým třídám anebo kompletní zdrojové kódy pro jednotlivé třídy. Více o rozdílech pro jednotlivé licence lze nalézt v příloze A.
4.3
Webové aplikace, RIA aplikace Trend aplikací běžících ve webových prohlížečích, který je v dnešní době
často viděn u aplikací běžících na desktopech se postupně dostává v některých případech i na mobilní platformy. Výrobci technologií pro tvorbu aplikací typu RIA
Vývoj na platformě Windows Mobile
Strana 37 z 112
Možnosti vývoje pro platformu Windows Mobile jako je Flash či Silverlight, chtějí smazat rozdíl mezi vytvářením aplikací pro desktopové počítače a mobilní zařízení. Základem je vytvoření běhového prostředí pro všechny možné existující platformy. Blíže k tomu má technologie Flash, která již působí nezávisle na operačním systému na desktopech, protože pro většinu operačních systémů resp. internetových prohlížečů existuje zásuvný modul pro provoz této technologie. Navíc existuje plno uživatelů, kteří chtějí mít k dispozici ve svých prohlížečích na mobilním zařízení tuto technologii, protože jde o již zaběhnutý produkt ze světa desktopů a existuje tak v tomto formátu spousta aplikací. Ve skutečnosti jsou ale již dostupné technologie, které toto umožňují, ale pouze v případě, že mobilní zařízení podporují vyžadované technologie.
4.3.1 Webové aplikace Vývoj webových aplikací, které běží dnes v prohlížečích integrovaných do Windows Mobile je již prakticky stejný jako vývoj těchto aplikací pro prohlížeče24 běžně používaných u stolních počítačů či notebooků. Nejnovější mobilní Internet Explorer obsahuje funkcionalitu Internet Exploreru verze 6, ale přidává ještě další funkcionalitu (např. transparentnost obrázků – konkrétně grafického formátu PNG). Je to z toho důvodu, že Internet Explorer 6 je dnes již na poli prohlížečů zastaralý, zejména co se týče způsobu vykreslování stránek a také bezpečnosti. To hlavní z hlediska aplikací je ale podpora Java Scriptu, která je právě pro některé webové aplikace klíčová. (18) Lze tedy vytvářet i AJAX aplikace, což je spojení asynchronního Java Scriptu a XML. Jednou z výhod tvorby webových aplikací je snadnější tvorba GUI pro různá rozlišení zařízení. Stačí dobře udělat kaskádové styly pro webovou aplikaci. Navíc taková aplikace poběží nejen na Windows Mobile, ale i na jiném zařízení, které bude podporovat vyžadovanou funkcionalitu. Na druhou stranu aplikace nemusí být vždy dostupná (např. při selhání serveru, na kterém běží, nebo při selhání mobilní sítě, která poskytuje datové připojení). Navíc vznikají další náklady při provozování aplikace za datové připojení.
24
Mezi nejvíce používané patří Internet Explorer, Mozilla Firefox, Opera, Chrome, Safari viz (33)
Vývoj na platformě Windows Mobile
Strana 38 z 112
Možnosti vývoje pro platformu Windows Mobile
4.3.2 Flash lite Aplikace ve Flash, konkrétně v jeho odlehčené verzi Flash lite mohou být dalším způsobem jak vytvářet aplikace. Výhoda tohoto způsobu je, že aplikace mohou být provozovány i na jiném zařízení než je Windows Mobile. Stačí, aby takové zařízení podporovalo přehrávání Flash souborů. Nicméně Flash aplikace jsou spíše nadstavbou webových aplikací. Flash má představovat tzv. RIA (Rich Internet Application), podobně jako třeba Silverlight nebo JavaFX. Navíc v současnosti se tento způsob pro výrobu mobilních aplikací nevyužívá a Flash je využíván k účelu tvorby animací či přehrávání videa. Společnost Adobe, která je výrobcem této technologie, však chystá plnohodnotný Flash pro mobilní platformy25, tak jak ho známe z prohlížečů běžících na operačních systémech stolních počítačů a notebooků. Nicméně těžko odhadovat, zda bude k této verzi Flash dostupný balíček funkcí, který bude schopen ovládat veškerou funkcionalitu telefonu a bude tak schopný pracovat se systémovými knihovnami.
4.3.3 Silverlight Silverlight je technologie pro vývoj, která představuje odpověď společnosti Microsoft na technologii Flash společnosti Adobe. Představuje vlastní řešení pro tvorbu
RIA.
Nicméně
Silverlight
prozatím
existuje
pouze
v podobě
pro desktopové počítače, ale v nejbližší době by se měla tato technologie objevit i na platformě Windows Mobile a také na platformě Symbian, protože Microsoft spolupracuje s firmou Nokia, která je hlavním výrobcem zařízení na kterých běží operační systém Symbian. Hlavní výhodou technologie Silverlight je skutečnost, že jde o produkt společnosti Microsoft, tudíž lze předpokládat lepší vzájemné propojení s operačním systémem Windows Mobile. Stejně tak integrace do vývojového prostředí Visual Studio znamená velikou výhodu, protože toto vývojové prostředí je primárně určeno pro vývoj aplikací na platformu Microsoft Windows včetně Windows Mobile.
25
Včetně Windows Mobile
Vývoj na platformě Windows Mobile
Strana 39 z 112
Možnosti vývoje pro platformu Windows Mobile
4.4
Shrnutí přehledů technologií pro vývoj Z předchozích kapitol je patrné, že je více možností vývoje aplikací
pro platformu Windows Mobile z pohledu technologií pro vývoj. Pro platformu Windows Mobile jsou aplikace nejčastěji vyvíjeny buď v nativní podobě anebo v řízené podobě. V nativní podobě jde tak o jazyk Visual C++. U řízených aplikací je nejčastější technologií pro vývoj .NET Compact Framework (JavaME je využívána zejména pro tvorbu mobilních her a v menší míře pro tvorbu aplikací k pracovnímu využití). Jestliže není vyžadována dostupnost aplikace v každé situaci a lze využít datová připojení, tak je možné vytvářet i webové aplikace anebo aplikace typu RIA. Vývoj mobilních aplikací pro platformu Windows Mobile má celkově širokou podporu co se týče vývojových nástrojů a dostupné dokumentace k jednotlivým technologiím pro vývoj.
4.4.1 Srovnávací tabulka technologií pro vývoj Pro srovnání jednotlivých technologií pro vývoj, jsem vybral kritéria:
Typ aplikace - Podle typu běhového prostředí aplikace a jejího charakteru. Možnosti jsou: Nativní aplikace, Řízená aplikace, Webová aplikace a aplikace typu RIA.
IDE pro vývoj - Jaký vývojový nástroj v podobě integrovaného vývojového prostředí je využíván k vývoji pomocí vybrané technologie. Vývojových integrovaných prostředí je většinou více, proto jsou vybrány ty nejpoužívanější korespondující s platformou Windows Mobile a běžících na platformě Microsoft Windows.
Dostupnost vývojových nástrojů – Jak jsou dostupné vývojové nástroje a jaká je možnost jejich výběru. Zda jsou dostupné komerční i volně dostupné nástroje.
Plný přístup k systémovým funkcím - Zda vývojová technologie umožňuje využití všech systémových funkcí a má tak plný přístup k systému a technologiím podporovaných systémem.
Vývoj na platformě Windows Mobile
Strana 40 z 112
Možnosti vývoje pro platformu Windows Mobile
Vývojové nástroje pro různé platformy – Zda jsou vývojové nástroje dostupné na více platforem a ne pouze na Microsoft Windows.
Tabulka 4.4-1 - Srovnání technologií pro vývoj
Kritérium
Typ aplikace
IDE pro vývoj
Visual C++
Nativní
eMbedded Visual C++, Visual Studio
JavaME
Řízená
Eclipse, NetBeans
JavaFX
Řízená / RIA
NetBeans
.NET Compact Framework
Řízená
Visual Studio, SharpDevelop
OpenNETCF (Smart Device Framework)
Řízená
Visual Studio, SharpDevelop
Technologie pro vývoj
Dostupnost vývojových nástrojů Komerční, Volně dostupné nástroje Komerční, Volně dostupné nástroje Volně dostupné nástroje Komerční, Volně dostupné nástroje Komerční, Volně dostupné nástroje
Plný přístup k systémový m funkcím
Vývojové nástroje pro různé platformy
ANO
NE
NE
ANO
NE
ANO
ANO
NE
ANO
NE
Visual Studio, Expression Webové aplikace Web, další Komerční, (HTML, CSS, Webová nástroje které Volně dostupné JavaScript, XML) nepocházejí od nástroje společnosti Microsoft Adobe Flash Flash lite RIA Komerční Professional Visual Studio, Silverlight RIA Expression Komerční Web * - Předchůdce Symbianu EPOC resp. PSION pochází již z roku 1990 webOS PalmOS pochází z roku 1996
NE
ANO
NE
ANO
-
NE
resp. 1980, ** - Předchůdce
4.4.2 Důvody výběru technologie pro vývoj Obecně nelze říci na kterou technologii pro vývoj se zaměřit více. Vždy záleží na konkrétním případě, tedy na povaze vyvíjené aplikace. Pro řízené aplikace hovoří fakt, že je lze provozovat na více platformách. To platí zejména pro technologii JavaME, ale tato technologie nemá v prostředí operačního systému Windows Mobile úplný přístup k systémovým funkcím. Z tohoto důvodu jsou tak možnosti vyvíjené aplikace částečně omezené.
Vývoj na platformě Windows Mobile
Strana 41 z 112
Možnosti vývoje pro platformu Windows Mobile Nejvýhodnějším řešením vývoje řízených aplikací pro operační systém Windows Mobile je tak využití technologie .NET Compact Framework anebo alternativní Smart Device Framework (OpenNETCF). Tyto technologie nabízejí možnost využití systémových knihoven, které jsou jinak přístupné pouze pro nativní vývoj a zároveň nabízejí všechny výhody, které nabízí dnešní způsob vývoje řízených aplikací. V případě, že je vyžadována nativní aplikace tak je zde pouze jediná možnost a to vývoj pomocí jazyka Visual C++. Pro tuto variantu hovoří zejména plné využití výkonu zařízení bez zatěžování systému nějakým dalším potřebným běhovým nástrojem, jako je tomu u řízených aplikací. Na druhou stranu vývoj nativních aplikací je složitější než vývoj řízených aplikací. U webových aplikací je stále převládajícím způsobem spojení již zaběhnutých technologií. Jde o technologie: HTML, CSS, JavaScript a XML. Aplikace typu RIA nejsou zatím pro mobilní zařízení s operačním systémem Windows Mobile příliš často vyvíjeny. Situace se může změnit s budoucím vydáním technologie Silverlight pro tuto mobilní platformu, protože jde o technologii stejného výrobce jako je celá platforma Windows Mobile. Jde tedy o společnost Microsoft, která již teď nabízí další kvalitní vývojové nástroje pro využití této technologie na desktopy. V kontextu diplomové práce a zejména výhod, které přináší vývoj v .NET Compact Frameworku jsem se rozhodl vybrat tuto technologii pro vývoj při demonstraci vývoje mobilní aplikace uvedené kapitole 9 Praktická část.
Vývoj na platformě Windows Mobile
Strana 42 z 112
Metodika vývoje pro platformu Windows Mobile
5 Metodika vývoje pro platformu Windows Mobile Vývoj aplikací je dnes většinou řízen podle některé z již navržených metodik. Zejména je tomu u velkých podnikových informačních systémů. „Metodika je tvořena obecně uznávanými postupy a návody, které popisují činnosti při návrhu, vývoji, nasazování software, řízení projektu atd. Cílem metodiky je formalizovat postupy, definovat zodpovědnosti a pravidla komunikace. Metodiky formulují obecné postupy, které lze aplikovat na široké spektrum projektů určitého typu. Metodika slouží k tomu, aby se návrháři, vývojáři, vedoucí projektů či jiné zainteresované osoby vyvarovaly chyb, které jsou v metodice již zdokumentovány. Na druhou stranu však důsledné dodržování nebo nedodržování určité metodiky v žádném případě neznamená zaručeně úspěšný projekt. Každý projekt je natolik specifický, že je nemožné více projektů realizovat úplně stejně. Metodika definuje rámcově činnosti, které se mají provést, dokumenty, modely, které se mají vytvořit.“ (19 str. 173) Vývoj mobilních aplikací má určitá specifika, která je nutná respektovat. Specifika se týkají zejména omezení, která jsou představována rozměry, výkonem a dostupnou funkcionalitou zařízení. Také rozsah aplikace se často liší od rozsahu robustních aplikací 26 běžících na stolních a přenosných počítačích. Tato specifika musí být zohledněna v metodice vývoje softwaru resp. v jejích příslušných fázích a dimenzích. Fáze, ze kterých se metodika skládá, mají různou důležitost. „Jednotlivé metodiky se liší, podle toho, jak přesně a jakým způsobem definují jednotlivé kroky tvorby SW. Navíc každá metodika klade různý důraz na jednotlivé etapy životního cyklu projektu. Zaměření metodik zpravidla vychází ze zaměření autora metodiky, kterým je obvykle výrobce určitého typu software.“ (19 str. 173) Dimenze pak představuje pohled na určitou oblast v dané fázi. V každé fázi se vyskytují zároveň role, které mají na starost vykonání předem stanovených činností.
26
Tyto aplikace mívají podobu tlustého klienta viz (34 str. 226)
Vývoj na platformě Windows Mobile
Strana 43 z 112
Metodika vývoje pro platformu Windows Mobile
5.1
Návrh metodiky V navržené metodice jsem vycházel částečně přímo z metodiky MMDIS27 (2),
která je vyvíjená na Vysoké škole ekonomické v Praze na Katedře informačních technologií (KIT). Z této metodiky jsem vycházel při výběru vhodných fází, na které se zaměřit pro navrženou metodiku a také jsem z této metodiky převzal v omezené míře princip multi-dimenzionality, který se na vývoj dívá z různých pohledů. V navržené metodice jsou dimenze pohledem, který sleduje nejvíce specifické oblasti, které musejí být zohledněny při vývoji mobilních aplikací, protože rozhodují o úspěchu vyvíjené aplikace. Detailní popis jednotlivých fází jsem čerpal z metodického vzoru „Nový objektově orientovaný vývoj obecného software vlastními silami" (20), který je součástí metodického rámce MeFIS28. „Metodický rámec je chápán jako uspořádaná skupina metodik, respektive metodických vzorů, které jsou zaměřeny jak na vývoj nového informačního systému, tak na rozvoj informačního systému i nasazování typového aplikačního softwarového vybavení." (21) V metodickém vzoru jsem se rovněž inspiroval při specifikování rolí, které se podílejí na vývoji mobilních aplikací. V souvislosti s navrženou metodikou jsou každé roli přiděleny činnosti, za které tato role odpovídá, resp. vykonává je. Na vykonávání každé role jsou potřebné odlišné znalosti. Tyto požadované znalosti jsou součástí popisu jednotlivých rolí v kapitole, která se popisem rolí zabývá.
27 28
Multidimensional Management and Development of Information System Methodology Framework for IS/ICT Systems
Vývoj na platformě Windows Mobile
Strana 44 z 112
Metodika vývoje pro platformu Windows Mobile
5.2
Fáze metodiky Fáze metodiky je úsek skládající se z předem vymezených činností. Každá
činnost má stanoveno, která role tuto činnost vykonává. Fáze má své vstupy a výstupy. Vstupy jsou potřebné na začátku fáze, kdy slouží jako podklad pro vykonávání jednotlivých činností v rámci této fáze. Výstupy pak vznikají na základě vykonání činností v rámci dané fáze. Často jsou tyto výstupy zároveň vstupy pro další fáze vyjma počáteční fáze. Navržená metodika se skládá z těchto fází:
úvodní studie,
analýza,
návrh,
implementace,
testování,
nasazení.
Obrázek 5.2-1 Posloupnost fází navržené metodiky
Jednotlivé fáze jsou popsány v následujících podkapitolách. Ke každé fázi je pak v Příloze C formulář popisující souhrnně tuto fázi. Formulář se skládá z cíle fáze, rolí29 vystupující v této fázi a jim přiřazené činnosti, dimenzí30 sledující odlišné pohledy na různé oblasti. Součástí formuláře je také seznam vstupů a výstupů fáze.
29
Více o jednotlivých rolích viz kapitola 5.3 Role
Vývoj na platformě Windows Mobile
Strana 45 z 112
Metodika vývoje pro platformu Windows Mobile
5.2.1 Úvodní studie Úvodní studie je první fází v metodice a prvním krokem v celém procesu vývoje aplikace. V této fázi přichází v první řadě podnět k vytvoření mobilní aplikace. Tento podnět slouží jako vstup do fáze. Od tohoto požadavku se poté odvíjí první analýza aplikace sloužící k jejímu popisu. Výstupem této fáze je tedy soupis prvotních požadavků, popis aplikace a také nástin projektového plánu obsahujícího odhadovanou dobu vývoje aplikace a odhadované náklady. Detailní popis fáze se nachází v Příloze C (Tabulka 13.3-1).
5.2.2 Analýza Na úvodní studii navazuje fáze Analýza, jejímž cílem je detailnější prozkoumání požadavků na vyvíjenou aplikaci. Analýza pokrývá všechny oblasti, které jsou pro mobilní aplikace specifické. Jde tak o prozkoumání požadavků na hardware mobilních zařízení, požadavků na ovládání aplikace a s tím spojené uživatelské rozhraní a v neposlední řadě také o upřesnění projektového plánu pro informování zadavatele o plánované době vývoje a nákladech. Součástí analýzy může být i analýza business procesu, který má aplikace pokrýt. To však záleží na rozsahu a povaze mobilní aplikace. Více o problematice analýzy a modelování procesů lze nalézt v (22) a (23). Tato oblast je tak rozsáhlá, že překračuje rámec této diplomové práce. Výstupem fáze Analýza je vypracovaná detailní analýza pokrývající specifické oblasti (hardware, software, uživatelské rozhraní a přístup k datům viz kapitola 5.4) a obsahují případy užití vyvíjené aplikace a konceptuální modely tříd a dat sestavené na základě zjištěné analýzy. Detailní popis fáze se nachází v Příloze C (Tabulka 13.3-2).
5.2.3 Návrh Fáze Návrh vychází z poznatků získaných ve fázi Analýza. Na těchto poznatcích se staví návrh aplikace, jehož součástí je tvorba kompletního diagramu
30
Více o dimenzích viz kapitola 5.4 Dimenze.
Vývoj na platformě Windows Mobile
Strana 46 z 112
Metodika vývoje pro platformu Windows Mobile tříd a datového modelu. Důležitým cílem této fáze je také stanovení, na kterých mobilních zařízeních bude vyvíjená aplikace provozována a jak bude tato aplikace ovládána vzhledem k podobě navrhovaného uživatelského rozhraní, aby zohledňovala specifika pro návrh uživatelského rozhraní popsaná v kapitole 6 Návrh uživatelského rozhraní. Výstupem fáze jsou designový model tříd a datový model, stanovená specifikace mobilních zařízení, návrh uživatelského rozhraní a výběr technologií, které mají být použity pro vývoj aplikace a zajišťují práci s daty. Detailní popis fáze se nachází v Příloze C (Tabulka 13.3-3).
5.2.4 Implementace Ve fázi Implementace jde o vytvoření aplikace a realizaci předem navržených modelů. Dochází zde k vytváření programového kódu, realizaci datového úložiště do jeho fyzické podoby a navázání na funkce vyvíjené aplikace a propojení navrženého uživatelského prostředí s programovým kódem v jeden fungující celek. Zároveň je pro aplikaci vytvářen instalátor pro nasazení aplikace do cílového zařízení, případně je stanoven postup jejího nasazení na cílová zařízení. Součástí tvorby programového kódu je také jeho doplnění o dokumentaci k jeho lepšímu porozumění. Výstupem této fáze je vydání verze vyvíjené aplikace, která bude postoupena do další fáze pro její otestování na cílových zařízeních a v prostředí, ve kterém má být aplikace provozována. Detailní popis fáze se nachází v Příloze C (Tabulka 13.3-4).
5.2.5 Testování Do fáze Testování vstupuje vydaná verze programátorem, která je výstupem předchozí fáze Implementace. Testování provádí subjekt v roli Tester. Tento subjekt by měl zkontrolovat chování aplikace podle předem připravených případů užití a zaznamenat zjištěné odchylky. Kromě toho by v této fázi měl doplnit i odchylky zjištěné při nestandardním způsobu používání. V případě, že nenalez žádné odchylky, může být aplikace postoupena do další fáze Nasazení. V opačném případě
Vývoj na platformě Windows Mobile
Strana 47 z 112
Metodika vývoje pro platformu Windows Mobile je aplikace vrácena do předchozí fáze pro napravení odchylek a fáze Testování se poté opakuje. Ideálním prostředím pro vykonávání fáze Testování je prostředí, ve kterém by měla být aplikace provozována a na zařízeních, která mají být k provozu aplikace určena. Výstupem fáze je hotová aplikace, která je postoupena do následující fáze Nasazení. S ní je dodán již i kompletní programový kód vyvinuté aplikace i s dokumentací. Detailní popis fáze se nachází v Příloze C (Tabulka 13.3-5).
5.2.6 Nasazení Fáze nasazení je finální fází metodiky a její hlavní náplní je nasazení vyvinuté aplikace na koncová zařízení a její spuštění do produkčního provozu. Aplikace se nasadí na všechna předem vybraná zařízení, pro které byla vypracována. Součástí finální fáze je také předání aplikace sponzorovi a jeho rozhodnutí o akceptaci finálního výstupu vývoje. Dojde tak k ukončení celého projektu. Výstupem fáze je nasazená aplikace na cílových zařízeních a dokumentace k aplikaci a veškeré materiály k vývoji aplikaci jako je programový kód a grafické objekty, podle znění uzavřené smlouvy. Detailní popis fáze se nachází v Příloze C (Tabulka 13.3-6).
5.3
Role Rolí v této metodice rozumíme subjekt, který je určen k vykonávání
vybraných činností. Tento subjekt je nejčastěji představován osobou specifického zaměření, která je schopna vykonávat požadované činnosti. Mobilní aplikace nejsou svým obsahem tolik rozsáhlé, a proto může jeden subjekt při vývoji mobilních aplikací plnit více rolí současně. Role obsažené v této metodice:
analytik,
datový specialista,
grafik,
Vývoj na platformě Windows Mobile
Strana 48 z 112
Metodika vývoje pro platformu Windows Mobile
programátor,
specialista na mobilní technologie,
specialista na UI,
sponzor31,
tester,
vedoucí projektu.
Vykonávané činnosti jednotlivými rolemi jsou sepsané v jednotlivých fází v Příloze C. Ke každé roli následuje popis, který udává, jaké by měl mít dovednosti subjekt vykonávající tuto roli.
5.3.1 Analytik Práce analytika je v této metodice založena na analýze požadavků sponzora, který zároveň zastupuje roli zadavatele a zákazníka požadované aplikace. Analytik tak vypracovává nejdříve popis aplikace z pohledu jejího hlavního účelu tak, aby tento popis odpovídal požadavkům sponzora. Následuje detailnější analýza požadavků. Informace získané analytikem poté slouží pro ostatní role jako základ pro jejich tvorbu, proto musí tyto informace odpovídat skutečným potřebám sponzora. Požadavky na analytika:
analytické myšlení,
dobrá schopnost komunikace a postřeh pro zjišťování požadavků klienta a případných specifik aplikace.
5.3.2 Datový specialista Datový specialista rozhoduje o použití vhodné technologie pro práci s daty vzhledem ke zjištěným požadavkům analytikem. Jeho náplní je kompletní návrh datového modelu, vytvoření fyzického úložiště dat a způsobu automatizace, kterou může být toto úložiště vytvořeno při nasazování vyvíjené aplikace na mobilní zařízení.
Sponzor v této metodice plní zároveň roli zadavatele a zákazníka, což je často u projektů rozdílná role. 31
Vývoj na platformě Windows Mobile
Strana 49 z 112
Metodika vývoje pro platformu Windows Mobile Požadavky na datového specialistu:
znalost datového modelování,
znalost technologií32 využívaných pro práci s daty,
znalost specifik práce s daty na mobilních zařízeních.
5.3.3 Grafik Grafik vytváří na podnět specialisty na uživatelské rozhraní grafické objekty, které jsou pak použity při tvorbě uživatelského rozhraní. Grafik a specialista na uživatelské rozhraní u mobilních aplikací může často být jedna osoba, protože se nevyplatí platit na tuto roli více osob pokud nejde o rozsáhlejší projekt. Požadavky na grafika:
cit pro detail,
znalost nástrojů pro tvorbu grafických objektů.
5.3.4 Programátor Programátor nejdříve navrhuje diagram tříd. Vybírá vhodnou technologii pro vývoj a jeho hlavní náplní je ve fázi Implementace tvorba programového kódu, který zajišťuje požadovanou funkcionalitu aplikace. Zároveň vytváří navázání programového kódu k uživatelskému rozhraní a k manipulaci s daty tak, aby vzniknul jeden celek tvořící požadovanou aplikaci. Spolupracuje tedy se specialistou na uživatelské rozhraní a s datovým specialistou. Požadavky na programátora:
logické myšlení,
znalost vývojových nástrojů33 pro mobilní vývoj,
znalost technologií34 pro vývoj mobilních aplikací,
schopnost práce s modely (datový, tříd).
Jedná se především o technologie: relační databáze, XML. Více o práci s daty na mobilních zařízení pojednává kapitola 7 Práce s daty. 33 Nejčastěji vývojového prostředí Visual Studio 34 Viz kapitola 4 Možnosti vývoje pro platformu Windows Mobile 32
Vývoj na platformě Windows Mobile
Strana 50 z 112
Metodika vývoje pro platformu Windows Mobile
5.3.5 Specialista na mobilní technologie Role Specialista na mobilní technologie má na starosti analýzu mobilních zařízení, ať už vlastněných sponzorem nebo plánovaných k nákupu, protože na těchto zařízeních má být vyvíjená aplikace provozována. Z tohoto důvodu je vykonavatel této role zodpovědný za specifikaci hardwarové a softwarové konfigurace, kterou musí cílové zařízení splňovat, aby na něm mohla být vyvíjená aplikace provozována a mohla splnit všechny požadavky na funkcionalitu. Zároveň je vykonavatel této role zodpovědný za proces nasazení aplikace do všech zařízení. Je tedy od něj vyžadováno, aby měl dobré znalosti jak na úrovni hardware, tak i na úrovni software, protože skloubení těchto úrovní je pro vyvíjenou aplikaci klíčové. Součástí dobré znalosti hardwarové úrovně je i znalost přídavných modulů, protože některé vyvíjené aplikace mohou vyžadovat funkcionalitu, kterou je možné splnit pouze použitím specifického hardwaru. Všechna zařízení nemusí být tímto hardwarem vybavena a tak musejí být o tento hardware doplněna. Požadavky na specialistu na mobilní technologie:
znalost mobilních platforem a jejich odlišností,
znalost hardware pro mobilní zařízení,
znalost možností mobilního operačního systému Windows Mobile a možností práce s daty v tomto operačním systému,
znalost možností technologií pro vývoj mobilních aplikací.
5.3.6 Specialista na UI Hlavní náplní specialisty na uživatelské rozhraní je návrh uživatelského rozhraní, zadání tvorby grafických objektů a jejich následné zapracování do návrhu uživatelského rozhraní. Finální podobu uživatelského rozhraní pak v kooperaci s programátorem implementuje do vyvíjené aplikace. Požadavky na specialistu na UI:
znalost specifik návrhu uživatelského rozhraní pro mobilní platformy,
Vývoj na platformě Windows Mobile
Strana 51 z 112
Metodika vývoje pro platformu Windows Mobile
znalost ovládacích prvků pro operační systém Windows Mobile. 35
5.3.7 Sponzor Role Sponzor není součástí vývojového týmu, ale ovlivňuje celý vývoj, jelikož zde plní i roli zadavatele případně i roli zákazníka. Od Sponzora tedy pochází podnět k vývoji aplikace a vývoj ovlivňují jeho požadavky na funkce aplikace. Sponzor je zároveň u konce vývoje aplikace, kdy je stranou, která akceptuje finální podobu aplikace. Na kvalitě řešení závisí také prostředky, které má sponzor k dispozici na vývoj požadované aplikace.
5.3.8 Tester Rolí testera je testování vydané verze aplikace z fáze Implementace. Tester aplikaci testuje nejdříve podle případů užití a sleduje vzniklé události, které neodpovídají očekávanému chování. Vede si záznam o těchto událostech, které doplní i o zjištěné nestandardní chování, které vzniklo při používání aplikace mimo rámec případů užití. V případě, že nenalezl žádné odchylky, je aplikace připravena k nasazení. V opačném případě se vrací zpět do fáze Implementace, aby byly zjištěné odchylky odstraněny, a po opravě tester provede nové testování aplikace. Pro ideální průběh testování by měl tester testovat aplikace v prostředí, kde má být vyvíjená aplikace provozována po jejím nasazení. Požadavky na testera:
smysl pro detail, pečlivost,
znalost mobilních aplikací,
znalost ovládání mobilní platformy Windows Mobile.
5.3.9 Vedoucí projektu Vedoucí projektu má na starosti vedení projektu, který se zabývá vývojem požadované mobilní aplikace. Využívá k tomu patřičné nástroje 36. Jeho úkolem je směrování celého vývojového týmu tak, aby byl projekt zdárně dokončen. Vytváří
35 36
Seznam ovládacích prvků a jejich rozdílnost ve verzích Windows Mobile viz (24) Nástroje pro podporu řízení a plánování projektů - např. Microsoft Project
Vývoj na platformě Windows Mobile
Strana 52 z 112
Metodika vývoje pro platformu Windows Mobile časový harmonogram projektu a sleduje vynaložené náklady na realizaci tohoto projektu. Zároveň je osobou, která o těchto plánech komunikuje se sponzorem. Požadavky na vedoucího projektu:
5.4
dobré organizační schopnosti,
schopnost komunikace se členy týmu,
schopnost řídit a motivovat členy týmu.
Dimenze Dimenze v metodice pro vývoj představují pohledy na vývoj aplikace
z různých oblastí. Každý tento pohled obsahuje určitá specifika, která je nutná při vývoji respektovat. Jejich nedodržení vede k neúspěchu mobilní aplikace. Při výběru dimenzí jsem vycházel z MMDIS (2) a vybral jsem ty dimenze, které jsou nejdůležitější pro vývoj mobilních aplikací:
hardware,
software,
uživatelské rozhraní,
data/informace.
5.4.1 Hardware Dimenze Hardware se na vývoj aplikace dívá z pohledu vybavenosti a hardwarových parametrů mobilních zařízení. Různé hardwarové konfigurace mobilních zařízení znamenají rozdílné možnosti při vývoji aplikací. O pohledu na hardware, na kterém je provozován operační systém Windows Mobile pojednává kapitola: 3.3.1 Hardwarový pohled.
5.4.2 Software Dimenze Software se u vývoje aplikace pro mobilní zařízení dívá na možnosti vývoje aplikací a také na možnosti, které nabízí softwarová platforma (míněn je operační systém), na které mají být aplikace provozovány.
Vývoj na platformě Windows Mobile
Strana 53 z 112
Metodika vývoje pro platformu Windows Mobile O pohledu na software (operační systém) jako platformu pojednává kapitola 3.3.2 Softwarový pohled z hlediska softwaru. Na možnosti vývoje z hlediska technologií pro vývoj pak navazuje kapitola 4 Možnosti vývoje pro platformu Windows Mobile.
5.4.3 Uživatelské rozhraní Uživatelské rozhrání je u mobilních aplikací velmi specifická záležitost. Záleží na výkonu mobilního zařízení, velikosti displeje a také typu zařízení. O specifikách návrhu uživatelského rozhraní pro mobilní aplikace pojednává následující samostatná hlavní kapitola 6 Návrh uživatelského rozhraní.
5.4.4 Data/Informace Většina aplikací pracuje s daty. Data mohou být uchovávána různým způsobem a různě strukturována a podle toho jsou odlišné také přístupy k těmto datům. Aplikace tak využívají podle svého zaměření a požadavků na práci s daty některý z těchto přístupů případně jejich kombinaci. Jaké jsou možnosti přístupu k datům popisuje kapitola 7 Práce s daty. Ukázky jsou pak demonstrovány pomocí technologií .NET Compact Framework a SQL Server Compact Edition.
Vývoj na platformě Windows Mobile
Strana 54 z 112
Návrh uživatelského rozhraní
6 Návrh uživatelského rozhraní U mobilních aplikací je návrh uživatelského rozhraní jedním z nejvíce specifických a hlavně také nejdůležitějších faktorů ovlivňujících úspěšnost aplikace. Proto je velmi důležité nejdříve vyhodnotit, jaká jsou cílová mobilní zařízení z hlediska výkonu, velikosti displeje (resp. velikost ovládací pluchy) a způsobu ovládání zařízení. Výkon zařízení ve spojení s verzí operačního systému a použité technologie pro vývoj ovlivňuje způsob, jak bude vyvíjená aplikace ovládána a jak bude uživatelské rozhraní vypadat po grafické stránce. Každá technologie pro vývoj nemusí totiž umožňovat zamýšlený způsob ovládání resp. podporovat některou z funkcionalit určenou pro ovládání aplikací. Toto omezení se může týkat i starší verze operačního systému. Výkon zařízení je pak také limitujícím faktorem. Výkon zařízení může totiž umožňovat provoz novější verze operačního systému, která podporuje požadovanou funkcionalitu ovládání aplikací, ale výkon není natolik silný, aby zajistil plynulé fungování tohoto způsobu ovládání. Aplikace by pak fungovala, ale zcela jistě by se s ní uživateli nepracovalo příjemně. Tato skutečnost by vedla k tomu, že by uživatel aplikaci nemusel vůbec používat anebo by jí využíval pouze minimálně a tím pádem by prostředky vynaložené na její vývoj byly zbytečně vyplýtvány. V případě, že je aplikace zamýšlena na široké spektrum mobilních zařízení, tak je důležité také předem stanovit, zda se vývoj aplikace bude ubírat směrem jedné vývojové větvě pro všechny typy zařízení anebo směrem kdy je každý typ zařízení či skupina zařízení s podobnými parametry zvláštní větví a jsou sdílené pouze společné data a funkce a uživatelské rozhraní je vytvářeno pro konkrétní typ zařízení. Způsob kdy je pro všechna zařízení navržen jeden způsob ovládání a stejné uživatelské rozhraní je kompromisním řešením. Do jisté míry jsou tak výkonnější a vybavenější mobilní zařízení ochuzována na úkor těch méně výkonných a méně vybavených. Na druhou stranu pokud to povaha aplikace dovoluje a není tak
Vývoj na platformě Windows Mobile
Strana 55 z 112
Návrh uživatelského rozhraní součástí kompromisního řešení odebrání vhodného způsobu ovládání, pak je vhodné mít pouze jednu vývojovou větev pro všechny typy cílových zařízení. Je to výhodné zejména z finančního hlediska, protože je zřejmé, že čím více je odlišností při vývoji aplikace pro jednotlivá mobilní zařízení, tak tím větší jsou i nutné prostředky pro vývoj této aplikace. Když se na aplikace podíváme z pohledu celého jejího životního cyklu, tak se náklady ještě zvýší, protože opět čím více odlišných verzí, tím více nákladné jsou případné budoucí úpravy a podpora aplikace. U návrhu uživatelského prostředí je velice důležitá také intuitivnost aplikace pro snadné pochopení ovládání, s čímž souvisí i výběr vhodných grafických symbolů zastávajících význam grafických tlačítek podobně jako je tomu u desktopových aplikací. Oproti desktopovým aplikacím je zde ovšem jeden zásadní rozdíl, který je nutné předem důkladně zanalyzovat. Jedná se o velikost plochy, které je možné využít pro ovládání aplikace. Na mobilních zařízeních je pochopitelně daleko méně místa pro rozmístění prvků a tak je omezené jak rozmístění prvků tak i počet prvků, které tvoří ovládání aplikace. V poslední době, kdy je na vzestupu zejména dotykové ovládání celého telefonu díky dotykovým displejům je před návrhem se nutné rozhodnout zda zvolit ovládání pomocí prstů či pomocí dotykového pera. Každý tento způsob má samozřejmě své klady, ale stejně tak i zápory. Dalším faktorem ovlivňující návrh grafického uživatelského rozhraní je typ cílového zařízení, protože v případě Smartphone zařízení je ovládání odlišné od ovládání na PDA a rozdíl je i v dostupných prvcích využitelných v prostředí aplikace. Pro zařízení PDA s dotykovým displejem je nabídka ovládacích prvků bohatší díky možnosti libovolného klikání na obrazovku zatímco na Smartphone zařízeních se takřka vše ovládá přes nabídkové menu a procházení mezi prvky funguje na principu směrového joysticku. Celkově rozdíl mezi PDA a Smartphone souvisí tedy také s verzí OS, která na daném zařízení běží a tím pádem i na výběru ovládacích prvků.
Vývoj na platformě Windows Mobile
Strana 56 z 112
Návrh uživatelského rozhraní
6.1
Návrh GUI pro ovládání pomocí dotykového pera Ovládání pomocí dotykového pera patří mezi dlouhodobě zaběhnutou
záležitost v historii zařízení s dotykovými displeji. Významným a v podstatě největším kladem tohoto ovládání aplikací je fakt, že toto krátké dotykové pero umožňuje zejména vysokou přesnost při vzájemné interakci displeje a dotykového pera a tak je možné při návrhu grafického uživatelského rozhraní vkládat prvky s menšími rozměry. Díky tomu je možné do ovládací plochy aplikace vložit i více prvků bez obav z toho, že jej uživatel nebude moci použít díky tomu, že by na ně nebyl schopen kliknout. Zejména u menších displejů je vhodnější používat toto řešení návrhu grafického uživatelského rozhraní. Největší nevýhodou ovládání pomocí dotykového pera je skutečnost, že uživatel musí mít obě ruce volné, protože jednou rukou drží zařízení a druhou rukou ovládá aplikaci pomocí dotykového pera. Díky tomuto omezení tak není možné např. vytáčet telefonní čísla či procházet telefonní seznam pomocí jedné ruky a tím pádem se tento způsob stává nepraktickým pro použití v situacích, kdy není možné mít obě ruce volné což je např. situace kdy je telefon přichycený v držáku v automobilu a řidič potřebuje za jízdy vytočit číslo či vybrat ze seznamu kontakt pro volání. Na druhou stranu asi si lze těžko představit ovládání složitějších aplikací jako je poštovní klient či program pro správu financí bez dotykového pera (i když jak bude později poznamenáno v kapitole 6.2 Návrh GUI pro ovládání pomocí prstů, některé pokusy a zejména současný trend vede vývojáře k tomu, aby opustili od návrhu grafického uživatelského rozhraní pro dotykové pero).
6.2
Návrh GUI pro ovládání pomocí prstů V poslední době, zejména od uvedení mobilního zařízení iPhone od společnosti
Apple došlo na poli mobilních zařízení s dotykovými displeji doslova k revoluci v podobě ovládání pomocí prstů. Zatímco do vydání mobilního zařízení iPhone existovalo ovládání zařízení poháněných OS Windows Mobile prakticky výhradně pomocí dotykového pera, tak s nástupem tohoto revolučního zařízení co se ovládání týče se i na poli Windows Mobile začaly vytvářet aplikace optimalizované právě pro ovládání pomocí prstů. Ovšem návrh takovýchto grafických uživatelských rozhraní sebou nese jistá úskalí. Jak již bylo zmíněno v předchozí kapitole, tak zatímco
Vývoj na platformě Windows Mobile
Strana 57 z 112
Návrh uživatelského rozhraní u dotykového pera, které se vyznačuje vyšší přesností, mohou být ovládací prvky menších rozměrů a lze na ně bez problémů následně kliknout, tak u dotykového ovládání musejí být prvky naopak natolik rozměrné, aby na ně šlo bez problémů kliknout na displeji pomocí prstu. Díky nutnosti větších rozměrů ovládacích prvků je potom nutné i přizpůsobit rozmístění a počet ovládacích prvků, tak aby bylo možné aplikaci pohodlně ovládat pomocí prstů. Což může být např. u menších displejů s úhlopříčkou o rozměrech 2.2 palce velký problém, protože při současně malém displeji a velkých rozměrech ovládacích prvků je patrné, že jich nelze na displej umístit velký počet. Řešení se nabízí v podobě několika ovládacích obrazovek, které může aplikace obsahovat. Lze udělat i ovládací obrazovku delší a poté bude uživateli umožněno v aplikaci obrazovku posouvat pomocí posuvných lišt. Všechna záporná fakta jsou ale převýšena pohodlností ovládání, které v sobě představuje ovládání pomocí prstů. Svědčí o tom i fakt, že se čím dál více objevují aplikace pro kompletní ovládání mobilních zařízení vybavených operačním systémem Windows Mobile právě pomocí pouhých prstů.
6.3
Návrh GUI pro ovládání bez dotykového displeje Při návrhu grafického uživatelského rozhraní pro mobilní zařízení
bez dotykového displeje je postup návrhu zcela odlišný, zejména při návrhu pro verzi operačního systému Windows Mobile řady Standart, protože viz (24), ve verzi Standart nejsou k dispozici všechny prvky jako v ostatních verzích. Dalším faktorem, který významně ovlivňuje návrh je způsob přechodu mezi prvky v aplikaci, jelikož uživatel nemůže jako u dotykových displejů přeskočit, na kterýkoliv prvek se mu zachce na první dotek. U bezdotykových displejů je přechod realizován nejčastěji pomocí směrového joysticku či pomocí číselných kláves anebo pomocí rolovacího kolečka, kterým jsou některá zařízení vybavena.
6.4
Závislost návrhu GUI podle velikosti displeje Jelikož existují zařízení s různou velikostí displejů a především s různým
rozlišením, tak je nutné často navrhnout GUI pro každé rozlišení zvlášť. Běžně se
Vývoj na platformě Windows Mobile
Strana 58 z 112
Návrh uživatelského rozhraní tedy setkáváme s verzemi aplikací pro QVGA37 a VGA38 a nově také WQVGA39 a WVGA40 rozlišení. Některé rozdíly v rozlišeních lze řešit pomocí posuvných lišt. Aplikace navrhnuté pro rozlišení 240x240 zcela jistě půjdou bez problémů zobrazit na zařízeních s rozlišením 320x240. V opačném případě tedy u aplikací navrhnutých pro rozlišení 320x240 zobrazovaných na zařízeních s rozlišením 240x240 budou uplatněny posuvné lišty. Ovšem musejí být při návrhu začleněny do návrhu grafického uživatelského rozhraní. Např. při návrhu formuláře v .NET Compact Frameworku lze nastavit vlastnost AutoScroll, která automaticky zajišťuje při menším rozlišení a zobrazované ploše než je velikost formuláře v aplikaci, jeho posouvání pomocí posunovacích lišt.
Obrázek 6.4-1 - Formulář s aktivní posuvnou vertikální lištou umožňující posouvání obsahu formuláře v případě, že je formulář na výšku delší než je zobrazitelná oblast v zařízení na displeji.
QVGA (Quarter Video Graphics Array) – rozlišení v pixelech 320 x 240, 240 x 320 VGA (Video Graphic Array) – rozlišení v pixelech 640 x 480, 480 x 640 39 WQVGA (Wide Quarter Video Graphics Array) – rozlišení v pixelech 400 x 240, 240 x 400 40 WVGA (Wide Video Graphic Array) – rozlišení v pixelech 800 x 480, 480 x 800 37 38
Vývoj na platformě Windows Mobile
Strana 59 z 112
Práce s daty
7 Práce s daty Většina aplikací je vytvářena z důvodu, aby umožňovala požadovaným způsobem pracovat s daty. Některé aplikace mohou pracovat s menším objemem dat a některé zase naopak s větším objemem dat. Podle toho se také liší přístup k datům z hlediska jejich fyzické realizace a logické struktury. „Fyzická realizace datových struktur se může od logické struktury značně lišit. Je ovlivněna použitými programovacími prostředky, operačním systémem, systémem řízení báze dat a technikami ukládání dat v pamětech počítače.“ (19 str. 16) V některých aplikacích stačí např. pracovat pouze s textovými soubory a jinde už je potřeba vyspělejší přístup na úrovni databáze anebo dat uložených ve formátu XML. Na platformě Windows Mobile jsou k dispozici všechny tyto varianty. A jelikož se práce orientuje na vývoj aplikací pro platformu Windows Mobile a jako technologii pro vývoj jsem zvolil .NET Compact Framework, tak rozeberu možnosti zpracování dat i s příklady právě v tomto frameworku.
7.1
Data v souborech Název této části je do jisté míry zavádějící. Ať už se jedná o data ve formátu
XML či data uložená v databázích, tak v obou případech jsou data uložena v souborech z pohledu jejich fyzické realizace. V případě XML je to soubor s koncovkou XML a příslušnou strukturou41 souboru a v případě databáze se jedná také o soubor, který má v sobě uložená patřičná data a strukturu podle toho o jaký systém řízení báze dat se jedná. 42 Z tohoto důvodu je nutné vymezit, co pojem data v souborech znamená pro tuto kapitolu. Pod tímto pojmem zde uvažuji o souborové koncepci datové základny.
Struktura XML souboru viz (25) Pojem Systém řízení báze dat (SŘBD) představuje nejen databázi, ale i softwarové prostředky jak k datům přistupovat a pracovat s nimi. Každý výrobce si formát a strukturu datové základny navrhuje sám. 41 42
Vývoj na platformě Windows Mobile
Strana 60 z 112
Práce s daty „Soubor je uspořádaná množina vět, které popisují určenou část reality. Charakteristickým rysem souboru je, že počet jeho vět nemusí být před zpracováním algoritmu znám. Věty souboru popisujeme jedním typem (s pevnou strukturou nebo variantní). Operacemi na úrovni souboru jsou čtení a zápis věty souboru.“ (19 str. 18) Jsou to tedy soubory např. textového typu či standardizované formáty jako CSV (kde jsou data oddělena po sloupcích a řádcích a mají představovat tabulku, kdy každý nový řádek představuje nový řádek v tabulce a sloupce tabulky jsou v rámci řádku oddělené středníkem, tedy znakem ‘;’). Také může jít v mnoha případech o uživatelsky definovaná data z pohledu vývojáře. Vývojář si určí z nějakého (pro fungování aplikace) důležitého důvodu vlastní strukturu ukládání dat. V dnešní době je toto nahrazováno formátem XML. Tento systém vlastní struktury dat má uplatnění např. v konfiguračních souborech aplikací.
7.1.1 Přístup v .NET Compact Frameworku V .NET Compact Frameworku se k souborům přistupuje přes jmenný prostor System.IO , který označuje anglické Input-Output, tedy vstup a výstup. V tomto jmenném prostoru se nacházejí třídy pro práci s adresáři a soubory. Zároveň obsahuje další jmenné prostory (např. pro obsluhu sériového přenosu dat). Pro načítání a zapisování obsahu do souboru lze použít více tříd z tohoto jmenného prostoru. Rozdíl v jejich použití závisí na funkčních požadavcích vyvíjené aplikace. System.IO.
Stream , StreamReader , StreamWriter
Třída Stream ve jmenném prostoru System.IO představuje datový proud, který obsahuje sekvenci bytů jakéhokoliv typu dat. Pro práci s tímto proudem pak slouží třídy (nacházejí se ve stejném jmenném prostoru) StreamReader , který jak název napovídá, slouží ke čtení datového proudu a StreamWriter , který slouží naopak k zápisu proudu. Následující příklad demonstruje zápis proudu do souboru. void ZapisTextDoSouboru() { StreamWriter sw = new StreamWriter("test.txt"); sw.Write("Ahoj"); }
Vývoj na platformě Windows Mobile
Strana 61 z 112
Práce s daty Na příkladu je vidět, že zápis proudu, který zde představuje textový řetězec se slovem Ahoj, je v podání .NET Compact Frameworku jednoduchou záležitostí. Nutno dodat, že příklad nezohledňuje situaci, kdy např. už existuje soubor test.txt, nebo je vyžadováno specifické kódování souboru. Tyto situace se dají samozřejmě zohlednit pomocí parametrů, buď jejich samotným nastavením pro objekt sw, anebo již jejich nastavením v konstruktoru tohoto objektu. Pro celkově správné zpracování takovéto metody by bylo vhodné ještě použít klauzule try, catch a finally , které řídí výjimky v průběhu provádění kódu. System.IO.
FileStream , File
Ne vždy je jednoduché přistupovat k souborům, protože můžou podléhat různým přístupovým právům, anebo k nim musí přistupovat více uživatelů najednou a každý má různé úkoly. Typicky např. situace, kdy více uživatelů čte z jednoho souboru a jeden uživatel do něj data ukládá. To také souvisí i s více vláknovým zpracováním aplikace, kdy je nutné synchronizovat, řadit a udávat prioritu jednotlivým procesům zasahujících do práce se soubory uvnitř aplikace. Právě k tomuto účelu (vyjma samotného zpracování vláken) slouží třídy File a FileStream. Třída FileStream
vezme datový proud okolo souboru
a umožňuje pak následné asynchronní a synchronní čtení a zápis do něj. Třída File metodou Open nastavuje při otevření souboru následující parametry: FileMode (jakým způsobem operační systém soubor otevře), FileAccess (přístup k souboru), FileShare (řízení přístupu k souboru ostatními objekty typu FileStream z pohledu vláknového zpracování). Jelikož by příklad zabíral hodně místa kvůli nutnosti více vláknového zpracování, následuje pouze ukázka nastavení výše popsaného objektu FileStream. { ... FileStream fs = System.IO.File.Open("test.txt", FileMode.Open, FileAccess.Write, FileShare.Read); ... }
Jak je ze zkráceného příkladu patrné, tak je možná i práce s daty uloženými v souborech, které podléhají složitějšímu přístupu. Pomocí .NET Compact
Vývoj na platformě Windows Mobile
Strana 62 z 112
Práce s daty Frameworku je tato obsluha „relativně“ snadná. Ovšem u složitějších případů musí vývojář dostatečně ovládat i práci s vlákny. System.IO. BinaryReader , BinaryWriter Dalšími možnostmi jak zapisovat a číst data v souborech je pomocí tříd BinaryReader, která slouží ke čtení a BinaryWriter, která se používá k zápisu. Obě tyto třídy ke své práci využívají třídu Stream zmíněnou v kapitole 0, která umožňuje čtení datového proudu a zápis do něj. S tímto datovým proudem lze dále pracovat pomocí tříd právě ze zmíněné kapitoly.
7.2
Data ve formátu XML XML formát je v současné době hojně využívaný u webových technologií
a také k práci s uživatelskými daty. Zároveň také prakticky ke všemu, k čemu se dříve využívaly soubory s vlastní strukturou dat, tak jak je popsáno v kapitole Data v souborech. Na formát XML lze tedy nahlížet z tohoto pohledu, že je jakýmsi nástupcem uchovatele dat, který je daleko vyspělejší a slouží jako univerzální43 datový formát, což je z hlediska vývoje aplikací velmi důležité. „Pokud mají informační a komunikační systémy fungovat efektivně, je potřeba, aby se používaly jednotné formáty dat. Bez nich se spousta prostředků zbytečně vyplýtvá na implementaci různých pomocných utilit a modulů, které umožní spolupráci softwaru od různých výrobců. Dnes si je toho vědoma většina komerčních firem i akademických instituci. Profesní sdruženi proto vytvářejí formáty založené na XML, které vyhovují jejich potřebám.“ (25 str. 21) Odpůrci formátu XML mohou poukazovat, že jeho využitím dochází k nárůstu velikosti výsledného datového souboru. Na jednu stranu je to v některých případech použití pravda, ale na stranu druhou tento formát přináší daleko lepší možnosti práce s těmito datovými soubory. Jak je tomu ale právě u mobilních zařízení, kde je často kapacita a rychlost zpracování dat tím hlavním, co může určovat vybraný způsob přístupu k datům? Platí stejná zásada jako u stolních počítačů. Přístup k datům musí být vybrán tak, aby 43
Jak píše J.Kosek viz (25)
Vývoj na platformě Windows Mobile
Strana 63 z 112
Práce s daty byla aplikace schopná pružně reagovat na uživatelské požadavky a zároveň využívala zařízení tak, aby ho co nejméně limitovala 44. Tedy z uživatelského hlediska to znamená fakt, že když si uživatel vyžádá např. data o zákazníkovi, tak očekává, že se mu zobrazí do přijatelné doby a nebude na ně čekat dlouho z důvodu, že zařízení není schopné rychleji procházet obsáhlý datový soubor, protože to neumožňuje jeho výkon a vybraný přístup k datům. Proto tedy když budeme např. vytvářet aplikaci jako je RSS čtečka či správce oblíbených adres a RSS kanálů využijeme raději XML formát dat namísto obyčejného textového souboru anebo databáze, kterou pohání odlehčená verze SQL Serveru. Textový soubor by zcela jistě danou aplikaci také dokázal obsloužit z hlediska datového úložiště. Strukturou by ale byl nepřehledný. Navíc tento přístup z hlediska vývoje nenabízí takovou funkcionalitu jako XML přístup k datům, který je nejen v .NET Compact Frameworku nabízen ve formě předpřipravených tříd s velmi propracovanými metodami. Naproti tomu volba SQL Serveru by pokryla jak nabízenou funkcionalitu předpřipravených tříd pro XML, tak i přehlednou strukturu. Je však zbytečné na jednoduché věci používat tento nástroj, protože svým během zvyšuje zátěž operačního systému a celkově tak snižuje výkon zařízení. I když v dnešní době se výkonnost mobilních zařízení rapidně zvedla45 a tak je provoz databázové aplikace dostatečně rychlý. U uživatelů ale panuje starý zažitý zvyk a také nechuť vztahující se k instalaci další aplikace do systému, která je potřeba k provozování další aplikace. Navíc do datového souboru ve formátu XML se mohou velmi lehce podívat a následně procházet data i bez aplikace, pro kterou je tento soubor používán (např. webovým prohlížečem ať už přímo z mobilního zařízení či ze stolního počítače).
7.2.1 Práce s XML v .NET Compact Frameworku Nyní popíši, jaké jsou možnosti přístupu k datům ve formátu XML a možnosti práce s nimi v .NET Compact Frameworku. Bude se jednat zejména o popis jmenného prostoru System.XML.
U mobilních zařízení jde především o skutečnost, aby aplikace nezapříčinila situaci, kdy nebude schopen uživatel např. zvednout příchozí hovor. 45 Prozatím nejrychlejší zařízení je poháněno procesorem s taktem 1GHz a má k dispozici paměť RAM o kapacitě 512MB. 44
Vývoj na platformě Windows Mobile
Strana 64 z 112
Práce s daty System.XML Jmenný prostor System.XML nabízí vývojářům opravdu veliké množství podpůrných tříd pro práci s daty ve formátu XML. Mimo to obsahuje ještě další jmenné prostory, které obsahují další třídy plné velmi užitečných metod pro práci s daty v dokumentech XML. Jsou to jmenné prostory:
System.XML.Serialization System.XML.Schema System.XML.XPath System.XML.Xsl
System.XML.Serialization První ze jmenných prostorů
System.XML.Serialization
slouží
k ovládání serializace instancí objektů do formátu XML a zpět. Serializací instance objektu obecně převádíme jeho podobu do textového vyjádření, kde jsou jednotlivé atributy odděleny středníkem. U XML Serializace ale dochází k převodu instancí objektu do formátu XML. Hlavní třídou je XmlSerializer, který se stará o vlastní proces serializace a zároveň deserializace. Pro zápis a čtení pak využívá již v dřívějších kapitolách zmíněné třídy Stream, TextReader a TextWriter. Ovšem lepší bude využít pro XML lépe využitelné třídy
XmlTextReader
a XmlTextWriter. System.XML.Schema Jak již samotný název jmenného prostoru napovídá, tak se jedná o práci s takzvanými XML schématy. Třídy v tomto prostoru obsažené tak obsluhují práci s XML Scheme (XSD).46 System.XML.XPath Tento jmenný prostor v sobě ukrývá třídy pro práci s XML daty (navigování a jejich editaci) pomocí dotazovacího jazyku XPath 2.0. „Jazyk XPath slouží k výběru částí XML dokumentu. Pro potřeby jazyka je dokument chápán jako stromová hierarchie, kde jsou jednotlivé uzly tvořeny elementy, atributy a obsahem elementů. Výsledkem výrazu v XPath je pak skupina uzlů.“ (25) 46
K tématu XML Schemat více viz (25)
Vývoj na platformě Windows Mobile
Strana 65 z 112
Práce s daty System.XML.Xsl Další z jazyků, který je podporován v rámci .NET frameworku v rámci tohoto jmenného prostoru. „XSL (eXtensible Stylesheet Language) vznikl jako univerzální stylový jazyk, který by měl nabízet funkčnost všech ostatních existujících stylových jazyků a dále ji rozšířit. Samotná syntaxe jazyka je samozřejmě založena na XML, takže pro zpracování stylu lze použít všechny nástroje, které umějí s XML pracovat.“ (25) Využívá se při transformaci XML dokumentů podle nadefinovaných parametrů. Nadefinováním transformačních pravidel pro jednotlivé elementy tak můžeme dosáhnout transformace do jiné podoby XML souboru či jiných formátů. Není tak problém např. nadefinovat transformační styly pro transformaci XML dat do HTML souboru (typicky např. do tabulek).
7.3
Data v databázích Databázové systémy nabízejí zatím dosud nejlepší způsob uchovávání dat
a práci s nimi, zejména pokud se jedná o větší objem dat. Při menším objemu dat by byl způsob práce s daty také dobrý, ale ne vždy je nutné používat takto vyspělý nástroj, který databázové systémy představují. Databází můžeme nazývat i obyčejnou kartotéku, ale v této práci je pod tímto pojmem uvažován vyspělý nástroj, který představují relační databáze, na kterých lze navíc využívat dotazovací jazyk SQL. Na Windows Mobile je hned několik produktů, které zastávají roli databázového nástroje.47 V této práci se však budu zabývat pouze produktem od firmy Microsoft, konkrétně SQL Server Compact Edition pro demonstraci práce s databázemi na platformě Windows Mobile. Tento produkt běží i na operačním systému Microsoft Windows. Je výhodný tak např. pro vývoj aplikací, které mají své klienty jak pro mobilní zařízení s operačním systémem Windows Mobile tak zároveň i klienty pro stolní a přenosné počítače. Hlavní výhodou je nezávislost aplikace na robustním provedení vyspělejších databázových systémů. Jedná se tedy
47
Více k tématu databázových systémů viz (19)
Vývoj na platformě Windows Mobile
Strana 66 z 112
Práce s daty o integrovanou databázi. Pro provozování aplikace, která spolupracuje s tímto databázovým systémem, stačí nainstalovat tzv. "runtime" balík, který nezabírá takovou kapacitu ať už z hlediska paměťového média (cca 2MB) či operační paměti (alokuje jí pouze při běhu aplikace, resp. využívání databáze a neběží tedy jako služba jako je tomu u složitějších a výkonnějších databázových systémů 48). V současnosti se tento produkt nachází ve verzi 3.5. Mezi hlavní výhody z hlediska vývoje aplikací v .NET Compact Frameworku vytvářené ve vývojovém prostředí Visual Studio 2008 patří provázanost právě s tímto vývojovým prostředím. Pro vývojáře je připravena v rámci tohoto vývojového prostředí sada nástrojů pro práci s tímto databázovým systémem. Co se týče samotné funkcionality, tak i tato odlehčená verze integrované databáze nabízí využití jazyka LINQ, který je integrován v .NET frameworku od verze 3.5. Pro využívání SQL Serveru Compact Edition
musíme
do
projektu
přidat
referenci
na
jmenný
prostor
System.Data.SqlServerCe.
7.3.1 Práce s SQLCE v .NET Compact Frameworku System.Data.SqlServerCe Tento jmenný prostor obsahuje sadu tříd pro práci s daty při užití SQL Server Compact Edition. Následuje seznam klíčových tříd tohoto jmenného prostoru
SqlCeCommand
SqlCeConnection
SqlCeDataAdapter
SqlCeDataReader
SqlCeEngine
SqlCeException
SqlCeParameter
SqlCeTransaction
Jednotlivým třídám se budu věnovat podrobněji v následujících kapitolách věnovaných tomuto jmennému prostoru. Jelikož ukázky jednotlivých operací v rámci těchto tříd by nebyly tak výmluvné, tak budou zkompletovány na konci hlavní 48
Oracle, MSSQL Server, DB2, MySQL a další
Vývoj na platformě Windows Mobile
Strana 67 z 112
Práce s daty podkapitoly 7.3 do jednoho závěrečného příkladu ukazujícího práci s databází už od jejího fyzického vytvoření. System.Data.SqlServerCe.SqlCeCommand Tato třída má na starosti příkazy jazyka relačních databází SQL. Hlavní náplní SQL příkazů je vkládání, mazání, úprava a samozřejmě čtení dat. Nicméně na rozbor jazyka SQL není v této práci místo a není k tomu ani určená. Pro lepší pochopení příkladu (na konci kapitoly) demonstrujícího práci s SQL Serverem Compact Edition doporučuji (v případě neznalosti tohoto jazyka) jinou literaturu zabývající se problematikou jazyka SQL. Příkaz pro čtení se provádí 2 metodami. Lze provést buď čtení výsledků prováděného příkazu s využitím příslušného objektu pro čtení (popsáno v kapitole o třídě SqlCeDataReader), anebo čtení v podobě prvního řádku a prvního sloupce (např. pro ověření přihlášení uživatele – jako návrat dotazu přihlášení s parametry jméno a heslo se vrátí ID číslo uživatele, tedy v případě úspěšného přihlášení se vrátí jedno číslo, což odpovídá přesně potřebám tohoto čtení – první řádek a první sloupec). Provádění každého příkazu se musí tedy zavolat vhodnou metodou ve chvíli, kdy má dojít k jeho zpracování. U příkazu je možné nastavit atribut CommandTimeout, který říká jak dlouho má program čekat na odpověď serveru než přeruší vykonávání příkazu a vyhodnotí výsledek jako neúspěšný resp. bez odpovědi. Vše je samozřejmě vhodné propojit klauzulemi try, catch a finally pro ošetření výjimek. System.Data.SqlServerCe.SqlCeConnection Třída,
která
určuje
připojení
k
datovému
zdroji.
Kromě
fyzické
cesty k datovému zdroji, lze určit parametr password, který slouží jako přístupové heslo k databázi.
Tato
třída
dědí
od
abstraktní
třídy
System.Data.Common.DbConnection, obsažené v .NET Compact frameworku. Tato abstraktní třída slouží jako předloha pro všechny třídy obsluhující připojení k datovému zdroji, ať už se jedná o Oracle klienta, standardního SQL klienta, ODBC klienta, OleDB klienta a další. Kromě samozřejmosti jako je otevírání a zavírání
Vývoj na platformě Windows Mobile
Strana 68 z 112
Práce s daty připojení nabízí i další metody. Jsou to např. začátek transakce, změna databáze, získání schéma databáze či dalších informací o databázi včetně meta-dat. System.Data.SqlCeDataAdapter SqlCeDataAdapter slouží jako jakýsi most mezi SQL Serverem a objektem DataSet49. Tento most provede SQL příkaz pro čtení dat z SQL Serveru a načtenými daty naplní instanci objektu DataSet. Tento objekt představuje obraz dat v paměti, na kterých jsou prováděny operace a poté jsou teprve na požadavek uloženy, resp. dojde k uskutečnění všech SQL příkazů typu INSERT, DELETE a UPDATE). (26) (27) System.Data.SqlCeDataReader Kromě vkládání, upravování a mazání dat v databázi je další hlavní činností čtení. Čtení dat z databáze je samozřejmě naprosto nepostradatelnou součástí práce v jakémkoliv programu, který má sloužit uživateli pro práci s daty, která jsou uložena v databázi. Čtení dat probíhá na uživatelův požadavek. Výsledek požadavku pak slouží jako výstup aplikace. A právě to má na starosti třída SqlCeDataReader. Vytvořená instance třídy SqlCeDataReader čte data z prováděného SQL příkazu viz kapitola 0, která se příkazy zabývá. Jak se s tímto objektem pracuje, bude opět znázorněné v konečném příkladu. System.Data.SqlServerCe.SqlCeEngine Pro práci s fyzickou podobou databáze slouží třída SqlCeEngine. Umožňuje vytvoření databáze (dojde k vytvoření fyzické podoby souboru v zadaném úložišti), ale také zmenšování objemu databáze přeskládáním prázdných míst, opravení databáze smazáním poškozených řádků či pokusem o jejich opravení. Pro přechod z předchozí verze 3.1 slouží metoda Upgrade, která provede potřebné operace pro převod dat do nové verze a výsledek je uložen do nového souboru což tedy zaručuje možnou kompatibilitu s databázemi předchozí verze. To každý vývojář
49
ze jmenného prostoru System.Data
Vývoj na platformě Windows Mobile
Strana 69 z 112
Práce s daty zcela jistě ocení, protože nezřídka se stává, že nové verze produktů nejsou zpětně kompatibilní se svými staršími verzemi. System.Data.SqlServerCe.SqlCeException Při vývoji je důležité zároveň odchytávání výjimek, protože vývojář při ladění aplikace ví, ke které chybě dojde. Aplikace také může pomocí výjimek zobrazovat uživateli potřebné informace o nastalých událostech. System.Data.SqlServerCe.SqlCeParameter Parametry slouží při vykonávání SQL příkazů k lepšímu ošetření zejména vstupních dat. Vezměme si např. situaci, kdy bychom chtěli vkládat informace o uživateli obchodu, který se registruje do systému. Ve chvíli, kdyby se vstupní data skládali např. z 10 atributů tak by se SQL příkaz stal již značně nepřehledný díky spojování proměnných obsahujících tato vstupní data do jednoho uceleného příkazu. Zatímco s využitím parametrizovaných vstupů nás výsledná podoba SQL příkazu vůbec trápit nemusí, jelikož vstupy jsou jednak automaticky poskládány v ucelený SQL příkaz, ale zároveň je řešen i datový typ tohoto vstupního parametru což je velikou výhodou. System.Data.SqlServerCe.SqlCeTransaction Ne vždy je práce s databází jednoduchá v tom smyslu, že stačí vykonat pouze 1 příkaz. V takových případech vyvstává otázka jak ošetřit situace, kdy dojde k přerušení provádění příkazů a některá data již byla změněna a některá ne, i přestože ke změně mělo dojít. Ve světě databází tento problém řeší tzv. transakce. Jde o princip, kdy jsou všechny příkazy provedeny a uloženy až ve chvíli kdy je celá transakce poslána k provedení. A ve chvíli kdy dojde k nějaké události, která narušuje toto provádění, tak je možné provést tzv. Rollback. Rollback znamená, že změny již provedené se neuloží a data zůstanou v takové podobě, v jaké se nacházela před započetím provádění transakce. SQL Server Compact Edition transakce podporuje také. U transakcí lze nastavit atribut IsolationLevel, který stanovuje jak je možné s daty uvnitř databáze nakládat během transakce. Při odesílání transakce je pak možné vybrat, jak se mají změny uložit, zda okamžitě anebo až po stanoveném časovém intervale.
Vývoj na platformě Windows Mobile
Strana 70 z 112
Práce s daty Příklad práce s databází Na řádku 8 dochází k vytvoření instance třídy Produkt, který bude předmětem uložení do databáze. Fyzická podoba databáze je vytvořená na řádcích 14-16. Na řádcích 19-21 je vytvořeno a otevřeno připojení k databázi. Řádky 25-34 zajišťují vytvoření tabulky Produkty v databázi. Řádek 37 začíná transakci, která obsahuje vložení produktu do databáze přes parametrizovaný vstup, jeho úpravu. Transakce je poté odeslána na řádku 65. Řádek 68 vytváří příkaz pro čtení, který je uskutečněn na následujícím řádku. Samotné procházení výsledků čtení a jejich zpracování je na řádcích 72-79. Na řádcích 82-86 je zachytávání výjimek a vrácení všech změn, které už byly v rámci prováděné transakce vykonány. Řádky 88-95 pak uzavírají spojení s databází, jestliže je stále aktivní a uzavírají i spojení čtenáře dat.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
SqlCeConnection sqlCeCon = null; SqlCeTransaction sqlCeTrans = null; SqlCeDataReader reader = null; List
produkty = new List(); try { // Vytvoření instance produktu Produkt p = new Produkt { Nazev = "HTC TyTn II", Cena = 12499, PocetKusu = 5 }; // Vytvoření fyzické podoby databáze - vytvoření souboru SqlCeEngine sqlCeEngine = new SqlCeEngine("Data Source = databaze.sdf"); sqlCeEngine.CreateDatabase(); // Vytvoření spojení k databázi a jeho otevření sqlCeCon = new SqlCeConnection("Data Source = databaze.sdf"); sqlCeCon.Open(); // Vytvoření příkazu a jeho provedení (vytvoří tabulku Produkty v databázi) SqlCeCommand sqlCeCmd = new SqlCeCommand("" + "CREATE TABLE Produkty" + "(" + "ID int NOT NULL PRIMARY KEY IDENTITY(1,1)," + "Nazev nchar(128) NOT NULL UNIQUE," + "Cena money NOT NULL," + "PocetKusu int NOT NULL DEFAULT(0)" + ")", sqlCeCon); sqlCeCmd.ExecuteNonQuery(); // Začátek transakce sqlCeTrans = sqlCeCon.BeginTransaction();
Vývoj na platformě Windows Mobile
Strana 71 z 112
Práce s daty 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
// Nový příkaz pro vložení produktů sqlCeCmd = new SqlCeCommand("INSERT INTO Produkty" + "(Nazev,Cena,PocetKusu) " + "VALUES (@Nazev,@Cena,@PocetKusu)" , sqlCeCon, sqlCeTrans); // 3 způsoby definování parametrizovaných vstupů sqlCeCmd.Parameters.Add("Nazev", p.Nazev); sqlCeCmd.Parameters.Add("Cena", System.Data.SqlDbType.Money).Value = p.Cena; SqlCeParameter sqlCeP = new SqlCeParameter("PocetKusu", System.Data.SqlDbType.Int); sqlCeP.Value = p.PocetKusu; sqlCeCmd.Parameters.Add(sqlCeP); // Provedení příkazu - vložení produktu sqlCeCmd.ExecuteNonQuery(); // Změna atributů instance produktu sqlCeCmd = new SqlCeCommand("UPDATE Produkty SET Cena = (Cena * 1.3)", sqlCeCon, sqlCeTrans); // Provedení příkazu - úprava ceny produktu sqlCeCmd.ExecuteNonQuery(); // Provedení transakce - tedy celého bloku příkazů od započetí transakce sqlCeTrans.Commit(); // Vytvoření příkazu pro čtení dat a jeho vykonání čtenářem sqlCeCmd = new SqlCeCommand("SELECT * FROM Produkty", sqlCeCon); reader = sqlCeCmd.ExecuteReader(); // Zpracování čtení výsledků čtenáře while (reader.Read()) { string nazev = reader["Nazev"].ToString().Trim(); double cena = Convert.ToDouble(reader["Cena"]); int pocet = Convert.ToInt16(reader["PocetKusu"]); produkty.Add(new Produkt { Nazev = nazev, Cena = cena, PocetKusu = pocet }); } } // Zachycení výjimky - vrácení úprav catch (SqlCeException exc) { sqlCeTrans.Rollback(); Console.Write(exc.Message); } // Zavření připojení pokud je otevřené finally { if (sqlCeCon.State == System.Data.ConnectionState.Open) { reader.Close(); sqlCeCon.Close(); } }
Vývoj na platformě Windows Mobile
Strana 72 z 112
Práce s daty
7.4
Language Integrated Query (LINQ) .NET Compact Framework nabízí v omezené míře také technologii LINQ,
která je dostupná v plném .NET frameworku. I tak lze ale využít její přínos na mobilních zařízení s operačním systémem Windows Mobile. "Technologie LINQ přináší především unifikovaný přístup k datům, ať jde o data uložená v paměti, uložená v relační databázi nebo dokumentu XML, či data, která jsou výsledkem volání webové služby. Unifikovaný přístup a dotazování dat před příchodem LINQ nebyl možný. Potřeba zjednodušení a standardizace kódu pro přístup dat vedla k vytvoření technologií ODBC, JDBC, ADO.NET a OLEDB, které vytvářejí logickou vrstvu, která zapouzdruje práci s podkladovými daty. Pro práci s daty se osvědčil doménově specifický jazyk SQL, který implementuje většina databázových systémů. Pro dotazování dat v dokumentech XML se používají jazyky XQuery a XPath." (28)
Vývoj na platformě Windows Mobile
Strana 73 z 112
Možnosti testování mobilních aplikací
8 Možnosti testování mobilních aplikací Pro testování aplikací vyvíjených pro mobilní zařízení s operačním systémem Windows Mobile je nejvhodnější způsob testování přímé ladění aplikace na cílovém zařízení, pro které je aplikace určena. Tento způsob je možný když má vývojář toto zařízení k dispozici. Ve chvíli kdy vývojář toto zařízení nemá, což je častý jev, tak je nejvhodnější alternativou softwarový emulátor Microsoft Device Emulator. Tato alternativa je vhodná např. v situacích, kdy je aplikace vyvíjena na větší počet zařízení, které mají různě veliký displej či rozlišení, rozdílně výkonný procesor anebo se liší např. nainstalovanou verzí operačního systému Windows Mobile, případně se liší v dalších parametrech. Pro tento emulátor hovoří také fakt, že je provázaný na vývojové prostředí Visual Studio, které slouží pro vývoj nejen mobilních nativních aplikací v jazyce C++ či řízených aplikací v .NET Compact Frameworku. Možnosti testování mobilních aplikací jsou v prostředí Visual Studia 2008 opravdu široké. Přímo s instalací vývojového prostředí Visual Studio 2008 je distribuován Microsoft Device Emulator V3 pro zařízení s ARM procesorem, který je ke stažení i samostatně50. Závisí však i na tom, jaké Windows Mobile Emulator Images má vývojář nainstalované. V instalaci Visual Studia 2008 jsou standardně k dispozici následující image platforem pro emulátor:
Pocket PC 2003
Windows CE
Windows Mobile 5 Pocket PC SDK
Windows Mobile 5 Smartphone SDK
S vydáním Windows Mobile 6.0, 6.1 a 6.5 jsou k dispozici formou doinstalování tyto image pro emulátor:
Windows Mobile 6.0 Standard SDK
Windows Mobile 6.0 Professional SDK
Lze ho provozovat i bez vývojového prostředí Visual Studio ovšem za cenu ztráty přímé provázanosti s vývojovým prostředím. 50
Vývoj na platformě Windows Mobile
Strana 74 z 112
Možnosti testování mobilních aplikací
Windows Mobile 6.1 Standard SDK51
Windows Mobile 6.1 Professional SDK52
Windows Mobile 6.5 Standard Developer Tool Kit
Windows Mobile 6.5 Professional Developer Tool Kit
Image pro emulátor nejsou (na rozdíl od .NET Compact Frameworku) vázány na verzi vývojového prostředí a lze je tedy doinstalovat i např. do Visual Studia 2005. Nové verze emulátorů s sebou přinášejí vždy příslušnou verzi systému Windows Mobile, pro kterou je emulátor určen53 se všemi novými funkcemi, které nová verze operačního systému Windows Mobile nabízí. Zároveň jsou k dispozici v různých jazykových mutacích (více viz příloha B) a vývojáři mohou tedy pracovat s lokalizovanými image prostředí Windows Mobile. Každý image v sobě obsahuje nastavení pro zařízení s různým grafickým rozlišením. S každou novou verzí jsou zohledňována nová zařízení na trhu a jejich rozlišení jsou zahrnuta v příslušném image daného operačního systému Windows Mobile,
pokud jsou tato zařízení dělaná pro danou verzi OS, který na zařízení běží. Ne všechna zařízení jsou např. upgradovatelná na vyšší verzi operačního systému Windows Mobile a tak nedochází k velkému nárůstu grafických rozlišení pro každou novou verzi Windows Mobile, protože u zařízení, která nejsou schopná upgradu na vyšší verzi operačního systému (většinou jsou to zařízení s atypickým grafickým rozlišením, u kterých nebylo při návrhu počítáno s upgradem na vyšší verzi OS - např. některá navigační zařízení) není zahrnuto grafické rozlišení v daném image pro testování.
8.1
Popis možností v Microsoft Device Emulator V3 Microsoft Device Emulator V3 nabízí možnosti nastavení rozčleněné
do 4 kategorií. Jednotlivé kategorie budou popsány v následujících podkapitolách. Zatím pouze v anglické (US) verzi, lokalizované image zatím nejsou k dispozici pro verzi Windows Mobile 6.1 52 Zatím pouze v anglické (US) verzi, lokalizované image zatím nejsou k dispozici pro verzi Windows Mobile 6.1 53 Verze je označena v názvu emulátoru, tedy např. Windows Mobile 6.0 Professional SDK označuje emulátor pro zařízení s operačním systémem Windows Mobile 6.0 řady Professional která označuje zejména zařízení PDA s dotykovým displejem, kdežto řada Standard označuje většinou zařízení Smartphone a zařizení bez dotykového displeje. 51
Vývoj na platformě Windows Mobile
Strana 75 z 112
Možnosti testování mobilních aplikací
8.1.1 Hlavní nastavení
Obrázek 8.1-1 - Dialogové okno se záložkou Hlavní nastavení
V první záložce lze nastavit soubor s image (OS image name), ze kterého má emulátor zavést systém do emulovaného zařízení. U image lze ještě nastavit hexadecimální adresu paměti (Specify ROM 54 image address), od které se začne emulátor načítat, což se hodí při vlastních upravovaných ROM pamětí. Dále lze nastavit velikost paměti RAM 55 (Specify RAM size), kterou bude emulované zařízení disponovat. Lze tak vyzkoušet zatížení zařízení při různých hodnotách paměti RAM při spuštění více aplikací najednou. Při běhu emulátoru lze uložit flash paměť NAND, kterou lze poté načíst i k jinému zařízení (Flash memory file), ale pouze před jeho spuštěním. Dále lze přiřadit klávesnici u počítače funkční klávesu na zařízení (Host key, FuncKey). K zařízení lze rovněž připojit složku (Shared folder), která se v zařízení projeví jako paměťová karta tzv. „Storage Card“.
54 55
ROM – Read Only Memory – paměť sloužící pouze ke čtení RAM – Random Access Memory – paměť umožňující čtení i zápis
Vývoj na platformě Windows Mobile
Strana 76 z 112
Možnosti testování mobilních aplikací
8.1.2 Nastavení displeje
Obrázek 8.1-2 - Dialogové okno se záložkou Nastavení displeje
V nastavení displeje lze nastavit XML soubor s nadefinovaným skinem (Skin). V souboru skinu je nastavení grafických souborů pro základní vzhled zařízení, dále maska tlačítek, a grafika stisknutých tlačítek. Dále je v souboru nadefinována pozice tlačítek a události jejich stisku a také rozlišení displeje a kde se displej nachází v obrázku zařízení. Lze ale také nevyužívat skiny zařízení a využít volby Video, která zobrazuje pouze displej zařízení v okně bez okolních tlačítek a bez obrázku zařízení. Nastaví se rozlišení (Screen width, Screen height), barevná hloubka (Color depth). Lze také nastavit orientaci displeje (Orientation). K dispozici jsou 4 natočení (0°, 90°, 180°, 270°). Displej lze také zvětšit pomocí 2násobného zoomu (Zoom 2x), okno nechat vždy nahoře nad ostatními okny (Always on top), povolit či zakázat zobrazování nápověd při najetí kurzoru nad aktivní oblasti (Enable tooltips).
Vývoj na platformě Windows Mobile
Strana 77 z 112
Možnosti testování mobilních aplikací
8.1.3 Nastavení připojení
Obrázek 8.1-3 - Dialogové okno se záložkou Nastavení připojení
Třetí záložka slouží k nastavení připojení. Lze povolit síťový adaptér v zařízení (Enable NE2000 PCMCIA network adapter and bind to), aby bylo možné využívat datového připojení. Virtuální síťový adaptér se musí ale namapovat na nějaký existující síťový adaptér, který je na počítači, na kterém emulátor běží. Seznam s dostupnými adaptéry je dostupný hned pod povolením virtuálního síťového adaptéru. S takto dostupným připojením lze testovat aplikace vyžadující přístup na internet např. za účelem stažení dat, aktualizací atd. Volba síťového adaptéru CS8900 je pro zařízení Windows Mobile nepoužitelná. Stejně tak používání Host-only networking není pro běžné testování datového připojení potřebné.
Vývoj na platformě Windows Mobile
Strana 78 z 112
Možnosti testování mobilních aplikací
8.1.4 Nastavení periferií
Obrázek 8.1-4 - Dialogové okno se záložkou Nastavení periferií
Ve čtvrté záložce je možné připojit na 3 sériové porty přídavná zařízení, která jsou připojená k počítači. Nelze namapovat stejný COM port na více sériových portů. Při výběru COM portu, na který není nic připojeného, nemusí zařízení zavést systém. Na sériovém portu 0 se emuluje port COM 1. Na sériový port 1 lze namapovat port COM 2. Na sériový port 2 se pak mapuje port COM 3, přes který se využívá infračervený přenos dat (IrDA56). Lze také vytvořit konzolový výstup všech vstupů a výstupů z portu COM 1 nastaveném na sériovém portu 0. K tomu musí být zaškrtnutá volba Create text konsole Windows for serial port 1. Také lze nastavit úroveň nabití baterie zařízení zadáním hodnoty v % a zaškrtnutím volby Battery. U emulovaného zařízení lze emulovat i zvukový reproduktor zaškrtnutím volby Speakerphone. Volbou Headset pak emulátor simuluje náhlavní soupravu a volba Carkit pak simuluje autosoupravu. 56
Infrared Data Association
Vývoj na platformě Windows Mobile
Strana 79 z 112
Praktická část
9 Praktická část Pro realizaci praktického příkladu jsem vybral vývojové prostředí Visual Studio 2008, protože podporuje vývoj pro .NET framework a je provázáno se softwarovým emulátorem mobilních zařízení Microsoft Device Emultaor V3. Jako technologii pro vývoj jsem zvolil .NET Compact Framework 3.5, konkrétně jazyk C# a pro práci s daty SQL Server 2008, ke kterému se bude přistupovat vzdáleně. Ukázková aplikace byla vyvíjena pro operační systém Windows Mobile řady 6, konkrétně pro verzi 6.1. Primární rozlišení aplikace jsem zvolil rozlišení QVGA pro obě dvě možnosti orientace displeje, tedy na výšku i na šířku (240x320, 320x240).
9.1
Vymezení příkladu Některé části jsou z důvodu rozsahu práce či nutné interakce s reálným
subjektem vypuštěny. Z hlediska demonstrace vybraných technologií pro vývoj a fází navržené metodiky jsem vybral tyto výstupy, které jsou dále publikovány. Vybrané části:
popis aplikace,
konceptuální diagram tříd,
diagram užití,
databázový diagram (fyzický model),
deployment diagram,
návrh grafického uživatelského rozhraní jednoho z formulářů,
vybrané části programového kódu,
ukázka testování aplikace v Microsoft Device Emulatoru V3.
Vývoj na platformě Windows Mobile
Strana 80 z 112
Praktická část
9.2
Popis aplikace Jako ukázkový příklad jsem zvolil aplikaci pro evidenci záznamů cestujícího
obchodníka. Tento obchodník objíždí potenciální klienty a stávající klienty a nabízí jim produkty své firmy. Každou návštěvu u těchto subjektů zaznamenává. U každé návštěvy zaznamenává jméno společnosti, kontaktní osobu, zda subjekt projevil zájem o produkty a případnou poznámku. Kromě toho může ještě obchodník odeslat přímou objednávku pro vybraný subjekt, prohlížet již zadané objednávky a objednávky také stornovat. Pro objednání produktu musí být vždy vytvořena nová objednávka. Nelze tedy v rámci jedné objednávky objednávat více produktů. U objednávky je pak veden produkt, počet objednaných kusů. Produkty může do systému zadávat také. U těch je pak vedena cena, název, popis. Jelikož jde o ukázkový příklad, tak aplikace neřeší některé reálné skutečnosti, se kterým je možné se běžně setkat při práci obchodníka.
9.3
Analýza
9.3.1 Konceptuální diagram tříd Konceptuální diagram tříd vyvíjené aplikace popisuje klíčové třídy a vztahy mezi nimi. V konceptuálním diagramu tříd jsou vidět atributy a vlastnosti jednotlivých tříd. Atributem rozumíme proměnnou, do které se ukládají data, která jsou přístupná pouze v rámci třídy, ke které atribut patří. Pro její okolí je tento atribut skrytý. Vytvořením vlastnosti k tomuto atributu docílíme toho, že tento atribut bude přístupný i pro ostatní třídy, které ho jinak nevidí. Vlastnost třídy má v jazyce C# metody get a set. Metoda get vrací okolním třídám hodnotu atributu a metoda set jej naopak nastavuje. Od abstraktní třídy Klient dědí třídy PotencialniKlient a StavajiciKlient. U potenciálního klienta lze navíc uložit ZajmovyProdukt, který slouží obchodníkovi jako informace, o který produkt měl klient zájem v případě, že se rozhodne později tohoto potenciálního klienta znovu kontaktovat.
Vývoj na platformě Windows Mobile
Strana 81 z 112
Praktická část
Obrázek 9.3-1 - Konceptuální diagram tříd
Úplný diagram tříd se nachází ve fázi návrh, kde již obsahuje také znázornění ostatních tříd, které obsahují kód pro grafické uživatelské prostředí a pro práci s datovým úložištěm.
9.3.2 Diagram užití Aplikace nabízí správu produktů, správu objednávek a správu klientů. Akce, které je možné provádět s těmito objekty, zachycuje diagram užití na obrázku (Obrázek 9.3-2)a popis jednotlivých případů užití. Pro upřesnění je nutné dodat, že obchodník nemůže mazat klienty, ale pouze je přidávat a aktualizovat jejich údaje. Stejně tak nelze upravovat objednávky, ale pouze je stornovat - dojde k jejich odstranění. Pro vytvoření objednávky musí nejdříve existovat nějaký produkt, který bude objednávanou položkou a také klient, který bude objednavatelem. Popisy případů užití obsahují posloupnost akcí podle čísla kroku, role, které vykonávají příslušné akce.
Vývoj na platformě Windows Mobile
Strana 82 z 112
Praktická část
Obrázek 9.3-2 - Diagram užití
UC Správa produktů - přidání produktu Krok Role Akce 1 Systém zobrazení formuláře pro práci s produkty 2 Aktér vyplní informace o produktu: Název, Cena a Popis 3 Systém provede kontrolu vstupních dat 4 Systém v případě že nenalezne chybu, přiřadí jedinečný identifikátor produktu a položku uloží, v opačném případě UC Správa produktů alternativní scénář
UC Správa produktů - úprava produktu Krok Role Akce 1 Systém zobrazení formuláře pro práci s produkty 2 Aktér vybere produkt ke změně 3 Systém zobrazí hodnoty k produktu do zadávacích polí 4 Aktér změní informace o produktu: Název, Cena a Popis 5 Systém provede kontrolu vstupních dat 6 Systém v případě že nenalezne chybu, tak na základě jedinečného identifikátoru produktu položku uloží, v opačném případě UC Správa produktů alternativní scénář
Vývoj na platformě Windows Mobile
Strana 83 z 112
Praktická část UC Správa produktů - smazání produktu Krok Role Akce 1 Systém zobrazení formuláře pro práci s produkty 2 Aktér vybere ze seznamu produktů produkt, který má být smazán 3 Systém na základě jedinečného identifikátoru produktu položku smaže UC Správa produktů - alternativní scénář (přidání/úprava produktu) Krok Role Akce 4a Systém zobrazí chybové hlášení 4b Aktér opraví chybně zadané informace o produktu 4c Systém provede kontrolu vstupních dat 4d Systém v případě, že nenalezne chybu, provede požadovanou akci, v opačném případě se opakuje tento scénář UC Správa objednávek - přidání objednávky Krok Role Akce 1 Systém zobrazení formuláře pro práci s objednávkami 2 Aktér vyplní informace o objednávce: Produkt, Klient a Počet kusů 3 Systém provede kontrolu vstupních dat 4 Systém v případě že nenalezne chybu, přiřadí jedinečný identifikátor objednávce a položku uloží, v opačném případě UC Správa objednávek alternativní scénář UC Správa objednávek - storno objednávky Krok Role Akce 1 Systém zobrazení formuláře pro práci s objednávkami 2 Aktér vybere objednávku ke stornování 3 Systém na základě jedinečného identifikátoru objednávky položku smaže UC Správa objednávek - alternativní scénář (přidání objednávky) Krok Role Akce 4a Systém zobrazí chybové hlášení 4b Aktér opraví chybně zadané informace o objednávce 4c Systém provede kontrolu vstupních dat 4d Systém v případě, že nenalezne chybu, provede požadovanou akci, v opačném případě se opakuje tento scénář UC Správa klientů - přidání klienta Krok Role Akce 1 Systém zobrazení formuláře pro práci s klienty 2 Aktér vyplní informace o klientovi: Jméno společnosti, Adresa, Kontaktní osoba, Email, Poznámka, Telefon Je stálý 3 Systém provede kontrolu vstupních dat 4 Systém v případě že nenalezne chybu, přiřadí jedinečný identifikátor klientovi a položku uloží, v opačném případě UC Správa objednávek alt. scénář
Vývoj na platformě Windows Mobile
Strana 84 z 112
Praktická část UC Správa klientů - úprava klienta Krok Role Akce 1 Systém zobrazení formuláře pro práci s klienty 2 Aktér vybere klienta ke změně údajů 3 Systém zobrazí hodnoty vybraného klienta v zadávacích polích 4 Aktér změní informace o klientovi: Jméno společnosti, Adresa, Kontaktní osoba, Email, Poznámka, Telefon Je stálý 5 Systém provede kontrolu vstupních dat 6 Systém v případě že nenalezne chybu, tak na základě jedinečného identifikátoru klienta položku uloží, v opačném případě UC Správa klientů alternativní scénář
UC Správa klientů - alternativní scénář Krok Role Akce 4a Systém zobrazí chybové hlášení 4b Aktér opraví chybně zadané informace o klientovi 4c Systém provede kontrolu vstupních dat 4d Systém v případě, že nenalezne chybu, provede požadovanou akci, v opačném případě se opakuje tento scénář
9.4
Návrh
9.4.1 Deployment diagram
Obrázek 9.4-1 - Deployment diagram
Na obrázku deployment diagramu je znázorněné rozmístění jednotlivých zařízení a SW komponent. Pro práci s databází byl vybrán Microsoft SQL Server 2008 běžící na OS Windows Server 2008. Pro běh aplikace byly vybrány zařízení schopné provozovat Windows Mobile 6.
Vývoj na platformě Windows Mobile
Strana 85 z 112
Praktická část
9.4.2 Databázový diagram
Obrázek 9.4-2 - Databázový diagram (fyzický model tabulek relační databáze)
Databázový diagram znázorňuje fyzické tabulky a jejich datové atributy, které jsou předmětem pro zpracování z hlediska dat. Těmito objekty pro zpracování jsou Objednávky, Klienti a Produkty viz analýza. Jedná se o relační databázi a jednotlivé tabulky obsahují primární klíče v podobě identifikátorů id a jsou propojeny na základě cizích klíčů. Objednávka je tak propojena s tabulkou klientů přes cizí klíč klient_id a s tabulkou produktů přes cizí klíč produkt_id. Každá objednávka může mít pouze jednoho klienta a pouze jeden produkt.
Vývoj na platformě Windows Mobile
Strana 86 z 112
Praktická část
9.4.3 Designový diagram tříd
Obrázek 9.4-3 - Designový diagram tříd
Na designovém diagramu tříd jsou znázorněné všechny třídy vyvíjené aplikace vyjma třídy Program, která spouští hlavní formulář se zobrazením uživatelského rozhraní. Každá hlavní třída (Klient, Produkt, Objednavka) je objektovým typem pro třídu se seznamem tohoto typu objektu. Tyto seznamy mají metody pro práci s těmito objekty. Seznamy zároveň slouží jako datový zdroj pro grafický seznam, nebo-li list položek v příslušném formuláři, který slouží ke grafickému zobrazení těchto seznamů a pro práci s těmito objekty.
9.4.4 Návrh GUI Pro demonstraci návrhu GUI jsem vybral formulář pro práci s produkty. Skládá se ze 3 vstupních textových polí pro zadávání údajů o produktu, 2 tlačítek pro spuštění požadované akce a seznamu pro zobrazení všech produktů. Návrh je řešen tak, aby se rozmístění a velikost prvků automaticky přizpůsobilo změně rozlišení a orientace displeje, což bude demonstrováno později při ukázce nasazení aplikace. Pro úsporu místa chybí viditelně tlačítko pro změnu údajů produktu. Je to z důvodu,
Vývoj na platformě Windows Mobile
Strana 87 z 112
Praktická část že tlačítko pro přidání produktu ovládá obě tyto úlohy, ale rozhodnutí akce probíhá podle skutečnosti, zda předtím uživatel vybral nějaký produkt či nikoliv.
Obrázek 9.4-4 - Návrh GUI formuláře Produkty
9.5
Implementace Pro fázi Implementace jsem vybral některé úseky programového kódu
vyvíjené aplikace s jejich popisem, abych demonstroval využití technologie .NET Compact Framework.
9.5.1 Vybrané ukázky kódu Následující kód demonstruje využití metod z názvového prostoru Microsoft.WindowsMobile.PocketOutlook, který slouží pro přístup k údajům o kontaktech, kalendáři a úkolech. Na řádku 3 se vytváří instance OutlookSession, která umoňuje zmíněný přístup. Na řádku 4 se vytváří instance nového objektu Task, který symbolizuje úkol. Na řádcích 5 - 19 se nastavují některé parametry, které lze nastavit u položky úkol, tak jak je tomu u mobilního Outlooku57. Jde konkrétně o název (Subject) úkolu, poznámku (Body) a čas připomenutí úkolu (ReminderTime). Z pohledu aplikace dojde při vytvoření klienta, který se stane
Tyto nastavitelné parametry jsou shodné s parametry apliakce Microsoft Office Outlook a zároveň podléhají procesu synchronizace položek mezi mobilním zařízením a osobním počítačem. 57
Vývoj na platformě Windows Mobile
Strana 88 z 112
Praktická část potenciálním klientem ke vložení úkolu s připomínkou o jeho budoucím kontaktování. Tento kód se nachází ve třídě PotencialniKlient. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
public void PridejPripominku() { OutlookSession os = new OutlookSession(); Task t = new Task(); t.Subject = "Kontaktovat " + this.KontaktniOsoba + " ze spol. " + this.JmenoSpolecnosti; if (_zajmovyProdukt != null) { t.Body = "Subjekt: " + this.JmenoSpolecnosti + " projevil zájem o produkt: " + _zajmovyProdukt.Nazev; t.ReminderTime = DateTime.Now.AddMonths(6); } else { t.Body = "Subjekt: " + this.JmenoSpolecnosti + " neprojevil zájem o žádný produkt."; t.ReminderTime = DateTime.Now.AddMonths(1); } os.Tasks.Items.Add(t); }
Následující kód se nachází v třídě DatoveOperace. Jde o metodu, která načte ze vzdáleného SQL serveru produkty. Na SQL serveru je pro databázi ObchodniCestujici k dispozici uložená procedura s názvem NactiProdukty. Při změně SQL příkazu tak není nutné měnit programový kód aplikace, ale stačí přepsat SQL příkaz v rámci této uložené procedury na SQL serveru. Na řádku 3 se vytváří nová instance třídy SeznamProduktu, do které se budou přidávat načtené produkty reprezentované instancemi třídy Produkt. Na řádku 8 se vytváří instance třídy SqlCommand, která má udáno jako parametr název uložené procedury. Proces čtení a přidávání jeho výsledků se nachází na řádcích 12-21. Po ukončení čtení (řádek 21) dojde k vrácení načteného seznamu s produkty (řádek 22). Jestliže dojde k zachycení výjimky spojené s prací s SQL (řádek 24), vrátí se pouze prázdná hodnota null (řádek 26). V obou případech vrácení však dojde k uzavření aktivního spojení s datovým zdrojem, aby nezůstalo zbytečně otevřené když jej nebude aplikace využívat, což je v zobrazeném programovém kódu na řádcích 28-31.
Vývoj na platformě Windows Mobile
Strana 89 z 112
Praktická část
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
public SeznamProduktu NactiProdukty() { SeznamProduktu sp = new SeznamProduktu(); try { sqlCon.Open(); SqlCommand sqlCmd = new SqlCommand("NactiProdukty", sqlCon); sqlCmd.CommandType = System.Data.CommandType.StoredProcedure; SqlDataReader reader = sqlCmd.ExecuteReader(); while (reader.Read()) { int id = Convert.ToInt32(reader["id"]); string nazev = reader["nazev"].ToString(); string popis = reader["popis"].ToString(); double cena = Convert.ToDouble(reader["cena"]); sp.PridejPolozku(new Produkt { ID = id, Cena = cena, Nazev = nazev, Popis = popis }); } return sp; } catch (SqlException exc) { return null; } finally { sqlCon.Close(); } }
Následující kód se nachází také ve třídě DatoveOperace. Jde přímo o konstruktor této třídy. Konstruktor při vytváření instance třídy zároveň vytvoří instanci třídy SqlConnection, která slouží k připojení k databázi. Na řádcích 37-39 lze vidět nastavení parametrů připojení ke vzdálenému SQL serveru. Při vytváření a testování aplikace se server nacházel v lokální síti (s IP – Internet Protocol adresou 10.0.0.1) a stejně tak zařízení v emulátoru (s IP adresou 10.0.0.7). 33 34 35 36 37 38 39 40
SqlConnection sqlCon; public DatoveOperace() { sqlCon = new SqlConnection(@"Data Source=10.0.0.1,1433;Initial Catalog=vse;Persist Security Info=True;User ID=vse;Password=vse"); }
Vývoj na platformě Windows Mobile
Strana 90 z 112
Praktická část Následující kód se nachází ve třídě HlavniGUI. Jde o metodu, která je zavolána při načítání forumláře. Ukazuje, jak je volána metoda instance třídy DatoveOperace, která otestuje připojení (řádek 43) a výsledek zobrazí při načtení grafického uživatelského rozhraní. Ve chvíli kdy volaná metoda vrátí výjimku, tak jí zobrazí uživateli pomocí okna pro zobrazení zpráv (řádky 47-50). Jestliže se vrátí prázdná hodnota, tak aplikace ukáže ve stavovém řádky hlavního okna apliakce, že připojení bylo navázáno (řádek 54). 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
private void HlavniGUI_Load(object sender, EventArgs e) { Exception exc = _datoveOperace.OtestujPripojeni(); if (exc != null) { statPripojeni.Text = "Připojení: nelze navázat"; MessageBox.Show("Výpis chyby:" + Environment.NewLine, "Připojení nelze navázat", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1); } else { statPripojeni.Text = "Připojení: navázáno"; } }
Vývoj na platformě Windows Mobile
Strana 91 z 112
Praktická část
9.5.2 Testování aplikace v emulátoru Pro ukázku testování jsem zvolil čtyři obrázky zachycující:
situaci, kdy nelze navázat spojení se vzdáleným SQL serverem,
hlavní okno aplikace s otevřenou nabídkou,
špatně vytvořené grafické uživatelské rozhraní,
opravené grafické uživatelské rozhraní.
Na obrázku (Obrázek 9.5-1) je zachycena situace, kdy uživatel spustí aplikaci, ale ta se nebude schopna z nějakého důvodu (chyba připojení, odmítnutím vzdáleným serverem, atd.) připojit. Dojde k zobrazení chybového hlášení uživateli.
Obrázek 9.5-1 - Nelze navázat spojení se vzdáleným MSSQL Serverem
Vývoj na platformě Windows Mobile
Strana 92 z 112
Praktická část Na obrázku (Obrázek 9.5-2) lze vidět hlavní okno aplikace, které je vytvořeno v rámci třídy HlavniGUI. Je to vstupní bod pro uživatele aplikace, kde si vybírá, který formulář bude spuštěn. Při uzavření formulářů, které zle spustit z viditelné nabídky se uživatel vrátí zpět do tohoto hlavního formuláře, kde může otevřít opět všechny formuláře nebo aplikaci ukončit, případně jí minimalizovat na pozadí (křížkem v pravém horním rohu).
Obrázek 9.5-2 - Hlavní okno aplikace s otevřenou nabídkou
Pro
demonstraci
špatně
navrženého
uživatelského
rozhraní,
které
nereflektuje změny v orientaci displeje, kdy dojde ke změně zobrazované plochy, jsem vybral obrázek (Obrázek 9.5-3). Lze na něm vidět, že aplikace se protáhne dolů, ale chybí její přizpůsobení pomocí posuvných lišt (pravá posuvná lišta na obrázku
Vývoj na platformě Windows Mobile
Strana 93 z 112
Praktická část patří hlavnímu formuláři aplikace, který je na pozadí a je přizpůsoben změně orientace displeje). Ovládací prvky nejsou ukotvené k hranám formuláře, a proto nedojde k jejich přizpůsobení na velikost zobrazení plochy formuláře.
Obrázek 9.5-3 - Špatně navržené grafické uživatelské rozhraní
Pro představu jak má vypadat dobře navržené grafické uživatelské rozhraní pro formulář s Produkty jsem vybral obrázek (Obrázek 9.5-4). Jde o stejnou orientaci displeje jako u předchozího obrázku, ale s opraveným nastavením jednotlivých ovládacích prvků a formuláře. Jak je z obrázku patrné, ovládací prvky jsou ukotveny k hranám formuláře a tak dochází při změně orientace displeje k jejich automatickému přizpůsobení zobrazitelné velikosti plochy formuláře. Na obrázku je zároveň vidět stav, kdy jsou v databázi již uloženy produkty, které jsou načteny v tomto formuláři do listu, který je zobrazuje.
Vývoj na platformě Windows Mobile
Strana 94 z 112
Praktická část
Obrázek 9.5-4 - Správně navržené grafické uživatelské rozhraní
Vývoj na platformě Windows Mobile
Strana 95 z 112
Závěr
10 Závěr Jako hlavní cíl diplomové práce jsem si určil návrh metodiky pro vývoj mobilních aplikací pro platformu Windows Mobile. Při psaní práce jsem se seznámil i s ostatními mobilními platformami a vzájemně je porovnal. Výsledkem je srovnávací tabulka mobilních platforem z hlediska možností vývoje, která je uvedena v kapitole (2.7.1). Každý čtenář této práce si tak může udělat stručný přehled o těchto platformách. Dalším dílčím cílem, který mi pomohl splnit cíl hlavní, byla srovnávací tabulka technologií pro vývoj mobilních aplikací na zkoumané platformě Windows Mobile.. Vlastní návrh metodiky pro vývoj mobilních aplikací na platformě Windows Mobile je uveden v kapitole 5. Při práci s metodikou musí čtenář rozumět problematice mobilních aplikací a jejich omezením. Součástí metodiky je i pohled na specifické oblasti tvorby mobilních aplikací pro platformu Windows Mobile. Tyto specifické oblasti, které představují omezení při vývoji mobilních aplikací, tvoří návrh uživatelského rozhraní, práce s daty, hardware mobilních zařízení a software. Tyto specifické oblasti zároveň tvoří dimenze v navržené metodice. Pro porozumění nejen dimenzí, ale celé metodiky by měl být čtenář obeznámen s metodikou MMDIS, protože právě z této metodiky se navržená metodika částečně skládá, resp. byly z ní převzaty a upraveny vhodné části pro vývoj mobilních aplikací pro platformu Windows Mobile. Pro konkrétnější představu průběhu vývoje je vypracován přehled jednotlivých fází metodiky v podobě formulářů přiložených k diplomové práci. Tyto formuláře jsou převzaty z metodického rámce MeFIS a upraveny pro potřeby vývoje mobilních aplikací pro platformu Windows Mobile. Po prozkoumání těchto formulářů by měl mít čtenář jasno, co je cílem každé fáze, jaké činnosti jsou ve fázi vykonávány a které role tyto činnosti plní. Zároveň jsou stanovené vstupy a výstupy pro tyto fáze. Ukázka využití technologií pro vývoj mobilních aplikací pro platformu Windows Mobile je dalším cílem této diplomové práce. Pro demonstraci jsem vytvořil ukázkovou aplikaci pro potřeby obchodního cestujícího. Aplikace využívá
Vývoj na platformě Windows Mobile
Strana 96 z 112
Závěr technologie pro vývoj .NET Compact Framework a SQL Server. Aplikace je vytvářena podle navržené metodiky, abych demonstroval její praktické využití. Součástí praktického příkladu jsou tak i modely a diagramy, které vznikly při vývoji této aplikace. Diplomová práce je napsána v době, kdy je avizováno vydání (rok 2010) nové verze mobilního operačního systému Windows Mobile 7, který má přinést přepracované jádro a podporu nových technologických trendů z oblasti mobilních zařízení. Bohužel nebyly zatím k dispozici žádné oficiální materiály, ze kterých by šlo čerpat pro tuto práci. Ani vývojové verze vývojových nástrojů (Visual Studio 2010) zatím neposkytují podporu pro nově vytvářené technologie pro vývoj mobilních aplikací (.NET Compact Framework 4). Ve chvíli kdy tyto technologie a nástroje budou k dispozici, tak by bylo možné rozšíření této diplomové práce. Rozšíření této práce by se tedy nabízelo v podobě porovnání vývoje pro aktuální edice operačního systému Windows Mobile a jeho nové verze a analýza co přinášejí nové vývojové technologie a nástroje, které je podporují.
Vývoj na platformě Windows Mobile
Strana 97 z 112
Použité zdroje a literatura
11 Použité zdroje a literatura 1. Microsoft Corporation. Mobile Architecture Pocket Guide . CodePlex. [Online] 15. 04 2009. [Citace: 10. 11 2009.] http://www.codeplex.com/AppArch/Release/ProjectReleases.aspx?ReleaseId=197 98. 2. Voříšk, Jiří a kolektiv. Principy a modely řízení podnikové informatiky. Praha : Nakladatelství Oeconomica, 2008. ISBN 978-80-245-1440-6. 3. Symbian Foundation Limited. Symbian developer community. Symbian developer community. [Online] 2009. [Citace: 24. 10 2009.] http://developer.symbian.org/. 4. Ziegler, Chris. Google gets even chummier with S60, releases search app. engadget imobile. [Online] 21. 02 2008. [Citace: 10. 11 2009.] http://www.blogcdn.com/www.engadgetmobile.com/media/2008/02/google-s60native-search-allaboutsymbian.jpg. 5. Vokáč, Luděk. Recenze HTC Tattoo: Nejlevnější Android nedělá mnoho kompromisů. iDNES.cz. [Online] 1. 11 2009. [Citace: 10. 11 2009.] http://i.idnes.cz/09/103/maxi/VOK2ec05c_HTC_Tatto_screen_01.jpg. 6. Apple Inc. iPhone Dev Center: Tools for iPhone OS Development. iPhone Dev Center. [Online] 2009. [Citace: 24. 10 2009.] http://www.devworld.apple.com/iphone/library/referencelibrary/GettingStarted/ URL_Tools_for_iPhone_OS_Development/index.html. 7. Apple Inc. iPhone Dev Center: iPhone OS Overview. iPhone Dev Center. [Online] 2009. [Citace: 24. 10 2009.] http://www.devworld.apple.com/iphone/library/referencelibrary/GettingStarted/ URL_iPhone_OS_Overview/index.html. 8. Ritchie, Rene. Preview: iPhone OS 3.0 Software Walkthrough (Updated to Beta 5). The iPhone blog. [Online] 23. 03 2009. [Citace: 10. 11 2009.]
Vývoj na platformě Windows Mobile
Strana 98 z 112
Použité zdroje a literatura http://www.theiphoneblog.com/images/stories/2009/03/iphone_30_home_screen. png. 9. Research In Motion Limited. BlackBerry - Mobile Software - BlackBerry Mobile Data Software at BlackBerry.com. BlackBerry Developer Zone. [Online] 2009. [Citace: 25. 10 2009.] http://na.blackberry.com/eng/services/mobile.jsp. 10. Moses, Asher. Tips and tricks for using your BlackBerry. cnet australia. [Online] 28. 06 2006. [Citace: 10. 11 2009.] http://cdn.cbsi.com.au/cnet2/i/r/2006/pda/news/blackberry/todayscreen.jpg. 11. Rottmann, Ralf. Get up to speed with our Palm Pre extended executive summary. the NEXT Web.com. [Online] 06. 06 2009. [Citace: 17. 11 2009.] http://thenextweb.com/wp-content/uploads/2009/06/palm_webos_450.jpg. 12. ČTK. O chytré mobilní telefony je vetší zájem než o notebooky. Novinky.cz. [Online] 29. 10 2009. [Citace: 17. 11 2009.] http://www.novinky.cz/internet-apc/mobil/182856-o-chytre-mobilni-telefony-je-vetsi-zajem-nez-o-notebooky.html. 13. Hopkins, Bruce. Three Reasons Why Your Next Java ME Mobile Application Should Include JavaFX Mobile. Sun Developer Network. [Online] 02 2009. [Citace: 10. 11 2009.] http://java.sun.com/developer/technicalArticles/javame/javafxmobilejavame/figure1.gif. 14. Kačmář, Dalibor. Vývoj pro mobilní zařízení ve Visual Studiu 2005. Microsoft Webcasts. [Webcast] Praha : Microsoft Corporation, 2005. 15. Microsoft Corporation. What's New in the .NET Compact Framework. MSDN Visual Studio 2008 Developer Center. [Online] 2008. [Citace: 01. 12 2009.] http://msdn.microsoft.com/en-us/library/ms404358.aspx. 16. Microsoft Corporation. MSDN Visual Studio 2008 Developer Center. .NET Framework Support and New Features. [Online] 2008. [Citace: 01. 12 2009.] http://msdn.microsoft.com/en-us/library/h1ek3akf.aspx.
Vývoj na platformě Windows Mobile
Strana 99 z 112
Použité zdroje a literatura 17. Microsoft Corporation. What's New in the .NET Compact Framework Version 3.5. MSDN Visual Studio 2008 Developer Center. [Online] 2008. [Citace: 01. 12 2009.] 18. Bohn, Dieter. IE6 on Windows Mobile 6.5: A Hybrid | WMExperts. WMExperts | Windows Mobile News, Reviews, and Opinion. [Online] 26. 03 2009. [Citace: 25. 10 2009.] http://www.wmexperts.com/ie6-windows-mobile-65-hybrid. 19. Buchalcevová, Alena, Stanovská, Iva a Šimůnek, Milan. Základy softwarového inženýrství - základní témata. Praha : Vysoká škola ekonomická v Praze, 2002. 80-245-0346-8. 20. Buchalcevová, Alena. Metodiky vývoje a údržby informačních systémů. Praha : Grada Publishing, 2004. ISBN 80-247-1075-7. 21. Buchalcevová, Alena. Metodický rámec budování IS/ICT. Česká společnost pro systémovou integraci. [Online] 03 2004. [Citace: 07. 12 2009.] http://www.cssi.cz/cssi/system/files/all/SI_04_3_Buchalcevova.pdf. 22. Řepa, Václav. a kol. Analýza a návrh informačních systémů. Praha : EKOPRESS, 1999. 80-86119-13-0. 23. Řepa, Václav. Podnikové procesy Procesní řízení a modelování. Praha : Grada Publishing, a.s., 2007. ISBN 978-80-247-2252-8. 24. Novotný, Marek. Vývoj mobilních aplikací v .NET Compact Frameworku. Praha : Marek Novotný, 2008. 25. Kosek, Jiří. XML pro každého. Praha : Grada Publishing, spol. s r.o., 2000. ISBN 80-7169-860-1. 26. Microsoft Corporation. DataSet Class. MSDN. [Online] [Citace: 20. 10 2009.] http://msdn.microsoft.com/en-us/library/system.data.dataset.aspx. 27. Microsoft Corporation. SqlDataAdapter Class. MSDN. [Online] [Citace: 20. 10 2009.] http://msdn.microsoft.com/enus/library/system.data.sqlclient.sqldataadapter.aspx.
Vývoj na platformě Windows Mobile
Strana 100 z 112
Použité zdroje a literatura 28. Fexa, Martin. Využití technologie LINQ. Praha : Martin Fexa, 2008. 29. Microsoft Corporation. Microsoft SQL Server Compact 3.5. www.microsoft.com. [Online] [Citace: 20. 10 2010.] http://download.microsoft.com/download/A/4/7/A47B7B0E-976D-4F49-B15DF02ADE638EBE/Compact_Express_Comparison.doc. 30. Myriad Group AG. Myriad - Java Solutions - Jbed™ Advanced. Myriad. [Online] 2009. [Citace: 25. 10 2009.] http://www.myriadgroup.com/en/DeviceManufacturers/Java.aspx. 31. Mikudík, Radek. Windows Mobile 6.5 oficiálně. Od teď jim říkejte Windows phone. Mobil.cz. [Online] 8. 10 2009. [Citace: 02. 11 2009.] http://palmare.idnes.cz/windows-mobile-6-5-oficialne-od-ted-jim-rikejte-windowsphone-p4y-/tech-a-trendy.asp?c=A091006_201855_tech-a-trendy_ram. 32. Adobe Systems Incorporated. Adobe Flash Professional CS5: Applications for iPhone. Adobe Labs. [Online] 2009. [Citace: 08. 11 2009.] http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/. 33. Refsnes Data. Browser Statistics. w3cschool.com. [Online] 27. 11 2009. [Citace: 06. 12 2009.] http://www.w3schools.com/browsers/browsers_stats.asp. 34. Pour, Jan a Toman, Prokop. Podniková informatika: počítačové aplikace v podnikové a mezipodnikové praxi, technologie informačních systémů, řízení a rozvoj podnikové informatiky. Praha : Grada Publishing a.s, 2006. ISBN 80-2471-278-4.
Vývoj na platformě Windows Mobile
Strana 101 z 112
Terminologický slovník
12 Terminologický slovník Termín
OS (Operating system)
Pocket PC
PDA (Pocket Diary Assistent) Smartphone GPS (Global Positioning System) Bluetooth Debugování Image GUI (Graphic User Interface) IDE (Integrated Development Environment) ActiveSync
Scrollování Mapování Wi-fi
Vývoj na platformě Windows Mobile
Význam
operační systém, který ovládá dané zařízení na kterém běží a vytváří vrstvu mezi hardwarem a spouštěnými aplikacemi kapesní počítač s operačním systémem, může podporovat i GSM. Ovládá se pomocí dotykového displeje. Lze ho rozšířit o další aplikace běžících na provozovaném operačním systému zařízení typu Pocket PC s dotykovým displejem mobilní telefon s operačním systémem, rozšiřitelný o aplikace běžících na provozovaném operačním systému navigační modul pro sledování pozice bezdrátový přenos dat ladění programového kódu v psané aplikaci obraz disku/paměti zařízení s uloženým obsahem grafické prostředí aplikace, které slouží k jejímu ovládání integrované vývojové prostředí, pro tvorbu aplikací Aplikace pro připojení zařízení s Windows Mobile k počítači s operačním systémem Windows XP, Windows Server 2003, dříve i Windows 2000 posunování obrazovky, resp. jejího obsahu na displeji připojení, přivedení, tvorba cesty mezi 2 objekty bezdrátové připojení k síti
Strana 102 z 112
Přílohy
13 Přílohy 13.1 Příloha A Tabulka 13.1-1- Přehled licencí OpenNETCF (Smart Device Framework) Community Edition
Standard Edition
Professional Edition
Feature-packed class libraries Sample applications (with source code) Online documentation IntelliSense support in IDE code view WinForms Designer Support (CF 2.0 only) Integrated class library documentation Project Templates pre-configured with SDF references Quick access to online services from within the IDE Full source code for Class Libraries Unlimited access to support via online forums 2 email support incidents An additional 3 email support incidents Full source code for MSTest Unit & Integration tests Online access to all version (inc. source code) for 1 year
Zdroj: [http://www.opennetcf.com/CompactFramework/Products/SmartDeviceFramework/tabid/65/Default.aspx] Tabulka 13.1-2 - Tabulka znázorňující vývoj verzí .NET Compact Frameworku v čase
Pojmenování verze 1.0 RTM 1.0 SP1 1.0 SP2 1.0 SP3 2.0 RTM 2.0 SP1 2.0 SP2 3.5 Beta 1 3.5 Beta 2
Číslo verze
Datum vydání
1.0.2268.0 1.0.3111.0 1.0.3316.0 1.0.4292.0 2.0.5238.0 2.0.6129.0 2.0.7045.0 3.5.7066.0 3.5.7121.0
3.5 RTM
3.5.7283.0
3.5
3.5
k.r. 2002 Leden 2005 Říjen 2005 Červen 2006 Duben 2007 Květen 2007 Listopad 2007 Leden 2008
Vývoj na platformě Windows Mobile
Strana 103 z 112
Přílohy
13.2 Příloha B Lokalizované PocketPC image pro Microsoft Device Emulator V3
13.2.1 Windows Mobile 5 CHS - Chinese : Simplified (PRC) CHT - Chinese : Traditional (Taiwan) CSY - Czech: Czech Republic DAN - Danish: Denmark ELL - Greek: Greece ESN - Spanish: Spain (International Sort) FIN - Finnish: Finland FRA - French: France GER - German: Germany ITA - Italian: Italy JPN - Japanese: Japan KOR - Korean (Extended Wansung): Korea NLD - Dutch: Netherlands NOR - Norwegian: Norway (Bokmål) PLK - Polish: Poland PTB - Portuguese: Brazil PTG - Portuguese: Portugal RUS - Russian: Russia SVE - Swedish: Sweden
13.2.2 Windows Mobile 6.0 0404 CHT Chinese Traditional 0804 CHS Chinese Simplified 0405 CSY Czech 0406 DAN Danish 0413 NLD Dutch 0409 USA English 0407 GER German 0408 ELL Greek 040b FIN Finnish
Vývoj na platformě Windows Mobile
Strana 104 z 112
Přílohy 040c FRA French 040e HUN Hungarian 0410 ITA Italian 0411 JPN Japanese 0412 KOR Korean 0414 NOR Norwegian 0415 PLK Polish 0416 PTB Portuguese Brazil 0816 PTG Portuguese Portugal 0418 ROM Romanian 0419 RUS Russian 041b SKY Slovak 0c0a ESN Spanish 041d SVE Swedish 041f TRK Turkish
13.2.3 Windows Mobile 6.1 (6.1.4) 0409 USA English
13.2.4 Windows Mobile 6.5 0804 CHS Chinese Simplified 0409 USA English 0407 GER German 040c FRA French 0410 ITA Italian 0c0a ESN Spanish 0411 JPN Japanese
Vývoj na platformě Windows Mobile
Strana 105 z 112
Přílohy
13.3 Příloha C 13.3.1 Úvodní studie Tabulka 13.3-1 - Detailní popis fáze Úvodní studie
Cíl fáze Role
Zjistit a posoudit počáteční požadavky na vytvoření mobilní aplikace. Odpovědné činnosti
sumarizace počátečních požadavků,
vytvoření úvodní analýzy pro posouzení projektu.
Sponzor
posouzení úvodní analýzy/projektového záměru.
Vedoucí projektu
vytvoření hrubého projektového plánu (cena + čas)
Analytik
Dimenze Hardware Software Uživatelské rozhraní Data Vstupy
Co daná dimenze sleduje
navigace…).
požadavky na hlavní náplň aplikace.
požadavky na uživatelské rozhraní.
požadavky na data.
Co vstupuje do této fáze
Výstupy
požadavky na typy mobilních zařízení (PDA, Smartphone, GPS
potřeba/požadavek na vytvoření mobilní aplikace.
Co je výstupem fáze
rozhodnutí o projektovém záměru,
soupis prvotních požadavků (HW, SW, UI, Data),
nástin projektového plánu.
Vývoj na platformě Windows Mobile
Strana 106 z 112
Přílohy
13.3.2 Analýza Tabulka 13.3-2 - Detailní popis fáze Analýza
Cíl fáze Role Analytik
Získat detailnější popis požadavků a provést jejich analýzu. Odpovědné činnosti
podrobnější zjištění a analýza požadavků od zadavatele,
tvorba modelů případů užití (use case diagram).
rozpracování analýzy požadavků na data (jaká data a kde mají být umístěná, soupis entit a jejich datových atributů),
Datový specialista
tvorba konceptuálního datového modelu podle soupisu entit a datových atributů,
analýza potřebných technologií pro práci s daty, a zda jsou vůbec pro platformu dostupné.
Role
Specialista na
Odpovědné činnosti
zjištění a analýza mobilních zařízení, vlastněná zákazníkem,
analýza požadovaného HW z pohledu vyvíjené aplikace
mobilní technologie
(potřebné přídavné moduly pro mobilní zařízení),
možnosti SW, který běží na požadovaných mobilních zařízeních.
Programátor
tvorba konceptuálního modelu tříd.
Vedoucí projektu
tvorba projektového plánu.
Dimenze
Co daná dimenze sleduje
konkrétní typy mobilních zařízení,
jejich hardwarové konfigurace,
možnosti přídavných modulů.
Software
analýza softwarových možností.
Uživatelské
požadavky na uživatelské rozhraní,
rozhraní
způsob ovládání
Data
co se má ukládat a kam
Hardware
Vstupy
Co vstupuje do této fáze
úvodní studie,
soupis požadavků (HW, SW, UI, Data),
nástin projektového plánu
Vývoj na platformě Windows Mobile
Strana 107 z 112
Přílohy Výstupy
Co je výstupem fáze
detailní analýza požadavků (HW, SW, UI, Data),
konceptuální model (data / třídy),
model případů užití.
13.3.3 Návrh Tabulka 13.3-3 - Detailní popis fáze Návrh
Cíl fáze Role
Vytvoření modelů, které budou sloužit k provedení implementace. Stanovit technologie, pomocí kterých bude aplikace implementována. Odpovědné činnosti
Analytik
komunikace s vykonavateli ostatních rolí, aby nedošlo k chybnému pochopení analýz požadavků,
případné vypracování a upřesnění nově vzniklých otázek k požadavkům.
Datový specialista
Grafik
Programátor
tvorba datového modelu,
výběr vhodné technologie z analyzovaných technologií
návrh grafického konceptu pro UI na základě komunikace se specialistou na UI
tvorba kompletního diagramu tříd,
výběr vhodných technologií pro vývoj.
stanovení specifikace pro mobilní zařízení, na kterých má být vyvíjená aplikace provozována,
Specialista na
porovnání stávajících zařízení vlastněné zákazníkem,
mobilní
výběr vhodných zařízení pro potřeby vyvíjené aplikace,
technologie
konzultace s programátorem a datovým specialistou ohledně výběru potřebných technologií k zajištění implementace a funkčnosti aplikace.
Specialista na UI
Vedoucí projektu
návrh uživatelského rozhraní (rozlišení v případě nutnosti podle typů mobilních zařízení),
soupis požadavků na grafické prvky pro grafika.
řízení a kontrola průběhu projektu
Vývoj na platformě Windows Mobile
Strana 108 z 112
Přílohy Dimenze
Co daná dimenze sleduje
výběr vhodných mobilních zařízení
výběr vhodné technologie pro vývoj aplikace
model tříd
Uživatelské
návrh uživatelského rozhraní
rozhraní
požadavky na grafické objekty
výběr vhodné technologie pro práci s daty
datový model
Hardware Software
Data Vstupy
Výstupy
Co vstupuje do této fáze
detailní analýza požadavků (HW, SW, UI, Data),
konceptuální model (data / třídy),
model případů užití,
nově vzniklé požadavky.
Co je výstupem fáze
datový model,
model tříd,
specifikace mobilních zařízení pro provoz aplikace,
návrh uživatelského rozhraní,
vybrané technologie pro vývoj a pro práci s daty.
13.3.4 Implementace Tabulka 13.3-4 - Detailní popis fáze Implementace
Cíl fáze Role Datový specialista
Grafik
Vývoj samotné aplikace s využitím připravených modelů. Odpovědné činnosti
vytvoření struktury úložiště dat,
automatizace tvorby struktury úložiště dat.
tvorba grafických objektů podle požadavků,
sladění grafických objektů s návrhem UI ve spolupráci s rolí specialisty na UI.
Programátor
naprogramování jednotlivých funkcí,
implementace uživatelského rozhraní,
implementace práce s daty podle vybraných technologií,
průběžné ladění aplikace v emulátoru,
tvorba instalace aplikace na cílová zařízení,
Vývoj na platformě Windows Mobile
Strana 109 z 112
Přílohy Role
Odpovědné činnosti
Specialista na UI
tvorba dokumentace k programovému kódu.
tvorba finální podoby uživatelského rozhraní včetně zařazení grafických objektů ve spolupráci s rolí grafika,
kooperace s rolí programátor na implementaci kódu a uživatelského rozhraní
Vedoucí projektu Dimenze
řízení a kontrola průběhu projektu
Co daná dimenze sleduje
-
vytvoření aplikace,
ladění aplikace.
Uživatelské
vytvoření uživatelského rozhraní,
rozhraní
zapracování grafických objektů.
Data
implementace datového modelu.
Hardware Software
Vstupy
Výstupy
Co vstupuje do této fáze
datový model,
model tříd,
specifikace mobilních zařízení pro provoz aplikace,
návrh uživatelského rozhraní,
vybrané technologie pro vývoj a pro práci s daty.
Co je výstupem fáze
vyvinutá verze aplikace,
programový kód, grafické objekty pro pozdější úpravy,
dokumentace.
13.3.5 Testování Tabulka 13.3-5 - Detailní popis fáze Testování
Cíl fáze Role Datový specialista Sponzor
Otestování hotové aplikace na mobilních zařízeních, které mají sloužit k provozu vyvíjené aplikace. Odpovědné činnosti
kontrola funkčnosti datového modelu, konzistence dat.
dodání mobilních zařízení, které mají sloužit pro provoz vyvíjené aplikace.
Vývoj na platformě Windows Mobile
Strana 110 z 112
Přílohy Role
Tester
Odpovědné činnosti
testování aplikace v prostředí, ve kterém má být provozována,
testování aplikace podle připravených scénářů užití,
testování aplikace na neočekávané situace, nestandardní způsob ovládání, který není podle případů užití,
Vedoucí projektu Dimenze
vytvoření dokumentace o zjištěných odchylkách.
řízení a kontrola průběhu projektu.
Co daná dimenze sleduje
Hardware
funkčnost aplikace na požadovaném typu mobilních zařízení.
Software
funkčnost aplikace podle případů užití.
splnění požadavků na ovladatelnost aplikace.
splnění požadavků na práci s daty.
Uživatelské rozhraní Data Vstupy
Výstupy
Co vstupuje do této fáze
vyvinutá verze aplikace,
programový kód, grafické objekty pro pozdější úpravy,
dokumentace.
Co je výstupem fáze
finální verze vyvinuté aplikace připravená pro nasazení,
finální podoba programového kódu, grafických objektů,
finální podoba dokumentace.
13.3.6 Nasazení Tabulka 13.3-6 - Detailní popis fáze Nasazení
Cíl fáze Role Sponzor Specialista na mobilní
Nasazení aplikace do produkčního prostředí Odpovědné činnosti
převzetí aplikace a materiálů souvisejících s jejím vývojem.
nasazení aplikace na všechna předem vybraná mobilní zařízení.
technologie Vedoucí projektu
řízení, kontrola a ukončení průběhu projektu.
Vývoj na platformě Windows Mobile
Strana 111 z 112
Přílohy Dimenze
Co daná dimenze sleduje
Hardware
nasazení na všechna zařízení.
Software
nasazení aplikace do cílových zařízení.
-
nasazení na produkční úložiště dat.
Uživatelské rozhraní Data Vstupy
Výstupy
Co vstupuje do této fáze
finální verze vyvinuté aplikace připravená pro nasazení,
finální podoba programového kódu, grafických objektů,
finální podoba dokumentace.
Co je výstupem fáze
nasazená aplikace na všech vybraných cílových mobilních zařízeních,
dokumentace pro sponzora,
akceptace stranou sponzora, ukončený projekt vývoje mobilní aplikace pro platformu Windows Mobile.
Vývoj na platformě Windows Mobile
Strana 112 z 112