Fakulta elektrotechniky a informatiky
Katedra informatiky
Pr ˚
uvodce spole ˇcensk ´ymi ud ´alostmi
Social Event Guide
moje bakal´aˇrsk´a pr´ace, uvedli do spr´avn´eho pracovn´ıho rozpoloˇzen´ı. V neposledn´ı ˇradˇe bych r´ad podˇekoval i Mgr. Ing. Michalu Krumniklovi, kter ´y mi byl vstˇr´ıcn ´ym, ochotn ´ym a tolerantn´ım vedouc´ım t´eto pr´ace.
Tato pr´ace se zaob´ır´a operaˇcn´ım syst´emem Android a v ´yvojem aplikace pro zobrazov´an´ı informac´ı o spoleˇcensk´e ud´alosti na mobiln´ıch telefonech ˇci tabletech. Je rozdˇelena do dvou ˇc´ast´ı - mobiln´ı aplikace, jenˇz slouˇz´ı k prohl´ıˇzen´ı a pˇrihlaˇsov´an´ı k akc´ım a d´ale pak ˇc´ast administraˇcn´ı. Administraˇcn´ı ˇc´ast je psan´a ve scriptovac´ım jazyce PHP a bˇeˇz´ı na serveru.
Kl´ıˇcov ´a slova: Spoleˇcensk´a ud´alost, Java, Android, Agregace
Abstract
This bachelor thesis deals with Android Operating System and with a development of applications for mobile phones and tablets, which mapping information about different social events. This thesis is divided into two parts. First part deals with mobile applica-tions, which are used for viewing of and login to different events. Second part deals with stuff regarding administration steps. Administration part is written in PHP and runs on a server.
API – Application Programming Interface
APK – Android application package file
CSS – Cascading Style Sheets
ˇ
CS ´U – Cesk ´y statistick ´y ´uˇradˇ
ER – Entity-relationship
GPS – Global Positioning System
HTML – HyperText Markup Language
JDK – Java Development Kit
JSON – JavaScript Object Notation
NDK – Native Development Kit
MHD – Mˇestsk´a hromadn´a doprava
OHA – Open Handset Alliance
OS – Operaˇcn´ı syst´em
SIM – Subscriber identity module
PDA – Personal digital assistant
RIM – Research in Motion
SDK – Software development kit
SD – Secure Digital
SHA-1 – Secure hash algorithm
SQL – Structured Query Language
Obsah
1 Uvod´ 5
2 Operaˇcn´ı syst´em Android 6
2.1 Podobn´e aplikace zab ´yvaj´ıc´ı se agregac´ı ud´alost´ı . . . 8
2.2 Android a mapov´e podklady . . . 11
3 Anal ´yza 17 3.1 Datab´aze . . . 19
3.2 Server a administraˇcn´ı rozhran´ı . . . 19
3.3 Mobiln´ı aplikace . . . 21
4 Implementace 23 4.1 Rozdˇelen´ı zdrojov´eho k ´odu aplikace . . . 23
4.2 Vyuˇzit´ı knihovny twitter4j . . . 24
4.3 Probl´emy pˇri implementaci . . . 24
4.4 Server . . . 28
5 Testov´an´ı 29 5.1 Testov´an´ı na re´aln ´ych zaˇr´ızen´ıch . . . 29
6 Z´avˇer 30
7 Reference 31
Pˇr´ılohy 31
A Uk´azky uˇzivatelsk´eho rozhrann´ı 32
Seznam tabulek
1 Procentu´aln´ı zastoupen´ı operaˇcn´ıch syst´emu v ˇCesk´e republice . . . 6 2 Procentu´aln´ı zastoupen´ı verz´ı Android ve svˇetˇe na zaˇc´atku dubna 2013.
Verze se zastoupen´ım menˇs´ım neˇz 0.1% zde nejsou zobrazeny. [4] . . . 7 3 Srovn´an´ı aplikac´ı . . . 15 4 Typy zaˇr´ızen´ı a jejich verze a rozliˇsen´ı displeje . . . 29
Seznam obr ´azk ˚
u
1 Uk´azka aplikace All Events in City . . . 14
2 Uk´azka aplikace Bandsintown . . . 14
3 Uk´azka aplikace eventseekr . . . 14
4 Uk´azka aplikace Festivaly a koncerty . . . 14
5 Uk´azka mapy Google Maps . . . 16
6 Uk´azka mapy Mapsforge . . . 16
7 N´avrh datab´aze . . . 20
8 Tˇr´ıdn´ı diagram . . . 22
9 Uk´azka aplikace Social Event Guide, Samsung Galaxy Tab 2 10.1, v ´ypis akc´ı 32 10 Uk´azka aplikace Social Event Guide, Samsung Galaxy Tab 2 10.1, detailnˇejˇs´ı informace . . . 32
11 Uk´azka aplikace Social Event Guide, LG P500, ´uvodn´ı obrazovka . . . 33
12 Uk´azka aplikace Social Event Guide, LG P500, v ´ypis ud´alost´ı . . . 33
13 Uk´azka aplikace Social Event Guide, LG P500, detailnˇejˇs´ı informace . . . . 33
Seznam v ´ypis ˚
u zdrojov ´eho k ´
odu
1 R´adek v Android Manifestu . . . .ˇ 11
2 XML layout pro Mapov´e podklady Google . . . 12
3 Uk´azka v ´ybˇerov´eho pole . . . 25 4 Uk´azka inicializace z´aloˇzky . . . 26
1
Uvod
´
Tato bakal´aˇrsk´a pr´ace vznikla na z´akladˇe nedostatku kvalitn´ıch ˇcesk ´ych aplikac´ı na trhu, kter´e se zab ´yvaj´ı agregac´ı spoleˇcensk ´ych ˇci podobn ´ych ud´alost´ı. S´am autor t´eto pr´ace je organiz´atorem spoleˇcensk ´ych akc´ı, u kter ´ych by se vlastn´ı mobiln´ı aplikace uplat-nila a ˇz´adn ´y z dosud nab´ızen ´ych produkt ˚u se nejevil jako adekv´atn´ı. Po d ˚ukladn´em prozkoum´an´ı konkurenˇcn´ıch aplikac´ı byla vytvoˇrena koncepce agreg´atu spoleˇcensk ´ych ud´alost´ı, kter´e by mˇely spoleˇcnou aplikaci, avˇsak autoˇri jednotliv ´ych akc´ı by si tyto sami mohli stylizovat a dod´avat potˇrebn´e informace.
Po nˇekolika debat´ach s lidmi, kteˇr´ı se pohybuj´ı na poli organizov´an´ı r ˚uzn ´ych her ˇci kulturn´ıch ud´alost´ı, autor nabyl dojmu, ˇze by tito organiz´atoˇri uv´ıtali aplikaci, ve kter´e by mohli prezentovat svou ˇcinnost.
C´ılem aplikace je nab´ıdnout tˇemto organiz´ator ˚um prostor k vlastn´ı propagaci. Z po-hledu uˇzivatele m´a pak aplikace slouˇzit jako kompletn´ı zdroj informac´ı, kter´e budou velmi snadno dostupn´e. Uˇzivatel se tak bude moci mj. dozvˇedˇet, kdy akce zaˇc´ın´a, kde se uskuteˇcn´ı, kolik zaplat´ı za vstupn´e, ˇci z´ıskat kontakt na poˇradatele. Organiz´ator pak bude m´ıt moˇznost skrze aplikaci vidˇet, kolik lid´ı se na danou akci pˇrihl´asilo. Dalˇs´ı moˇznost´ı v tomto produktu bude vyuˇzit´ı sluˇzby Twitter, kter´a bude urˇcena pˇredevˇs´ım organiz´ator ˚um ke komunikaci s uˇzivateli. Samozˇrejmost´ı je administraˇcn´ı rozhran´ı pro kaˇzd´eho orga-niz´atora, ke kter´emu se bude moci pˇristupovat skrze webov´e str´anky.
V t´eto bakal´aˇrsk´e pr´aci se nach´az´ı pomysln´e tˇri ˇc´asti. Prvn´ı ˇc´ast je ´uvod do syst´emu Android - pouˇz´ıv´an´ı map, vyuˇzit´ı knihovny twitter4j, d´ale pak srovn´an´ı aplikac´ı na trhu. Druh´a ˇc´ast se vˇenuje aplikaci samotn´e. T´e se vˇenuj´ı kapitoly 3 a 4. Prvn´ı z nich je Anal ´yza, v kter´e se definuje funkcionalita aplikace, po n´ı n´asleduje kapitola Implementace. V po-sledn´ı ˇc´asti je pak pops´ano testov´an´ı aplikace a z´avˇereˇcn´e zhodnocen´ı.
2
Opera ˇcn´ı syst ´em Android
21. stolet´ı je dobou informaˇcn´ıch technologi´ı a pohybu. Bylo ot´azkou ˇcasu, kdy se tyto dva trendy zaˇcnou sluˇcovat dohromady a vznik nejr ˚uznˇejˇs´ıch mobiln´ıch pˇr´ıstroj ˚u byl pak zcela na m´ıstˇe. Jmenujme napˇr´ıklad mobiln´ı telefony, chytr´e telefony (smartphony), tablety, notebooky, GPS pˇrij´ımaˇce a dalˇs´ı. Tento segment trhu je v souˇcasn´e dobˇe na vze-stupu, zvl´aˇst’ˇe pak v oblasti mobiln´ıch technologi´ı. T´emˇeˇr kaˇzd ´y obˇcan ˇCesk´e republiky (d´ale jen ˇCR) vlastn´ı mobiln´ı telefon - dle ˇCesk´eho statistick´eho ´uˇradu bylo v roce 2011 v
ˇ
CR aktivn´ıch SIM karet na 14 215 000 kus ˚u - to znamen´a 135 SIM karet na 100 obyvatel. D´ale pak dle ˇCS ´U ve 2. ˇctvrtlet´ı 2011 pouˇz´ıvalo mobiln´ı telefon 93,9% obyvatel ˇCR [1]. Na z´akladˇe v ´yˇse zm´ınˇen ´ych informac´ı se s urˇcitou jistotou d´a pˇredpokl´adat, ˇze mnoˇzstv´ı potenci´aln´ıch z´akazn´ık ˚u, kteˇr´ı by mohli projevit z´ajem o naˇsi aplikaci, je skuteˇcnˇe velk´e. Tato bakal´aˇrsk´a pr´ace se soustˇred´ı na operaˇcn´ı syst´em (d´ale jen OS) Android a jeho ekosyst´em. Pokud se opˇet kr´atce odk´aˇzeme k trhu v ˇCR, pak je potˇreba zm´ınit, ˇze An-droid nen´ı jedin ´ym dostupn ´ym OS v mobiln´ıch telefonech. Vedle AnAn-droidu se m ˚uˇzeme setkat i s n´asleduj´ıc´ımi OS: iOS od spoleˇcnosti Apple, SymbianOS od spoleˇcnosti Nokia, BlackBerry od spoleˇcnosti RIM nebo Windows Phone od spoleˇcnosti Microsoft. Existuj´ı i jin´e OS, nicm´enˇe jejich procentu´aln´ı zastoupen´ı na ˇcesk´em trhu je minim´aln´ı a s ohle-dem na t´ema t´eto pr´ace nen´ı tˇreba se s nimi bl´ıˇze seznamovat. Pro lepˇs´ı pˇrehlednost pro-centu´aln´ıho zastoupen´ı nejvˇetˇs´ıch konkurent ˚u OS Android uv´ad´ıme n´asleduj´ıc´ı tabulku.
Statistiky byly poˇr´ızeny z webustatcounter.com[2].
Operaˇcn´ı syst´em Pod´ıl trhu v ˇCR Bˇrezen 2012 Pod´ıl trhu v ˇCR Bˇrezen 2013
Android 45.33% 63,07%
iOS 21.53% 17.47%
Symbian0S 19.24% 7.28%
BlackBerry -
-Windows Phone 0.95% 2.43%
Tabulka 1: Procentu´aln´ı zastoupen´ı operaˇcn´ıch syst´emu v ˇCesk´e republice
V tabulce 1 jasnˇe vid´ıme, ˇze OS Android m´a sp´ıˇse vzestupnou tendenci. Data pro Blackberry nejsou dostupn´a, coˇz je zp ˚usobeno t´ım, ˇze ve srovn´an´ı se zahraniˇc´ım nem´a tento OS v ˇCR takov´e zastoupen´ı. Pro naˇsi pr´aci byla zvolena platforma Android, kter´a je mezi obˇcany ˇCR st´ale v´ıce popul´arnˇejˇs´ı.
Android je nejen operaˇcn´ım syst´emem, ale i otevˇrenou platformou zamˇeˇruj´ıc´ı se pˇrede-vˇs´ım na mobiln´ı zaˇr´ızen´ı (tablety, mobiln´ı telefony, PDA atd.). OS byl vyv´ıjen spoleˇcnost´ı Android Inc., kter´a byla zaloˇzena v roce 2003. Ta byla ovˇsem v roce 2005 odkoupena fir-mou Google Inc., kter´a pod veden´ım Andyho Rubina zaˇcala platformu d´ale rozv´ıjet a vydala nˇekolik patent ˚u.
V roce 2007 byla zaloˇzena Open Handset Alliance (d´ale jen OHA), kter´a sdruˇzuje v ´yrobce mobiln´ıch telefon ˚u, ˇcip ˚u ˇci mobiln´ıch aplikac´ı. Mezi nejvˇetˇs´ı spoleˇcnosti ve sdru-skladeˇzen´ı patˇr´ı napˇr. Google, HTC, Intel, NVIDIA, Qualcomm, Samsung. OHA zastˇreˇsuje
v ´yvoj otevˇren ´ych standard ˚u pro mobiln´ı zaˇr´ızen´ı. K tomuto projektu se nepˇridala firma Apple a Nokia.
Prvn´ı verze Androidu (verze 1.0) byla pˇredstavena 23. z´aˇr´ı 2008 a v ´yvoj´aˇri se tak mohli zaˇc´ıt bl´ıˇze seznamovat s touto platformou. Prvn´ım telefonem s OS Android se stal T-Mobile G1 (HTC Dream), kter ´y nab´ızel mimo jin´e i GPS navigaci, 3.1Mpx fotoapar´at ˇci QWERTY kl´avesnici. 22. ˇr´ıjna byl spuˇstˇen Android Market, na kter´em bylo k dispozici pˇribliˇznˇe 30 aplikac´ı. Dalˇs´ı ud´alost´ı v roce 2008 bylo uvolnˇen´ı zdrojov´eho k ´odu Androidu jako open-source. Postupem ˇcasu vyd´avala spoleˇcnost Google aktualizace syst´emu. Mezi nejd ˚uleˇzitˇejˇs´ı patˇrily verze 1.6, 2.3 a 4.0.3.
K dneˇsn´ımu datu je k dispozici verze 4.2.2. V´ıce informac´ı poskytne n´asleduj´ıc´ı ta-bulka 2
Verze K ´odov´e oznaˇcen´ı API Pod´ıl ve svˇetˇe
1.6 Donut 4 0.1% 2.1 Eclair 7 1.7% 2.2 Froyo 8 4.0% 2.3 - 2.3.2 Gingerbread 9 0.1% 2.3.3 - 2.3.7 10 39.7% 3.2 Honeycomb 13 0.2%
4.0.3 - 4.0.4 Ice Cream Sandwich 15 29.3%
4.1.x
Jelly Bean 16 23.0%
4.2.x 17 2.0%
Tabulka 2: Procentu´aln´ı zastoupen´ı verz´ı Android ve svˇetˇe na zaˇc´atku dubna 2013. Verze se zastoupen´ım menˇs´ım neˇz 0.1% zde nejsou zobrazeny. [4]
Z tabulky 2 lze vyˇc´ıst, ˇze ve svˇetˇe jsou v nejvˇetˇs´ı m´ıˇre zastoupeny tˇri verze: 2.3.3 -2.3.7 (39,7%), Ice Cream Sandwich (29.3%) a nejnovˇejˇs´ı Jelly Bean (23.0%). Tento stav je d´an t´ım, ˇze v ´yrobci telefon ˚u neupdatuj´ı operaˇcn´ı syst´em (at’ je to nemoˇznost´ı hardwaru telefonu, marketingov ´y tah, aby si uˇzivatel koupil nov ´y telefon s novˇejˇs´ım syst´emem, nebo jin´a varianta). Roztˇr´ıˇstˇenost syst´emu Android byla a st´ale je kritizov´ana zejm´ena po uveden´ı verze Honeycomb, kdy se vˇetev v ´yvoje rozdˇelila na dvˇe ˇc´asti - pro mobily a pro tablety. Tuto skuteˇcnost ovˇsem napravila verze Ice Cream Sandwich. Update byl pˇr´ıstupn ´y jak mobiln´ım telefon ˚um, tak tablet ˚um.
V ´yvoj´aˇri aplikac´ı se pot ´ykaj´ı s dilematy, zda maj´ı sv´e aplikace stavˇet na API 8, coˇz by pot´e uˇzivatel ˚um umoˇznilo nainstalovat dan´e produkty na t´emˇeˇr 97% dostupn ´ych zaˇr´ızen´ı, ˇci zda vyuˇz´ıt API 15 a vyˇsˇs´ı a vyuˇz´ıvat tak vˇsech moˇznost´ı, kter´e nab´ız´ı. Apli-kace
”Social Event Guide“, kter´a je pˇredmˇetem t´eto bakal´aˇrsk´e pr´ace, vyuˇz´ıv´a API 8, aby i uˇzivatel´e starˇs´ıch telefon ˚u mohli tuto aplikaci pouˇz´ıvat, coˇz ovˇsem mˇelo za n´asledek nemoˇznost vyuˇz´ıt grafick´a vylepˇsen´ı, kter´a zvyˇsuj´ı uˇzivatelskou pˇr´ıvˇetivost aplikace.
2.1 Podobn ´e aplikace zab ´yvaj´ıc´ı se agregac´ı ud ´alost´ı
Na Google play existuje cel´a ˇrada aplikac´ı, kter´e se zab ´yvaj´ı agregac´ı ud´alost´ı. V t´eto ka-pitole se bl´ıˇze sezn´am´ıme s nˇekter ´ymi z nich a s jejich funkcemi. Jako pˇr´ıklad uv´ad´ıme ˇcyˇri aplikace, kter´e zobrazuj´ı informace o kulturn´ıch a sportovn´ıch akc´ıch, festivalech a jin ´ych ud´alostech. Jedn´a se o zahraniˇcn´ı produkty, z toho jeden poch´az´ı od slovensk ´ych v ´yvoj´aˇr ˚u. Funkcionalita vybran ´ych aplikac´ı je rozd´ıln´a a ned´a se tedy na z´akladˇe nˇejak´eho srovn´av´an´ı urˇcit, kter´a z nich m´a nejv´ıce pozitiv. V subkapitol´ach se vˇzdy podrobnˇeji sezn´am´ıme s jednotliv ´ymi produkty. Na zaˇc´atku jsou vˇzdy heslovitˇe uvedeny lokace, kde se dan´a aplikace nach´az´ı, a z´arove ˇn hodnocen´ı uˇzivatel ˚u.
2.1.1 Festivaly a koncerty • Web:1
• Google play:2
• Google play hodnocen´ı :4.7/5
Tato aplikace m´a na Google play nejvyˇsˇs´ı hodnocen´ı ze vˇsech. Poch´az´ı od slovensk ´ych v ´yvoj´aˇr ˚u a zamˇeˇruje se na agregaci akc´ı v ˇCesk´e a Slovensk´e republice. Uˇzivatel zde m´a moˇznost prohl´ednout si velk´e mnoˇzstv´ı spoleˇcensk ´ych ud´alost´ı, nicm´enˇe jedn´a se o akce ˇcistˇe hudebn´ıho charakteru. Aplikace umoˇz ˇnuje offline prohl´ıˇzen´ı (pˇri startu je zkontro-lov´ano pˇripojen´ı a pokud je pˇr´ıtomn´e, st´ahne se aktu´aln´ı bal´ık dat z webu). Rovnˇeˇz je obsaˇzen kalend´aˇr ud´alost´ı, moˇznost pˇrid´av´an´ı do obl´ıben ´ych ˇci sd´ılen´ı vyuˇzit´ım sluˇzeb Twitter a Facebook (tato funkce ovˇsem nen´ı nativn´ı, vyuˇz´ıv´a jinou aplikaci). Uˇzivatel si tak´e m ˚uˇze pˇridat ud´alost do vlastn´ıho kalend´aˇre, avˇsak tato funkcionalita pˇri naˇsem tes-tov´an´ı nebyla k dispozici (Chybov´a hl´aˇska ’Nem´aˇs kalendar app!’). Aplikace d´ale posky-tuje informace o programu, ´uˇcinkuj´ıc´ıch, kontakt na poˇradatele a mapu s jedn´ım bodem, do kter´eho lze navigovat (opˇet pouˇzit´ım extern´ım aplikace).
Jako jedin´a z testovan ´ych aplikac´ı je tato nab´ızena v ˇceˇstinˇe, aˇckoliv m´ısty byla ˇceˇstina nahrazena jin ´ym ciz´ım jazykem.
Funkcionalitou je aplikace na velmi dobr´e ´urovni, nicm´enˇe po grafick´e str´ance lze nal´ezt nˇekolik v ´yrazn ´ych negativ, coˇz m ˚uˇze m´ıt za n´asledek, ˇze uˇzivatel o aplikaci ztrat´ı ˇci v ˚ubec neprojev´ı z´ajem. K negativ ˚um lze pˇriˇradit mj. i absenci galerie obr´azk ˚u, mapy s v´ıce body ˇci chybˇej´ıc´ı nativn´ı propojen´ı se sluˇzbami Twitter a Facebook.
2.1.2 All Events • Web:3 • Google play:4 1http://manufakturapps.sk/festcon.html 2https://play.google.com/store/apps/details?id=manufakturapps.sk.Festivaly 3http://allevents.in/ 4https://play.google.com/store/apps/details?id=com.amitech.allevents
• Google play hodnocen´ı :4/5
Aplikace All Events m´a svou strukturou a sv ´ymi funkcemi nejbl´ıˇze aplikaci
”Social Event Guide“, kter´a je pˇredmˇetem t´eto bakal´aˇrsk´e pr´ace. Jsou zde zobrazov´any vˇsechny druhy spoleˇcensk ´ych ud´alost´ı - sportovn´ı akce, hudebn´ı festivaly, r ˚uzn´e v ´ystavy etc. Aplikace m´a na Google Play pr´avem vysok´e hodnocen´ı. Jako d ˚uvod pro tak vysok´e hodnocen´ı uved’me napˇr´ıklad uˇzivatelsky velmi pˇr´ıjemn´e prostˇred´ı a snadnou dostupnost vˇsech d ˚uleˇzit ´ych informac´ı, kter´e se objev´ı hned na prvn´ı str´ance po v ´ybˇeru ze seznamu jed-notliv ´ych ud´alost´ı.
Na prvn´ı obrazovce aplikace se nach´az´ı seznam mˇest, kter´a jsou uˇzivateli nejbl´ıˇze. Po vybr´an´ı konkr´etn´ıho mˇesta se zobraz´ı dalˇs´ı seznam - seznam ud´alost´ı. Ty se daj´ı v seznamu filtrovat dle ˇcasu (interval dvou dat). Ud´alost lze sd´ılet, pˇrid´avat do kalend´aˇre a uloˇzit do obl´ıben ´ych, coˇz ovˇsem vyˇzaduje pˇrihl´aˇsen´ı na Facebook. U ud´alosti je pˇr´ıtomn´a mapa, d´ıky kter´e lze skrze extern´ı aplikaci spustit navigaci, kter´a uˇzivatele navede na dan´e m´ısto.
Aplikace nenab´ız´ı mapu s v´ıce body, moˇznost offline prohl´ıˇzen´ı, okamˇzitou komuni-kaci mezi uˇzivateli, galerii obr´azk ˚u a ˇrazen´ı akc´ı podle jm´ena, vzd´alenosti a ˇcasu.
2.1.3 Bandsintown Concerts • Web:5
• Google play:6
• Google play hodnocen´ı :4.2/5
Tato aplikace se zamˇeˇruje na koncerty a ud´alosti hudebn´ıho charakteru a vyˇzaduje pˇrihl´aˇsen´ı pˇres s´ıt’ Facebook ˇci email. Po pˇrihl´aˇsen´ı je uˇzivatel dot´az´an na vyuˇz´ıv´an´ı nˇekter´e z n´asleduj´ıc´ıch sluˇzeb: Google play, Last.fm, Pandora. V zahraniˇc´ı Google play slouˇz´ı jako obchod pro zakoupen´ı hudebn´ıch skladeb ˇci vytvoˇren´ı seznamu skladeb uˇziva-tele. Last.fm je rozs´ahl´a datab´aze, d´ıky kter´e si uˇzivatel m ˚uˇze vytv´aˇret vlastn´ı seznam jiˇz poslechnut ´ych skladeb. Mezi dalˇs´ı funkce patˇr´ı napˇr. grafy urˇcuj´ıc´ı frekvenci poslechu jednotliv ´ych p´ısn´ı ˇci interpret ˚u, rovnˇeˇz jsou uˇzivateli automaticky nab´ızeni interpreti a hudebn´ı skupiny stejn´eho ˇci podobn´eho ˇz´anru. Pandora je pak internetov´e r´adio.
Aplikace Bandsintown Concerts po pˇrihl´aˇsen´ı do nˇekter´e ze sluˇzeb proskenuje uˇziva-tel ˚uv profil a z´ıskan´a data pak vyuˇzije k vytvoˇren´ı vlastn´ıho listu. Dalˇs´ı data jsou z´ısk´av´ana z SD karty, kde jsou vyhled´av´any r ˚uzn´e hudebn´ı skladby, kter´e uˇzivatel poslouch´a, a na z´akladˇe toho je pak vygenerov´an seznam interpret ˚u. Mezi jednotliv ´ymi interprety lze n´asledovnˇe vyhled´avat a na jejich profilu/str´ance se uˇzivateli zobraz´ı informace, zda-li jsou na turn´e a kter ´ymi mˇesty proj´ıˇzd´ı. Samotnou ud´alost pak lze zobrazit, je moˇzn´e se na ni pˇrihl´asit ˇci si zakoupit vstupenku. Uˇzivatel rovnˇeˇz m ˚uˇze sd´ılet akci na Twitteru ˇci Facebooku. Na str´ance konkr´etn´ı ud´alosti je pak k dispozici mapa, kter´a vˇsak nen´ı interaktivn´ı.
5http://www.bandsintown.com/
Aplikace nenab´ız´ı mapu s v´ıce body, moˇznost offline prohl´ıˇzen´ı, galerii obr´azk ˚u. Nab´ız´ı ˇrazen´ı podle vzd´alenosti (okruh od m´ısta uˇzivatele).
Pˇri testov´an´ı n´am aplikace nenab´ızela v okruhu 100 kilometr ˚u od Ostravy ˇz´adnou ud´alost a tud´ıˇz nen´ı jist´a jej´ı vyuˇzitelnost v ˇCesk´e republice. Nicm´enˇe i pˇres to m´a apli-kace kladn´a hodnocen´ı i od ˇcesk ´ych uˇzivatel ˚u.
2.1.4 eventseekr • Web:7
• Google play:8
• Google play hodnocen´ı :3.4/5
Na prvn´ı pohled zaujme Eventseekr zaj´ımav ´ym uˇzivatelsk ´ym prostˇred´ım. Aplikace je zamˇeˇrena pˇredevˇs´ım na hudebn´ı festivaly a koncerty. K dan´e ud´alosti m´a uˇzivatel pˇr´ıstup pˇres nˇekolik filtr ˚u (Koncert≫Koncert rockov ´y≫Seznam akc´ı≫Akce). Na hlavn´ı str´ance ud´alosti lze koupit l´ıstek (externˇe), pˇridat ji na Facebook ˇci naj´ıt nejbliˇzˇs´ı uby-tov´an´ı, moˇznost stravov´an´ı apod. Toto vyhled´av´an´ı vˇsak pˇri testov´an´ı nefungovalo. D´ale si uˇzivatel m ˚uˇze akci uloˇzit do obl´ıben ´ych, ˇc´ımˇz je n´aslednˇe zajiˇstˇena moˇznost prohl´ıˇzen´ı v offline reˇzimu. K dispozici je mapa s jedn´ım bodem.
Aplikace nevyˇzaduje explicitnˇe pˇrihl´aˇsen´ı, ale neust´ale se jej dovol´av´a (k s´ıti Face-book). Tento ponˇekud ruˇsiv ´y element m ˚uˇze m´ıt pak na uˇzivatele nepˇr´ıjemn ´y vliv. I pˇres prvn´ı zaujet´ı nep ˚usob´ı aplikace po grafick´e str´ance pˇr´ıjemnˇe a d´a se charakterizovat jako uˇzivatelsk ´y nepohodln´a. D´ale jsou postr´ad´any n´asleduj´ıc´ı funkce: mapa s v´ıce body, ga-lerie obr´azk ˚u, spojen´ı se sluˇzbou Twitter.
2.1.5 Srovn ´an´ı
I pˇres to, ˇze kaˇzd´a z aplikac´ı m´a jinou funkcionalitu, pokusme se je alespo ˇn v z´akladu po-rovnat. Vˇsechny aplikace jsou zamˇeˇreny na agregaci spoleˇcensk ´ych ud´alost´ı, a to pˇrede-vˇs´ım hudebn´ıch. Vˇsechny aplikace dobˇre pln´ı sv´e funkce, kter´e jsou od nich oˇcek´avany - nalezen´ı spoleˇcensk´e ud´alosti v okol´ı a n´asledn´e zobrazen´ı detailnˇejˇs´ıch informac´ı. Ni-cm´enˇe kaˇzd´a aplikace poj´ım´a tuto moˇznost jinak. Aplikace Bandsintown (viz kapitola 2.1.3) se zamˇeˇruje pˇredevˇs´ım na hudebn´ı interprety, kter´e uˇzivatel poslouch´a. Prim´arnˇe mu zobraz´ı ud´alosti, o kter´e by mohl projevit z´ajem (turn´e ˇci koncert obl´ıben´eho zpˇev´aka). To vˇse se odehr´av´a automaticky, ˇc´ımˇz se Bandsintown naprosto vymyk´a zb ´yvaj´ıc´ım tˇrem zm´ınˇen ´ym aplikac´ım.
Funkcionalita aplikac´ı je srovn´ana v tabulce 3 a n´ahled uˇzivatelsk´eho rozhran´ı je k dispozici v tabulce 1. Uˇzivatelsk´e rozhran´ı nebylo ve dvou pˇr´ıpadech vhodnˇe ˇreˇsen´e (ˇspatn´a volba pozad´ı, neadekv´atnˇe zvolen´e barvy). Aplikace All Events se s t´ımto probl´e-mem nepot ´ykala, nicm´enˇe u n´ı vyvstal probl´em s n´avrhem. Uˇzivatel si pˇri jej´ım pouˇz´ıv´an´ı nen´ı zcela jist ´y interakc´ı zobrazen ´ych ikonek, a to i v naˇsem pˇr´ıpadˇe, po delˇs´ım testov´an´ı.
7http://eventseeker.com/
Avˇsak i pˇres v ´yˇse zm´ınˇen´e nedostatky jsou aplikace pomˇernˇe kvalitn´ı a napˇr. v USA maj´ı mezi uˇzivateli velkou oblibu.
2.2 Android a mapov ´e podklady
Pˇri anal ´yze aplikace vyplynulo, ˇze naˇse aplikace bude vyuˇz´ıvat mapov´e podklady pro zobrazov´an´ı bod ˚u. Konkurenˇcn´ı aplikace takt´eˇz pouˇz´ıvaj´ı mapov´e podklady, ovˇsem pou-ze pro zobrazov´an´ı jedin´eho bodu, kter ´y typicky slouˇz´ı k urˇcen´ı m´ısta, kde se spoleˇcensk´a akce kon´a. V aplikaci
”Social Event Guide“ bude m´ıt organiz´ator moˇznost pˇriˇradit k jedn´e akci v´ıce bod ˚u, kter´e budou n´avˇstˇevn´ıkovi slouˇzit k lepˇs´ı orientaci. Bude tak m´ıt napˇr´ıklad moˇznost vidˇet, kde se nach´az´ı p ´odium, veˇrejn´e toalety, kde je moˇzno se pˇripojit na Wi-Fi a mnoho dalˇs´ıho. V dneˇsn´ı dobˇe si lze pro zobrazen´ı mapy v syst´emu Android vybrat z nˇekolika moˇznost´ı. My se v t´eto pr´aci bl´ıˇze sezn´am´ıme s projektem Mapsforge a s mapami od spoleˇcnosti Google.
2.2.1 Google Maps API
Google Maps API nepatˇr´ı do z´akladn´ı v ´ybavy Android SDK, je tedy nutn´e jej st´ahnout sa-mostatnˇe pouˇzit´ım Android SDK Manageru. Ten spravuje verze bal´ıˇck ˚u, kter´e m´a v ´yvoj´aˇr nainstalovan´e v poˇc´ıtaˇci a kter´e jsou k dispozici na internetu. Google Maps API je rozs´ahl ´y bal´ıˇcek se spoustou tˇr´ıd, kter´e jsou potˇreba pro v ´yvoj aplikace, kter´a m´a vyuˇz´ıvat ma-pov´e podklady od spoleˇcnosti Google. Bal´ıˇcek nab´ız´ı mnoho funkc´ı, jmenujme napˇr´ıklad v ´ypoˇcet vzd´alenosti dvou bod ˚u, kreslen´ı obrazc ˚u do mapy, informaci, zda je na dan´em m´ıstˇe k dispozici funkce Street View apod. Pokud chce v ´yvoj´aˇr pouˇz´ıvat toto API, mˇel by pˇred zapoˇcet´ım programov´an´ı postupovat n´asleduj´ıc´ım zp ˚usobem [7][8]:
1. Pˇri v ´yvoji aplikace, kter´a bude pouˇz´ıvat mapy od spoleˇcnosti Google, mus´ı v ´yvoj´aˇr st´ahnout bal´ıˇcek Google Maps API a pak do Android Manifestu dodat, ˇze vyuˇz´ıv´a t´eto knihovny (bal´ıˇcku). ˇR´adek se vkl´ad´a do deklarace aplikace.
<uses−library android:name=”com.google.android.maps” />
V ´ypis 1: ˇR´adek v Android Manifestu
2. Pro pouˇzit´ı Google Maps je potˇreba vygenerovat spr´avn ´y Google Maps API kl´ıˇc. Tento kl´ıˇc lze z´ıskat pomoc´ı tzv. Google Console API. K tomu v ´yvoj´aˇr potˇrebuje podpisov ´y kl´ıˇc a n´azev bal´ıˇcku aplikace. Toto je zaloˇzeno na kl´ıˇci, kter ´ym podepi-suje v ´yvoj´aˇr svoji aplikaci bˇehem v ´yvoje. V ´yvojov´e prostˇred´ı Eclipse automaticky tento kl´ıˇc vytv´aˇr´ı a pak jej pouˇz´ıv´a.
3. Kl´ıˇc vytvoˇren ´y pomoc´ı Eclipse lze nal´eztuserhome/.android/debug.keystore.
Google Console API vyˇzaduje SHA-1 kl´ıˇc, kter ´y vygenerujeme pomoc´ıkeytool
pˇr´ıkazu z JDK instalace. Pˇr´ıkaz m ˚uˇze vypadat napˇr´ıklad takto:
keytool -list -v -alias androiddebugkey -keystore
<path to debug keystore>debug.keystore -storepass android -keypass android
4. Pot´e n´asleduje registrace v Google APis Console nahttps://code.google.com/ apis/console/. K tomuto kroku je potˇreba ´uˇcet u spoleˇcnosti Google. Na dan´e
str´ance pod z´aloˇzkou Services je potˇreba aktivovat Google Maps Android
v2a n´aslednˇe zkop´ırovat SHA-1 v ´ysledek, kter´eho bude tˇreba pozdˇeji.
5. Dalˇs´ım krokem je vytvoˇren´ı Android kl´ıˇce pomoc´ı vygenerovan´eho SHA-1 k ´odu a n´azvu bal´ıku. K ´od a n´azev je tˇreba oddˇelit stˇredn´ıkem - napˇr.
EE:E5:E3:E4:C3:A0:42:F3:C3:1E:57:F9:5D:DC:A3:98:49:CF:B4:8C; com.socialeventsa pak pouze kliknout naCreate. T´ım se vytvoˇr´ı apiKey. 6. Tento apiKey vloˇz´ıme do XML layoutu, kter ´y vyuˇz´ıv´a mapov ´ych podklad ˚u. 5
<?xml version=”1.0” encoding=”utf−8”?> <com.google.android.maps.MapView
xmlns:android=”http: // schemas.android.com/apk/res/android” android:id=”@+id/mapview”
android:layout width=” fill parent ” android:layout height=” fill parent ” android:clickable =”true”
android:apiKey=”ziskanyApiKey” />
V ´ypis 2: XML layout pro Mapov´e podklady Google
Pokud vˇse probˇehlo v poˇr´adku, mˇel by se po spuˇsten´ı aplikace na displeji uk´azat obr´azek podobn ´y 5.
Google rozv´ıj´ı sv´e mapy rychl ´ym tempem a nejen, ˇze je neust´ale zdokonaluje, ale pˇrid´av´a i nov´e moˇznosti. Mezi nejzaj´ımavˇejˇs´ı patˇr´ı napˇr. Street View, Google Moon, Go-ogle Sky nebo My Maps. V n´asleduj´ıc´ıch ˇctyˇrech bodech se zevrubnˇe sezn´am´ıme s v ´yˇse zm´ınˇen ´ymi moˇznostmi Google Maps. Aplikace
”Social Event Guide“ sice tyto moˇznosti nevyuˇz´ıv´a, nicm´enˇe pro ucelenˇejˇs´ı v ´yklad o Google Maps uv´ad´ıme alespo ˇn struˇcnou charakteristiku.
1. Google Street View- v roce 2007 se v Google Maps objevila nov´a funkcionalita, kter´a uˇzivateli nab´ız´ı moˇznost si na vybran ´ych m´ıstech prohl´ıˇzet 360◦ panorama-tick´e sn´ımky. D´ıky t´eto funkci m´a uˇzivatel moˇznost prohl´ednout si m´ısto stejnˇe dobˇre, jako by se na nˇem s´am nach´azel.
2. Google Moon- v souvislosti s v ´yroˇc´ım dosednut´ı Apolla 11 na mˇes´ıc zveˇrejnil Go-ogle webovou adresu integrovanou do GoGo-ogle Maps sluˇzby. D´ıky t´eto str´ance si uˇzivatel m ˚uˇze prohl´ednout body, kde modul pˇrist´al.
3. Google Sky- jedn´a se o aplikaci, kter´a d´av´a uˇzivateli moˇznost sledovat noˇcn´ı ob-lohu, na kter´e pak m ˚uˇze vyhled´avat hvˇezdn´e objekty (napˇr. souhvˇezd´ı).
4. Google My Maps- tato funkcionalita dovoluje uˇzivateli vytvoˇrit si vlastn´ı mapu, na kter´e m ˚uˇze vytv´aˇret body, polygony, cesty aj. Tuto mapu pak m ˚uˇze sd´ılet s ostatn´ımi uˇzivateli.
2.2.2 Mapsforge
Vedle Google Maps API je projekt Mapsforge dalˇs´ı moˇznost´ı, jak lze na OS Android zob-razovat mapu. Tento projekt vyuˇz´ıv´a OpenStreetMap, coˇz jsou volnˇe dostupn´e mapov´e podklady pro vˇsechny platformy. Podotknˇeme, ˇze se jedn´a o vektorov´e mapy. Hlavn´ım rozd´ılem pˇri v ´yvoji aplikace je, ˇze Mapsforge mapy si lze st´ahnout do zaˇr´ızen´ı na SD kartu a mohou tak b ´yt vyuˇz´ıv´any i offline. Pouˇzit´ı je jednoduch´e – staˇc´ı si z webov ´ych str´anek projektu st´ahnout knihovnu, a tu n´aslednˇe nahr´at do projektu aplikace. Jedinou podm´ınkou je uloˇzen´ı mapov ´ych podklad ˚u na SD kartu zaˇr´ızen´ı. V ´yvoj´aˇr ˚um pak Maps-forge nab´ız´ı:
• API srovnateln´e s Google API Add-On
• API na pˇrekreslov´an´ı mapov ´ych podklad ˚u (rozumˇejme t´ım kreslen´ı obrazc ˚u a bod ˚u do mapy)
• malou knihovnu (cca 300 KB)
• upravov´an´ı vzhledu pomoc´ı XML
• n´astroje pro vytvoˇren´ı vlastn´ıch mapov ´ych soubor ˚u
Jak jiˇz bylo zm´ınˇeno, tak nejvˇetˇs´ı rozd´ıl mezi Google Maps a Mapsforge spoˇc´ıv´a v mapov ´ych podkladech, kter´e jsou v pˇr´ıpadˇe Mapsforge uloˇzeny na SD kartˇe. Mapov´e
podklady lze st´ahnout z adresyhttp://ftp.mapsforge.org/maps/europe/.
Veli-kost mapy ˇCR je pˇribliˇznˇe 270MB. V implementaci lze pak naj´ıt p´ar odliˇsnost´ı pouˇzit´ı Mapsforge od Google Maps, i pˇresto ˇze se autoˇri Mapsforge snaˇzili, aby struktura tˇr´ıd a rozhran´ı z ˚ustala stejn´a jako u Google Maps, d´ıky ˇcemuˇz je v ´yvoj aplikace co nejjed-noduˇsˇs´ı a v ´yvoj´aˇr tak nemus´ı kv ˚uli zmˇenˇe mapov´eho podkladu pˇrepisovat cel ´y pro-gram. Pro jasnˇejˇs´ı pˇredstavu uv´ad´ıme v n´asleduj´ıc´ıch bodech v ´yˇse zm´ınˇen´e odliˇsnosti mezi pouˇzit´ım Google Maps a Mapsforge.
• cestu k importu je tˇreba zmˇenit zcom.google.android.maps
naorg.mapsforge.android.maps
• nen´ı tˇreba nic vkl´adat doAndroidManifest.xml
• ˇz´adn´a registrace nen´ı vyˇzadov´ana; MapView nem´a paramater pro API key
• MapView vyˇzaduje cestu pro nalezen´ı mapov ´ych podklad ˚u pomoc´ı metody
setMapFile(File)
• do souboru AndroidManifest.xmlje tˇreba dopsat povolen´ı pro zapisov´an´ı na
Obr´azek 1: Uk´azka aplikace All Events in City
Obr´azek 2: Uk´azka aplikace Bandsintown
Obr´azek 3: Uk´azka aplikace eventseekr
Obr´azek 4: Uk´azka aplikace Festivaly a koncerty
Aplikace Tˇr´ıdˇen´ı Vyhled´av´an´ı Offline prohl´ıˇzen´ı Mapa akce Mapa akc´ı Sd´ılen´ı Galerie Nutnost registrace Pˇrihlaˇsov´an´ı na akce Vloˇzen´ı akce do kalend´aˇre
Bandsintown NE ANO NE 1 bod ANO ANO NE Facebook/Email ANO NE eventseekr NE ANO ANO 1 bod NE NE NE NE NE NE Festivaly a koncerty ANO ANO ANO 1 bod ANO ANO 9 NE NE NE NE 10 All Events in City ANO ANO NE 1 bod NE ANO NE NE p ˇres Facebook ANO T abulka 3: Sr ovn ´an ´ı aplikac ´ı 9Nenab ´ız ´ı nativn ˇe. Nab ´ız ´ı jen odkaz na webov ´e str ´anky slu ˇzeb Facebook a T witter 10 P ˇri testov ´an ´ı se nepoda ˇrilo toto vyzkou ˇset -aplikace vypsala chybu ’Nem ´a ˇs kalendar app!’
Obr´azek 5: Uk´azka mapy Go-ogle Maps
Obr´azek 6: Uk´azka mapy Mapsforge
3
Anal ´yza
Tato kapitola se vˇenuje anal ´yze programu
”Social Event Guide“ / Pr ˚uvodce spoleˇcensk ´y-mi ud´alost´y-mi. C´ılem je podat ˇcten´aˇri informace o aspektech, kter´e bude v ´ysledn´a aplikace obsahovat a tak´e o prostˇredc´ıch, kter´e budou pouˇzity pro v ´yvoj. Na z´akladˇe pˇredchoz´ı kapitoly, v n´ıˇz jsme podali struˇcn ´y pˇrehled podobn ´ych aplikac´ı, jsme stanovili hlavn´ı body, kter´e mus´ı naˇse aplikace obsahovat. Tyto body zahrnuj´ı jak funkcionalitu, tak i grafick´e zpracov´an´ı.
1. Offline reˇzim
Jedn´ım z d ˚uleˇzit ´ych poˇzadavk ˚u kladen ´ych na aplikaci je funkce offline reˇzimu. I pˇresto, ˇze ˇzijeme v dobˇe, kdy se pˇripojen´ı k internetu st´av´a t´emˇeˇr samozˇrejmost´ı, st´ale existuj´ı uˇzivatel´e, kteˇr´ı nevyuˇz´ıvaj´ı moˇznosti mobiln´ıho internetu, poskytova-nou jejich telefonn´ımi oper´atory. Pokud se takov ´y uˇzivatel pak nenach´az´ı v bl´ızkosti otevˇren´e Wi-Fi s´ıtˇe, bez offline reˇzimu nem´a moˇznost prohl´ıˇzen´ı jednotliv ´ych ud´alo-st´ı. Proto je aplikace navrˇzena tak, ˇze obl´ıben´e akce jsou trvale uloˇzeny v telefonu uˇzivatele.
2. Mapa- moˇznost zobrazov´an´ı v´ıce bod ˚u na mapˇe Tato funkce m´a potenci´al pˇrin´est aplikaci
”Social Event Guide“ pozitivn´ı ohlasy. Zat´ımco testovan´e aplikace (viz kapitola 2.1) nab´ızej´ı na mapˇe pouze jeden bod (um´ıstˇen´ı akce),
”Social Event Guide“ zobraz´ı na mapˇe bod ˚u daleko v´ıce. Orga-niz´ator m ˚uˇze navolit napˇr. zobrazen´ı um´ıstˇen´ı v´ıce p ´odi´ı, veˇrejn ´ych WC, nejbliˇzˇs´ı restaurace ˇci zast´avek MHD. D´ıky t´eto funkci se uˇzivatel m´a ˇsanci daleko l´epe zori-entovat, coˇz se samozˇrejmˇe m ˚uˇze odrazit v celkov´em hodnocen´ı dan´e spoleˇcensk´e ud´alosti. Pro lepˇs´ı pochopen´ı si uved’me pˇr´ıklad11.
3. Sd´ılen´ı
V souˇcasnosti je sd´ılen´ı ned´ılnou souˇc´ast´ı kaˇzd´e soci´aln´ı s´ıtˇe, ˇci aplikace, kter´a se soci´aln´ımi s´ıtˇemi spolupracuje. Tato funkce znaˇcnˇe urychluje a zjednoduˇsuje ko-munikaci, a pr´avˇe z tohoto d ˚uvodu je v
”Social Event Guide“ moˇzno okamˇzitˇe d´at vˇsem pˇr´atel ˚um a ostatn´ım lidem, kteˇr´ı se na akci chystaj´ı, vˇedˇet, jak´e ud´alosti se uˇzivatel ´uˇcastn´ı.
4. Pˇrihlaˇsov´an´ı na akce
Pˇri vytvoˇren´ı ud´alosti m ˚uˇze m´ıt organiz´ator a uˇzivatel pˇrehled, kolik lid´ı se akce z ´uˇcastn´ı. Stejnˇe jako v pˇr´ıpadˇe sd´ılen´ı je i tato funkce velmi pˇr´ınosn´a. Uˇzivatel bude m´ıt vˇzdy vˇetˇs´ı tendence z ´uˇcastnit se akce s vyˇsˇs´ım poˇctem n´avˇstˇevn´ık ˚u. Tato funkce je pro uˇzivatele pomocn´ıkem pˇri rozhodov´an´ı, kterou spoleˇcenskou ud´alost navˇst´ıvit. Organiz´ator pak na z´akladˇe informac´ı o pl´anovan´e ´uˇcasti m ˚uˇze zlepˇsovat a upravovat podm´ınky pro kon´an´ı akce (napˇr. zvˇetˇsen´ı kapacity), pˇr´ıpadnˇe m´a moˇznost vyuˇz´ıt tohoto ´udaje k dalˇs´ı propagaci.
11Uˇzivatel se ´uˇcastn´ı festivalu, kter ´y prob´ıh´a na v´ıce m´ıstech najednou, napˇr. m´a v´ıce p ´odi´ı. Tato p ´odia
jsou um´ıstˇena v r´amci cel´eho mˇesta, coˇz je pro uˇzivatele n´aroˇcn´e na orientaci. S pomoc´ı naˇs´ı aplikace si uˇzivatel vyhled´a mapu festivalu, kde budou jasnˇe vyznaˇcen´a um´ıstˇen´ı vˇsech p ´odi´ı a uˇzivatel tak z´ısk´a pˇrehled.
5. Seˇrazen´ı akc´ı
Aby aplikace z´ısk´avala na popularitˇe a stala se obl´ıbenou, mus´ı b ´yt jej´ı pouˇz´ıv´an´ı pro uˇzivatele co nejpohodlnˇejˇs´ı. Je bez diskuz´ı, ˇze uˇz´ıv´an´ı funkce ˇrazen´ı ud´alost´ı podle urˇcit ´ych parametr ˚u (n´azev, poloha, datum) bude jedn´ım ze z´asadn´ıch prvk ˚u cel´e aplikace urˇcuj´ıc´ı jej´ı
”pohodlnost“.12 6. Galerie obr´azk ˚u
Moˇznost uveden´ı obrazov´eho materi´alu do aplikace je pro organiz´atora nezbyt-nost´ı. Sebelepˇs´ı slovn´ı charakteristika nikdy pˇresnˇe nevyj´adˇr´ı to, co fotografie. Je to opˇet dalˇs´ı z prvk ˚u zajiˇst’uj´ıc´ı uˇzivatelsky pˇr´ıvˇetiv´e prostˇred´ı. Potenci´aln´ı n´avˇstˇevn´ıci ud´alost´ı si vˇetˇsinou v prvn´ı ˇradˇe prohl´ednou fotografie, promoplak´aty ˇci jin ´y ob-razov ´y materi´al a aˇz v druh´e ˇradˇe podrobnˇeji proˇc´ıtaj´ı informace k dan´e ud´alosti. Pokud by funkce vkl´ad´an´ı obr´azku chybˇela, nemˇela by aplikace smysl, protoˇze by se naˇsel m´alokdo, kdo by ji chtˇel pouˇz´ıvat.
7. Pˇr´ıjemn´e uˇzivatelsk´e rozhran´ı
Nejz´akladnˇejˇs´ım stavebn´ım prvkem kaˇzd´e aplikace je jej´ı grafick´e rozhran´ı. Prvn´ı dojem je totiˇz vˇzdy nejd ˚uleˇzitˇejˇs´ı. Je to marketingov ´y tah, kter ´y je zˇreteln ´y t´emˇeˇr ve vˇsech sf´er´ach lidsk´e ˇcinnosti. Propracovan ´y design se vˇzdy l´epe prod´av´a. Uˇzivatel bude sp´ıˇse vyuˇz´ıvat aplikaci, kter´a ho na prvn´ı pohled zaujme, kter´a je graficky pˇr´ıvˇetiv´a a ve kter´e interakce jednotliv ´ych funkc´ı nebude zmateˇcn´a. V dneˇsn´ı dobˇe se db´a zejm´ena na to, aby aplikace byla pˇredevˇs´ım funkˇcn´ı a v tomto ohledu co nej-propracovanˇejˇs´ı a nejlepˇs´ı, nicm´enˇe to vˇse na ´ukor grafick´e str´anky. Naˇse aplikace je proto navrˇzena tak, aby oba aspekty byly na stejn´e ´urovni.
8. Server
Na tomto m´ıstˇe je nutn´e ˇcten´aˇre upozornit, ˇze server pochopitelnˇe nen´ı funkciona-litou samotn´e aplikace. Aplikace pouze vyuˇz´ıv´a nˇekter´e funkce serveru pro sta-hov´an´ı dat z datab´aze. Samotn ´y server pak skrze webov´e rozhran´ı nab´ız´ı dalˇs´ı funkcionalitu (pˇrid´av´an´ı a editace akc´ı, v ´ypis seznamu akc´ı aj.), kterou budou plnˇe vyuˇz´ıvat pouze organiz´atoˇri jednotliv ´ych spoleˇcensk ´ych ud´alost´ı. Uˇzivatel ˚um pak staˇc´ı pouze samotn´a aplikace, kter´a bude mj. pracovat na principech, jak´e byly uve-deny v pˇredchoz´ıch bodech.
D´ıky tˇemto bod ˚um lze sestavit postup, jak ´ym zp ˚usobem bude aplikace implemen-tov´ana.
12
Uved’me si tuto teorii opˇet na pˇr´ıkladu. Uˇzivatel se bude cht´ıt z ´uˇcastnit hudebn´ıho festivalu, kter ´y se bude konat co nejbl´ıˇze jeho okol´ı. Po zad´an´ı kl´ıˇcov ´ych slov z´ısk´a seznam nˇekolika ud´alost´ı, kter´e si seˇrad´ı od nejbliˇzˇs´ı po nejvzd´alenˇejˇs´ı. S´am si pak urˇc´ı, kter´e ud´alosti ze seznamu si podrobnˇeji prohl´edne a kter ´ym nebude vˇenovat svou pozornost. Pokud by funkce ˇrazen´ı podle parametr ˚u chybˇela, musel by si uˇzivatel prohl´ednou cel ´y seznam, tedy i ud´alosti, kter ´ym by se jinak nevˇenoval, a ztratil by tak spoustu ˇcasu, coˇz by ve fin´ale mohlo znamenat celkovou ztr´atu uˇzivatelova z´ajmu o aplikaci.
3.1 Datab ´aze
Po ´uvodn´ı anal ´yze, ve kter´e jsme se dozvˇedˇeli, co by aplikace mˇela umoˇz ˇnovat, se uk´azala jako z´asadn´ı ot´azka poˇctu informac´ı, kter´e bude m´ıt uˇzivatel k dispozici a jak tyto in-formace ukl´adat. Byla zvolena relaˇcn´ı datab´aze MySQL, kter´a je dostupn´a na mnoha serverech a existuje k n´ı adekv´atn´ı dokumentace. Svou funkcionalitou plnˇe dostaˇcuje potˇreb´am t´eto pr´ace. Pro uˇzivatele jsou d ˚uleˇzit´e ˇctyˇri z´akladn´ı informace - n´azev, ˇcas, m´ısto a cena, kter´e je nutn´e uv´est u kaˇzd´e ud´alosti. Organiz´atoˇri rovnˇeˇz velmi ˇcasto chtˇej´ı dˇelit vstupn´e do 2 podkategori´ı – studenti a ostatn´ı, i pro tuto moˇznost je v naˇs´ı datab´azi prostor. Nem´enˇe d ˚uleˇzit ´y je pak popis samotn´e akce ˇci umoˇznˇen´ı dalˇs´ıho kon-taktu (webov´e str´anky, facebook). Vˇsechny tyto informace jsou uloˇzeny v tabulceEvent. Dalˇs´ımi tabulkami jsou Picture, v kter´e jsou uloˇzeny URL obr´azk ˚u, jejich popis a id konkr´etn´ı ud´alosti. Tabulka Point m´a v sobˇe uloˇzeny informace o bodech mapy – id bodu, ˇc´ıslo ikonky, um´ıstˇen´ı, popis, n´azev a id ud´alosti. D´ale jsou pˇr´ıtomny tabulkaUser, v n´ıˇz jsou uloˇzeny informace o uˇzivatel´ıch, a dvˇe vazebn´e tabulkyUser join Eventa
User has Event. Prvn´ı z nich n´am ukazuje, kter ´y uˇzivatel je pˇrihl´aˇsen na jakou akci, a v druh´e se dozv´ıme, kdo je organiz´atorem konkr´etn´ı ud´alosti. Cel´a datab´aze je zn´azornˇena na obr´azku 7.
3.2 Server a administra ˇcn´ı rozhran´ı
Tato aplikace si neklade za c´ıl vyhled´avat na internetu informace o spoleˇcensk ´ych ud´alo-stech ve svˇetˇe a dod´avat je jako obsah. Obsah je tˇreba vytvoˇrit centr´alnˇe, na jednom serveru, se kter ´ym bude uˇzivatelsk´a aplikace komunikovat. Tento obsah dodaj´ı orga-niz´atoˇri akc´ı pˇres administraˇcn´ı rozhran´ı na webu. To bude nab´ızet z´akladn´ı funkciona-litu - pˇrid´an´ı ud´alosti se vˇsemi parametry, kter´e jsou k dispozici, editace ˇci vymaz´an´ı ud´alosti. Kaˇzd ´y registrovan ´y uˇzivatel v syst´emu bude pak m´ıt moˇznost zaloˇzit vlastn´ı spoleˇcenskou ud´alost a spravovat ji. Registrace bude moˇzn´a jak pˇres web, tak pˇres mo-biln´ı aplikaci.
Veˇsker´a komunikace mezi klientem a serverem je implementov´ana ve skriptovac´ım jazyce PHP, kter ´y byl vybr´an na z´akladˇe rozˇs´ıˇrenosti tohoto jazyka na serverech a na z´akladˇe velk´e uˇzivatelsk´e podpory a komunity. D´ale se pro administraci a zobrazov´an´ı webov ´ych str´anek vyuˇz´ıv´a kombinace znaˇckovac´ıho jazyka HTML a CSS, coˇz je jazyk pro popis vzhledu.
3.2.1 Komunikace server - klient
Komunikace mezi serverem a klientem je v t´eto aplikaci z´asadn´ı – bez n´ı aplikace nen´ı schopna zobrazovat ud´alosti, kter´e jsou uloˇzeny na serveru. Proto je pouˇzita architektura klient/server, kter´a poˇzadavk ˚um aplikace ve vˇetˇs´ı m´ıˇre vyhovuje. Moˇznost´ı, jak v dneˇsn´ı dobˇe pˇren´aˇset data mezi serverem a klientem, existuje cel´a ˇrada. Jako pˇr´ıklad uvedme ko-munikaci skrze sockety, d´ale pouˇzit´ı vlastn´ıho aplikaˇcn´ıho protokolu, vyuˇzit´ı XML etc. Pro potˇreby naˇs´ı pr´ace byl vybr´an form´at JSON. Tento form´at je lehce ˇciteln ´y a lehce zapi-sovateln ´y jak ˇclovˇekem, tak strojovˇe. Data jsou pˇren´aˇsena jako dvojice
pˇriˇcemˇz hodnota nemus´ı b ´yt jen primitivn´ı datov ´y typ, ale i pole hodnot. Pˇren´aˇsen´a data jsou vˇzdy reprezentov´ana jako ˇretˇezec znak ˚u. Form´at JSON neˇreˇs´ı k ´odov´an´ı textu, v ´ychoz´ı je vˇzdy UTF-8. Pokud je potˇreba vyuˇz´ıt nealfabetick´e znaky, jsou tyto znaky tzv. escapov´any zpˇetn ´ym lom´ıtkem, za n´ımˇz n´asleduje bˇeˇzn ´y alfabetick ´y znak (napˇr.\n znamen´a nov ´y ˇr´adek). N´ıˇze m ˚uˇzeme vidˇet uk´azku, jak mohou data ve form´atu JSON vypadat:
{"idEvent":"1","EventName":"Festival v ulic´ıch","Time":"2013-07-19 15:00:00"} Pˇri anal ´yze komunikace byla navrˇzena moˇznost parsov´an´ı XML souboru, kter ´y by se automaticky vytvoˇril pˇri zaloˇzen´ı nov´e ud´alosti. Aplikace by si pouze st´ahla tento XML soubor a soubory, kter´e s ud´alost´ı souvis´ı. Tato varianta ovˇsem nebyla vybr´ana, protoˇze nezajiˇst’ovala jednoduchou zpˇetnou editaci, mnoˇzstv´ı pˇrenesen ´ych dat by v pˇr´ıpadˇe XML bylo vˇetˇs´ı neˇz pˇri pouˇzit´ı JSON a rovnˇeˇz vyhled´av´an´ı dat by bylo znaˇcnˇe kompliko-vanˇejˇs´ı.
3.3 Mobiln´ı aplikace
Na z´akladˇe anal ´yzy (viz zaˇc´atek t´eto kapitoly), kde jsme v osmi bodech struˇcnˇe shrnuli funkce, kter ´ymi by aplikace
”Social Event Guide“ mˇela disponovat, byl vytvoˇren pomoc´ı jazyka UML tˇr´ıdn´ı diagram (viz obr. 9), kter ´y reprezentuje strukturu tˇr´ıd a rozhran´ı ve zdrojov´em k ´odu. Podle tohoto diagramu pot´e prob´ıhala implementace aplikace. P ˚uvodn´ı z´amˇer pˇri tvorbˇe t´eto aplikace spoˇc´ıval pouze v jednostrann´e komunikaci se serverem, coˇz znamen´a, ˇze by aplikace slouˇzila sp´ıˇse jako prohl´ıˇzeˇc ud´alost´ı a jen by stahovala data. Postupn ´ym pˇrid´av´an´ım nov ´ych funkc´ı se vˇsak uk´azalo, ˇze tento z´amˇer nelze uskuteˇcnit, protoˇze napˇr. moˇznost pˇrihl´aˇsen´ı se na konkr´etn´ı ud´alost vyˇzaduje odesl´an´ı dat pˇres mo-biln´ı aplikaci na server a komunikace se t´ım p´adem st´av´a obousmˇernou. Ten sam ´y pˇr´ıpad vznik´a i u funkce propojen´ı mobiln´ı aplikace se soci´aln´ımi s´ıtˇemi. Aplikace
”Social Event Guide“ Je urˇcena jak pro telefony, tak pro tablety. Tato skuteˇcnost musela b ´yt zohlednˇena pˇri tvorbˇe uˇzivatelsk´eho rozhran´ı aplikace. Na ´uvodn´ı obrazovce se m´a zobrazit logo aplikace, z´akladn´ı akce, kter´e m ˚uˇze uˇzivatel vykonat (registrace, pˇrihl´aˇsen´ı, prohl´ıˇzen´ı spoleˇcensk ´ych ud´alost´ı). Pˇri prohl´ıˇzen´ı seznamu ud´alost´ı se uˇzivateli u kaˇzd´e z nich ob-jev´ı jej´ı n´azev, vzd´alenost, ˇcas a ikonka. Pˇri zvolen´ı urˇcit´e ud´alosti se uˇzivateli d´ale zob-raz´ı vˇetˇs´ı ikona a veˇsker´e dostupn´e informace, kter´e organiz´ator dodal do syst´emu. Cel-kem je na v ´ybˇer ze ˇctyˇr tab ˚u – z´akladn´ı informace, Twitter, mapa, galerie. Pod z´akladn´ımi informacemi m´a uˇzivatel na v ´ybˇer nˇekolik moˇznost´ı – textov´e sd´ılen´ı, pˇriˇrazen´ı akce do kalend´aˇre, pˇrechod na facebookovou str´anku pomoc´ı prohl´ıˇzeˇce a pˇripojen´ı se na akci.
Obr ´azek 8: T ˇr´ıdn ´ı diagram
4
Implementace
Na z´akladˇe anal ´yzy, kterou jsme provedli v pˇredchoz´ı kapitole, n´aslednˇe prob´ıhala sa-motn´a implementace aplikace. Pˇri n´ı se vych´azelo pˇredevˇs´ım z tˇr´ıdn´ıho diagramu, kter ´y byl pˇri anal ´yze navrˇzen. Tento diagram se pˇri v ´yvoji m´ırnˇe modifikoval, z´akladn´ı struk-tura tˇr´ıd vˇsak z ˚ustala stejn´a. Pˇri implementaci byla nejprve podle ER diagramu vytvoˇrena datab´aze, kter´a se naplnila testovac´ımi daty. Pot´e se na stranˇe serveru vytvoˇrily metody, kter´e slouˇzily k pr´aci s touto datab´az´ı (m´ame na mysli metody pro ˇcten´ı, modifikaci a ukl´ad´an´ı dat). V mobiln´ı aplikaci pak byly vytvoˇreny odpov´ıdaj´ıc´ı tˇr´ıdy, jejichˇz ´ukolem bylo obstar´avat komunikaci se serverem. Komunikace byla testov´ana pomoc´ı log ˚u v pro-gramu a velmi trivi´aln´ıho uˇzivatelsk´eho rozhran´ı. Teprve ve chv´ıli, kdy bylo zˇrejm´e, ˇze komunikace prob´ıh´a spr´avnˇe, mohlo doj´ıt k pˇrid´av´an´ı dalˇs´ıch komponent, jako napˇr´ıklad tˇr´ıd pro pr´aci s mapami ˇci tˇr´ıd pro komunikaci se serverem Twitter. V t´eto kapitole se zm´ın´ıme o logick´em rozdˇelen´ı zdrojov´eho k ´odu mobiln´ı aplikace, pop´ıˇseme pr´aci s kni-hovnou twitter4j, sezn´am´ıme se s nˇekter ´ymi implementaˇcn´ımi probl´emy a s jejich ˇreˇsen´ım a v z´avˇeru rovnˇeˇz bl´ıˇze pojedn´ame o pr ˚ubˇehu implementace serveru.
4.1 Rozd ˇelen´ı zdrojov ´eho k ´odu aplikace
Pro vˇetˇs´ı pˇrehlednost a snadnˇejˇs´ı rozˇsiˇrovatelnost aplikace byly ve zdrojov´em k ´odu vy-tvoˇreny celkem ˇctyˇri bal´ıˇcky. Kaˇzd ´y z tˇechto bal´ıˇck ˚u obstar´av´a v k ´odu vˇzdy nˇejak ´y uce-len ´y segment aplikace. Rozdˇeuce-len´ı k ´odu do bal´ıˇck ˚u rovnˇeˇz oddˇeluje funkˇcnost aplikace od jej´ıho vzhledu, coˇz opˇet vede k tomu, ˇze pˇr´ıpadn´a dalˇs´ı ´uprava aplikace by byla jed-noduˇsˇs´ı.
1. com.maps
2. com.data
3. com.socialevents
4. com.twitter
Prvn´ım vznikl ´ym bal´ıˇckem je bal´ıˇcek s n´azvemcom.data. Jeho ´ukolem je odes´ıl´an´ı zpr´av na server a pˇrij´ım´an´ı odpovˇed´ı, kter´e server vr´at´ı. Pˇri tvorbˇe bal´ıˇcku bylo vyuˇzito objektovˇe relaˇcn´ıho mapov´an´ı (d´ale jen ORM), kter´e urˇcuje zp ˚usob, jak lze propojit13 relaˇcn´ı datab´azi a objektovˇe orientovan ´y programovac´ı jazyk. Bal´ıˇcek tedy obsahuje nˇeko-lik tˇr´ıd, z nichˇz velmi d ˚uleˇzit´a je tˇr´ıdaEvent, kter´a nese informace o kaˇzd´e ud´alosti. Dalˇs´ı tˇr´ıdou v bal´ıˇcku je napˇr.Pictures, kter´a slouˇz´ı k pr´aci s obr´azky.
Jiˇz z n´azvu bal´ıˇckucom.mapsvypl ´yv´a, ˇze obsahuje tˇr´ıdy, kter´e spolupracuj´ı s Google mapami. Staraj´ı se tak napˇr´ıklad o to, aby se pˇri kliknut´ı na urˇcit ´y bod v mapˇe objevily informace o tomto bodu a pochopitelnˇe maj´ı tyto tˇr´ıdy d´ale na starost samotn´e vykres-lov´an´ı mapy.
13L´epe ˇreˇceno, ORM n´am ˇr´ık´a, jak´e tˇr´ıdy v k ´odu vytvoˇrit a jak je propojit, aby pozdˇejˇs´ı pr´ace s datab´az´ı
V bal´ıˇckucom.socialeventsje zapouzdˇrena samotn´a logika aplikace, vˇcetnˇe pro-pojen´ı funkˇcnosti s uˇzivatelsk ´ym rozhran´ım. Lze ˇr´ıci, ˇze se jedn´a o ´ustˇredn´ı bal´ıˇcek cel´e aplikace, nebot’ drtiv´a vˇetˇsina aktivit se nach´az´ı pr´avˇe zde (mimo aktivit pro zobrazen´ı map a sluˇzby Twitter).
Posledn´ım bal´ıˇckem jecom.twitter, kter ´y obstar´av´a komunikaci s knihovnou twi-tter4ja zprostˇredkov´av´a tak zobrazov´an´ı a pˇrid´av´an´ı pˇr´ıspˇevk ˚u, tzv.
”tweet ˚u“. 4.2 Vyuˇzit´ı knihovny twitter4j
Vzhledem k tomu, ˇze aplikace
”Social Event Guide“ m´a umˇet komunikovat se sluˇzbou Twitter, bylo nutn´e pouˇz´ıt knihovnu twitter4j[9], kter´a tuto komunikaci umoˇz ˇnuje. K tomu, aby knihovna mohla b ´yt pouˇz´ıv´ana, jsou vyˇzadov´any dva uˇzivatelsk´e a dva pˇr´ıstupov´e kl´ıˇce. Uˇzivatelsk´e kl´ıˇce jsou definov´any jakoOAuthConsumerSecret
aOAuthConsumerKey. Pˇr´ıstupov´e kl´ıˇce (OAuthAccessTokena OAuthAccessToken-Secret) je moˇzno vygenerovat na webov ´ych str´ank´ach sluˇzby Twitter. Po z´ısk´an´ı kl´ıˇc ˚u staˇc´ı knihovnu importovat do projektu a pot´e jiˇz vyuˇz´ıvat vˇsechny funkce, kter´e knihovna v ´yvoj´aˇr ˚um nab´ız´ı.
Pro aplikaci
”Social Event Guide“ byl vytvoˇren speci´aln´ı ´uˇcet, pod kter ´ym sv´e”tweety“ pˇrid´avaj´ı vˇsichni uˇzivatel´e aplikace. Pˇr´ıspˇevky k jednotliv ´ym spoleˇcensk ´ym ud´alostem se pak oznaˇcuj´ı tzv.hashtagem(znak#). Hashtag se k
”tweetu“ pˇrid´a automaticky - naˇcte se z datab´aze, v n´ıˇz m´a kaˇzd´a akcehashtagjiˇz vytvoˇren ´y. Celkov´a d´elka zpr´avy, kterou uˇzivatel m´a moˇznost pˇridat na Twitter, je d´ana jako rozd´ıl ˇc´ısel 144 a d´elkyhashtagu. 4.3 Probl ´emy pˇri implementaci
Pˇri v ´yvoji aplikace se vyskytlo nˇekolik probl´em ˚u, kter´e bylo tˇreba vyˇreˇsit. V t´eto ˇc´asti kapitoly jsou pˇredstaveny ty nejzaj´ımavˇejˇs´ı z nich, spoleˇcnˇe se zp ˚usobem ˇreˇsen´ı.
4.3.1 Obr ´azek ve v ´yb ˇeru
Pˇri vytv´aˇren´ı uˇzivatelsk´eho rozhran´ı na stranˇe serveru se vyskytl probl´em, jak ´ym zp
˚uso-bem vloˇzit obr´azky do HTML elementuinput, kter ´y byl typuselect. HTML bohuˇzel
touto moˇznost´ı nedisponuje, proto bylo nutno nal´ezt jin ´y alternativn´ı zp ˚usob. Nejprve bylo vyzkouˇseno vloˇzen´ı obr´azku jako pozad´ı pouˇzit´ım kask´adov ´ych styl ˚u, ani tento zp ˚usob ˇreˇsen´ı se vˇsak neuk´azal jako ´uspˇeˇsn ´y.
Bylo tedy jasn´e, ˇze pouˇzit´ı Javascript je nezbytn´e. Na Internetu jsou k dispozici Ja-vascriptov´e knihovny, kter´e se specializuj´ı na vylepˇsov´an´ı vzhledu HTML element ˚u. Jednou z tˇechto knihoven je knihovna s n´azvem DropKick14, kter´a slouˇz´ı k vylepˇsen´ı
vzhledu elementuinput typuselect. Po pouˇzit´ı t´eto knihovny a po pohledu na
vy-tvoˇren ´y HTML k ´od bylo vidˇet, ˇze elementinputbyl nahrazen elementydiv, kter´e pak pomoc´ı CSS byly stylizov´any za ´uˇcelem vylepˇsen´ı vzhledu. Bohuˇzel, ani po m´ırn´e modi-fikaci se nepodaˇrilo upravit vzhled tak, aby spl ˇnoval naˇse poˇzadavky.
Po ne ´uspˇechu s knihovnou DropKick byl vyzkouˇsen skript s n´azvem JavaScript Image Combobox. Jak je patrno jiˇz z n´azvu, tento skript se specializuje na vkl´ad´an´ı obr´azk ˚u do v ´ybˇerov´eho pole. Pro svou funkˇcnost skript poˇzaduje pouze jQuery. Po jeho dod´an´ı do zdrojov´eho k ´odu a po pˇrid´an´ı potˇrebn ´ych informac´ı se podaˇrilo ´uspˇeˇsnˇe vloˇzit obr´azky do v ´ybˇerov´eho pole. N´asleduje uk´azka, jak nakonec vypadal zdrojov ´y k ´od v ´ybˇerov´eho pole.
<select class=”point”name=”icon1”style=”width: 200px”>
<option title=”1”data−image=”images/points/1.png”name=”p1”>Wifi
</option>
<option title=”2”data−image=”images/points/2.png”name=”p2”>Cafe
</option> </select>
V ´ypis 3: Uk´azka v ´ybˇerov´eho pole
4.3.2 Vlastn´ı vzhled z ´aloˇzek
Pro vylepˇsen´ı vzhledu Android aplikace n´am jeho SDK umoˇz ˇnuje pouˇz´ıt z´aloˇzky, kter´e jsou souˇc´ast´ı i naˇs´ı aplikace. Vzhled z´aloˇzek ovˇsem na niˇzˇs´ıch verz´ıch API nen´ı tak pro-pracovan ´y, jako na verz´ıch vyˇsˇs´ıch. Grafick´e zpracov´an´ı pˇrep´ınaˇce z´aloˇzek je ovˇsem moˇzno vylepˇsit a z´ıskat tak dobˇre vypadaj´ıc´ı design i pˇri pouˇzit´ı niˇzˇs´ı verze API.
Z´akladem je vytvoˇren´ı dvou XML soubor ˚u. V prvn´ım z nich se vyuˇz´ıv´a elementu
TabHost, kter ´y definuje pole pro z´aloˇzky a pole pro zobrazen´ı samotn´eho obsahu z´aloˇzky. VTabHostelementu je pak vnoˇren elementFrameLayout, v nˇemˇz se pot´e obsah z´aloˇzky zobrazuje.
Druh ´y XML soubor obsahuje a definuje vzhled konkr´etn´ı z´aloˇzky. Pˇri jej´ım vytv´aˇren´ı se pak tento vzhled aplikuje na vˇsechny ostatn´ı. ´Upravou tohoto souboru tedy doch´az´ı k nastavov´an´ı vzhledu jednotliv ´ych z´aloˇzek. V naˇsem pˇr´ıpadˇe byl pˇrid´an element Image-View, kter ´y slouˇz´ı k zobrazen´ı obr´azku. V ´ysledn´e z´aloˇzky jsou tedy vlastnˇe r ˚uzn´e obr´azky, pomoc´ı kter ´ych se uˇzivatel m ˚uˇze v r´amci aplikace pˇrep´ınat mezi jednotliv ´ymi obrazov-kami.
V aktivitˇe, kter´a zobrazuje z´aloˇzky, je tˇreba implementovat, jak se maj´ı vytvoˇrit. Je tedy nutn´e zadat n´azev z´aloˇzky, obr´azek, kter ´ym m´a b ´yt reprezentov´ana a rovnˇeˇz mus´ı b ´yt nastavena interakce, tedy co konkr´etnˇe m´a probˇehnout v momentˇe, kdy uˇzivatel da-nou z´aloˇzku zvol´ı. Jak m ˚uˇze vypadat zdrojov ´y k ´od je zobrazeno na dalˇs´ı stranˇe.
...
tabView = createTabView(this, ”Pictures”, R.drawable.gallery black ) ; intent =newIntent() .setClass(this, PictureActivity .class);
spec = tabHost.newTabSpec(”tab4”).setIndicator(tabView).setContent(intent); tabHost.addTab(spec);
}
private static View createTabView(Context context, String tabText,int icon)
{
View view = LayoutInflater .from(context). inflate (R.layout.custom tab,null, false) ; ImageView img = (ImageView) view.findViewById(R.id.tabImageView);
img.setImageDrawable(context.getResources().getDrawable(icon));
returnview;
}
V ´ypis 4: Uk´azka inicializace z´aloˇzky
4.3.3 Offline reˇzim
Vzhledem k tomu, ˇze ne vˇsichni uˇzivatel´e disponuj´ı mobiln´ım internetem, bylo nutn´e zajistit, aby uˇzivatel´e mohli prohl´ıˇzet nˇekter´e ud´alosti i v pˇr´ıpadˇe, ˇze pˇripojen´ı k inter-netu nebude k dispozici. Bylo zcela zˇrejm´e, ˇze tyto ud´alosti mus´ı b ´yt uloˇzeny v telefonu15 trvale. Samozˇrejmˇe nen´ı moˇzno uˇzivateli do telefonu uloˇzit vˇsechny ud´alosti, kter´e da-tab´aze bude obsahovat, protoˇze v pˇr´ıpadˇe obrovsk´eho mnoˇzstv´ı ud´alost´ı v datab´azi by mohl nastat probl´em nedostatku m´ısta k uloˇzen´ı. Bylo tedy rozhodnuto, ˇze na SD kartˇe budou uloˇzeny pouze ud´alosti, kter´e si uˇzivatel zvol´ı jako obl´ıben´e.
Moˇznost´ı, jak ´ym zp ˚usobem data o ud´alostech uloˇzit, se nab´ızelo mnoho. Zmi ˇnme napˇr´ıklad moˇznost ukl´ad´an´ı do textov´eho souboru, ukl´ad´an´ı do SQLite datab´aze v zaˇr´ıze-n´ı ˇci moˇznost ukl´ad´azaˇr´ıze-n´ı ud´alost´ı v podobˇe XML souboru. Ze vˇsech dostupn ´ych moˇznost´ı nakonec byla vybr´ana metoda serializace a deserializace. Serializace je jednoduch ´y zp ˚usob, jak ´ym lze instanci tˇr´ıdy uloˇzit nebo napˇr. poslat pˇres s´ıt. Staˇc´ı, aby tato tˇr´ıda
implemen-tovala rozhran´ıSerializable. V aplikaci
”Social Event Guide“ je vytvoˇrena instance tˇr´ıdyLinkedList<Event>, kter´a v sobˇe uchov´av´a vˇsechny ud´alosti, kter´e si uˇzivatel zvol´ı jako obl´ıben´e. Tato instance je vˇzdy pˇri pˇrid´an´ı nov´e ud´alosti do obl´ıben ´ych se-rializov´ana. V pˇr´ıpadˇe, ˇze pˇri spuˇstˇen´ı aplikace nen´ı k dispozici internetov´e pˇripojen´ı, probˇehne deserializace, coˇz vede k naˇcten´ı seznamu obsahuj´ıc´ıho jednotliv´e ud´alosti a ty jsou pak uˇzivateli zobrazeny.
4.3.4 Cachov ´an´ı obr ´azk ˚u
Jak bylo zm´ıneno v dˇr´ıvejˇs´ı kapitole, galerie obr´azk ˚u je ned´ılnou souˇc´ast´ı naˇs´ı aplikace, zvyˇsuj´ıc´ı jej´ı popularitu a uˇzivatelskou pˇr´ıvˇetivost. Nicm´enˇe, pˇri implementaci galerie obr´azk ˚u nastal menˇs´ı probl´em. Galerie jako takov´a si bez probl´emu stahovala obrazov ´y materi´al z webu, pot´ıˇze ovˇsem nastaly pˇri prohl´ıˇzen´ı, kdy galerie byla pomal´a a m´ısty
t´emˇeˇr nereagovala. Po anal ´yze t´eto komplikace byla zjiˇstˇena pˇr´ıˇc´ına. Galerie si naˇc´ıtala kaˇzd ´y obr´azek tˇesnˇe pˇred jeho zobrazen´ım a pokud uˇzivatel chtˇel otevˇr´ıt obr´azek n´asledu-j´ıc´ı v poˇrad´ı, musel nejdˇr´ıve poˇckat, aˇz se data st´ahnou ze serveru. Obr´azky se stahovaly pokaˇzd´e, kdyˇz je uˇzivatel chtˇel naˇc´ıst, bez ohledu na to, jestli uˇz byly pˇredt´ım jednou zobrazeny, nebo ne. ˇReˇsen´ı t´eto situace nebylo nijak zvl´aˇst komplikovan´e. Bylo pouze nutn´e zajistit, aby se obrazov ´y materi´al naˇcetl jeˇstˇe dˇr´ıve, neˇz dojde k samotn´emu zobra-zen´ı v galerii. Proto je v pamˇeti k dispozici list obr´azk ˚u typu Bitmap, do nˇejˇz se stahuje konkr´etn´ı obrazov ´y materi´al. Tento list je pak pˇred´an adapt´eru galerie, kter´a z nˇej posl´eze naˇc´ıt´a data. Data jsou tedy stahov´ana z listu (lok´alnˇe uloˇzen v pamˇeti) a nikoliv ze ser-veru, coˇz n´aslednˇe v galerii znaˇcnˇe urychluje moˇznost prohl´ıˇzen´ı. Nicm´enˇe vyˇreˇsen´ım komplikac´ı s rychlost´ı naˇc´ıt´an´ı obr´azk ˚u vyvstal v aplikaci dalˇs´ı drobn ´y probl´em, a to s pˇrepisov´an´ım listu nacachovan ´ych spoleˇcensk ´ych ud´alost´ı. Pˇri zobrazen´ı nov´e ud´alosti, z ˚ust´aval v pamˇeti aplikace neaktualizovan ´y list s obr´azky vztahuj´ıc´ımi se k ud´alosti, kte-rou uˇzivatel prohl´ıˇzel pˇredt´ım, takˇze v galerii byl zobrazov´an materi´al, kter ´y s novˇe zvo-lenou ud´alost´ı v ˚ubec nesouvisel. Proto byla vytvoˇrena promˇenn´a typu boolean, kter´a ˇr´ık´a, zda byla vybr´ana nov´a ud´alost. Pokud ano, pak se pˇr´ısluˇsn ´y obrazov ´y materi´al v listu aktualizuje a v galerii pak jsou naˇc´ıtan´a spr´avn´a data.
Jako posledn´ı probl´em v oblasti cachov´an´ı obr´azk ˚u uved’me pot´ıˇze pˇri vytv´aˇren´ı seznamu ud´alost´ı. Kaˇzd´a kulturn´ı akce m´a sv ˚uj vlastn´ı identifikaˇcn´ı obr´azek, kter ´y se naˇc´ıt´a ze serveru. Zde opˇet doch´azelo ke stejn´emu probl´emu, jako pˇri naˇc´ıt´an´ı obr´azk ˚u v galerii. Prohl´ıˇzen´ı a posun seznamu byl tak kv ˚uli opakovan´emu naˇc´ıt´an´ı obr´azk ˚u ze serveru pomal ´y a nebyl plynul ´y. Tato komplikace byla pak ˇreˇsena vytvoˇren´ım nov´e promˇenn´e (typ Bitmap) ve tˇr´ıdˇe Event, do kter´e se obr´azek ukl´adal a stejnˇe jako u naˇc´ıt´an´ı galerie nebyla data jiˇz stahov´ana ze serveru, ˇc´ımˇz bylo zajiˇstˇen´e rychl´e a plynul´e prohl´ıˇzen´ı seznamu ud´alost´ı.
4.3.5 Ukazatel pr ˚ub ˇehu
Pˇri stahov´an´ı vˇetˇs´ıho mnoˇzstv´ı dat ze serveru aplikace m´ısty vykazovala zn´amky totoˇzn´e s v ´yskytem chyby a byl tak snadno navozen pocit, ˇze aplikace pˇrestala reagovat. Nicm´enˇe aplikace pouze ˇcekala na kompletn´ı naˇcten´ı vˇsech dat ze serveru. Aby budouc´ı uˇzivatel´e nebyli t´ımto stavem zmateni, bylo nutn´e pˇridat ukazatel pr ˚ubˇehu, kter ´y indikuje funkˇcnost aplikace a pr´avˇe prob´ıhaj´ıc´ı akce. Ukazatel je zobrazen vˇzdy, kdyˇz se oˇcek´av´a vˇetˇs´ı ˇcasov´a prodleva mezi akc´ı uˇzivatele (kliknut´ı) a n´asledn ´ym zobrazen´ım poˇzadovan´eho obsahu. S ukazatelem pr ˚ubˇehu se v drtiv´e m´ıˇre m ˚uˇzeme setkat pˇri zobrazov´an´ı obr´azk ˚u u se-znamu ud´alost´ı; u jednotliv ´ych ud´alost´ı a u galerie.
Tento probl´em byl vyˇreˇsen pˇrid´an´ım nov´e tˇr´ıdy, kter´a dˇed´ı z tˇr´ıdy AsyncTask. Tˇr´ıda AsyncTask je souˇc´ast´ı Android SDK a jej´ım hlavn´ım c´ılem je v ´yvoj´aˇri zjednoduˇsit prov´a-dˇen´ı ˇc´asti k ´odu, kter ´y m´a bˇeˇzet v jin´em vl´aknˇe. V naˇsem pˇr´ıpade jsme vyuˇzili tˇri metody, kter´e tato tˇr´ıda nab´ız´ı.
onPreExecute - k ´od t´eto metody probˇehne v hlavn´ım vl´aknˇe pˇredt´ım, neˇz bude spuˇstˇen k ´od, u nˇehoˇz v ´yvoj´aˇr chce, aby byl oddˇelen od hlavn´ıho vl´akna
doInBackground- do t´eto metody se umist’uje k ´od, kter ´y m´a bˇeˇzet na pozad´ı (tedy v jin´em vl´aknˇe); typicky se jedn´a o k ´od, kter ´y pro sv ˚uj bˇeh vyˇzaduje v´ıce ˇcasu
onPostExecute- k ´od t´eto metody je proveden po dokonˇcen´ı bˇehu k ´odu, kter ´y byl spuˇstˇen na pozad´ı
V pˇr´ıpade naˇs´ı aplikace se v onPreExecutevytvoˇril ProgressDialog, kter ´y in-dikuje, ˇze aplikace stahuje potˇrebn´a data. VdoInBackgroundse stahuj´ı potˇrebn´a data
k zobrazen´ı. V onPostExecute se zruˇs´ı zobrazen´ıProgressDialogu a provede se
zpracov´an´ı a zobrazen´ı obr´azku a dalˇs´ıho k ´odu.
4.4 Server
Implementace serveru prob´ıhala paralelnˇe s implementac´ı aplikace z d ˚uvodu potˇreby zprovoznˇen´ı komunikace mezi obˇema stranami. Nejdˇr´ıve byly vytvoˇreny tˇr´ıdy, kter ´ych bylo potˇreba k jiˇz zm´ınˇen´e komunikaci s aplikac´ı. Kdyˇz aplikace byla jiˇz z vˇetˇs´ı ˇc´asti ho-tov´a, pˇristoupilo se k vytvoˇren´ı administraˇcn´ıho rozhran´ı pro editaci a vytv´aˇren´ı nov ´ych spoleˇcensk ´ych ud´alost´ı. Tato ˇc´ast implementace byla jednoduˇsˇs´ı a rychlejˇs´ı, protoˇze nˇekte-r´e metody a funkce, potˇrebn´e pro administraˇcn´ı rozhran´ı, byly jiˇz vytvoˇreny, jelikoˇz je vyuˇz´ıvala mobiln´ı aplikace.
Vhodn ´ym pˇr´ıkladem je tˇr´ıda Event. Metody, kter´e jsou vyuˇz´ıv´any jak aplikac´ı tak webov ´ym rozhran´ım jsou select all (), kter´a vrac´ı vˇsechny ud´alosti, kter´e jsou v datab´azi, aselect by id(), kter´a vybere informace o ud´alosti podle jej´ıho id. Metody, kter´e vyuˇz´ıvaj´ı pouze webov´e rozhran´ı jsousaveEvent(), kter´a ukl´ad´a novou ud´alost aeditEvent(), kter´a pak slouˇz´ı k jej´ı editaci.
Webov´e rozhran´ı nab´ız´ı tuto funkcionalitu – registrace nov´eho uˇzivatele, vytvoˇren´ı a editace nov´e ud´alosti, prohl´ıˇzen´ı vlastn´ıch ud´alost´ı. Nˇekter´e z tˇechto funkcionalit jsou dostupn´e pouze po pˇrihl´aˇsen´ı uˇzivatele.
5
Testov ´an´ı
Testov´an´ı aplikace bylo provedeno na nˇekolika zaˇr´ızen´ıch. Prvn´ım zaˇr´ızen´ım byl mobiln´ı telefon LGP500 s verz´ı Androidu 4.0.4, kde prob´ıhalo postupn´e testov´an´ı. Teprv´e pot´e, co byla aplikace jiˇz zcela plnˇe funkˇcn´ı, byla nainstalov´ana i na dalˇs´ı zaˇr´ızen´ı, aby se tak mohla otestovat kompatibilita s jin ´ymi verzemi OS Android a jin ´ym rozliˇsen´ım.
5.1 Testov ´an´ı na re ´aln ´ych zaˇr´ızen´ıch
Pro testov´an´ı byly vyhled´any r ˚uzn´e mobiln´ı telefony a tablety s rozd´ıln ´ym rozliˇsen´ım a rozd´ılnou verz´ı Androidu. V n´asleduj´ıc´ı tabulce je uveden seznam zaˇr´ızen´ı, kter´a byla pouˇzita.
Typ zaˇr´ızen´ı Verze OS Android Rozliˇsen´ı displeje
LG P500 4.0.4 320 x 480
HTC Wildfire S 2.3 320 x 480
Samsung Galaxy Ace 4.0.1 320 x 480
Samsung S3 mini 4.1 480 x 800
Samsung S3 4.1.2 720 x 1280
Samsung Galaxy Tab 2 10.1 4.2.2 1820 x 800
Tabulka 4: Typy zaˇr´ızen´ı a jejich verze a rozliˇsen´ı displeje
Jak je patrn´e z tabulky, byla aplikace testov´ana pˇredevˇs´ım na telefonech s Androidem Ice Cream Sandwich. K dispozici byl jeden tablet, kter ´y byl vybr´an zejm´ena pro testov´an´ı vzhledu aplikace na vˇetˇs´ıch obrazovk´ach.
Testov´an´ı prob´ıhalo v nˇekolika bodech
1. prohl´ıˇzen´ı akc´ı se zapnut ´ym wifi pˇripojen´ım 2. registrace a pˇrihl´aˇsen´ı
3. sd´ılen´ı pˇr´ıspˇevk ˚u na Twitter
4. prohl´ıˇzen´ı ud´alost´ı v offline reˇzimu
Kaˇzd´a funkce byla postupnˇe otestov´ana na kaˇzd´em z dostupn ´ych zaˇr´ızen´ı a ani v jednom pˇr´ıpadˇe se pˇri testov´an´ı nevyskytla ˇz´adn´a chyba. Aplikace fungovala na vˇsech zaˇr´ızen´ıch stejn ´ym zp ˚usobem.
6
Z ´av ˇer
C´ılem t´eto bakal´aˇrsk´e pr´ace bylo sezn´amit ˇcten´aˇre s operaˇcn´ım syst´emem Android, jeho moˇznostmi a d´ale podat podrobnˇejˇs´ı informace o aplikace Social Event Guide/Pr ˚uvodce spoleˇcensk ´ymi ud´alostmi. Tato pr´ace poskytuje n´ahled na anal ´yzu nejen samotn´e apli-kace, ale i struˇcn ´y pˇrehled o aplikac´ıch podobn ´ych, kter´e pracuj´ı na stejn´em principu, jako Social Event Guide. D´ale jsou poskytnuty informace o implementaci a testov´an´ı apli-kace v re´aln´em provozu. Apliapli-kace Social Event Guide m´a potenci´al st´at se dobr ´ym po-mocn´ıkem kaˇzd´eho organiz´atora spoleˇcensk ´ych ud´alost´ı a z´arove ˇn b ´yt dobr ´ym pr ˚uvod-cem uˇzivatele, kter ´y se ˇcastˇeji ´uˇcastn´ı r ˚uzn ´ych kulturn´ıch akc´ı.
V dneˇsn´ı dobˇe, kdy t´emˇeˇr kaˇzd ´y ˇclovˇek z´apadn´ıho svˇeta je vlastn´ıkem chytr´eho te-lefonu (tzv. smartphonu), se tak otv´ıraj´ı nov´e moˇznosti pro v ´yvoj´aˇre a pro vyuˇzit´ı jejich program ˚u. V ´yvoj´aˇr, kter ´y byl do ned´avn´e doby zvykl ´y programovat aplikace pro stoln´ı poˇc´ıtaˇce, se ted’ mus´ı pˇreorientovat na nov´e myˇslen´ı uˇzivatel ˚u, kteˇr´ı dnes chtˇej´ı m´ıt in-formace dostupn´e ihned, chtˇej´ı tyto inin-formace sd´ılet s pˇr´ateli, a to vˇse co nejpohodlnˇejˇs´ı a nejjednoduˇsˇs´ı formou.
Aplikace Social Event Guide, kter´a byla pˇredmˇetem t´eto bakal´aˇrsk´e pr´ace, se snaˇz´ı vˇsechny v ´yˇse zm´ınˇen´e potˇreby uˇzivatel ˚u pokr ´yt, a proto m´a potenci´al se prosadit mezi konkurenˇcn´ımi produkty, kter´e v nˇekter ´ych bodech zaost´avaj´ı.
Pokud budeme pˇrem ´yˇslet o moˇznosti dalˇs´ıho rozˇs´ıˇren´ı naˇs´ı aplikace, pak se n´am nask ´yt´a nˇekolik moˇznost´ı. Prvn´ı z nich je vˇetˇs´ı propojen´ı se soci´aln´ımi s´ıtˇemi – pˇredevˇs´ım Facebook a Google+. Obˇe tyto soci´aln´ı s´ıtˇe maj´ı vytvoˇren´e API pro vˇetˇs´ı integritu jejich sluˇzeb do aplikac´ı tˇret´ıch stran. V pˇr´ıpadˇe velk´eho z´ajmu ze strany uˇzivatel ˚u ˇci firem by se mohla aplikace pˇren´est na mobiln´ı platformy iOS od spoleˇcnosti Apple, ˇci Windows 8 od spoleˇcnosti Microsoft. Dalˇs´ı moˇzn´a vylepˇsen´ı by se mohla odehr´avat na poli pro-pracovanˇejˇs´ıho syst´emu vyhled´av´an´ı a kategorizace jednotliv ´ych ud´alost´ı, aby v pˇr´ıpadˇe vˇetˇs´ıho mnoˇzstv´ı na v ´ybˇer uˇzivatel snadno mohl nal´ezt to, co hled´a.
Zamˇeˇr´ıme-li se na moˇzn´a vylepˇsen´ı webov´eho rozhran´ı, kter´e je aktu´alnˇe urˇceno pouze organiz´ator ˚um a tv ˚urc ˚um obsahu, uˇzivatel´e by ˇcasem zcela jistˇe uv´ıtali moˇznost pˇrehledu ud´alost´ı a ukl´ad´an´ı akc´ı do obl´ıben ´ych pˇr´ımo na webov ´ych str´ank´ach. Orga-niz´ator ˚um by pak mohla b ´yt nab´ıdnuta funkce statistik pˇrihlaˇsov´an´ı ˇci propracovanˇejˇs´ı funkce editace ud´alosti. Nem´enˇe d ˚uleˇzit ´ym vylepˇsen´ım by pak mohla b ´yt spam-kontrola, kdy by novˇe vytvoˇren´e ud´alosti byly d ˚ukladnˇe provˇeˇreny, zda se nejedn´a o spam.
7
Reference
[1] ˇCS ´UMobiln´ı s´ıt’[online]
Dostupn´e z http://www.czso.cz/csu/redakce.nsf/i/mobilni_
telefonni_sit_telekomunikacni_a_internetova_infrastruktura/ %24File/2012_web_mobil_final.doc
[2] statcounter.comStatistiky pod´ılu OS na ˇcesk´em trhu[online]
Dostupn´e z http://gs.statcounter.com/#mobile_
os-CZ-monthly-201104-201303
[3] Svˇet Androida - Tom´aˇs KyptaVyv´ıj´ıme pro Android – ´uvod[online]
Dostupn´e zhttp://www.svetandroida.cz/vyvijime-pro-android-1-uvod-201103
[4] Developers AndroidDashbords - Platform Versions[online]
Dostupn´e z http://developer.android.com/about/dashboards/index.
html
[5] Developers Android/¿Get the Android SDK[online]
Dostupn´e zhttp://developer.android.com/sdk/index.html
[6] Developers AndroidClass MapView[online]
Dostupn´e z https://developers.google.com/maps/documentation/
android/v1/reference/com/google/android/maps/MapView
[7] Vogella.comGoogle Maps Android API v2 - Tutorial[online]
Dostupn´e z http://www.vogella.com/articles/AndroidGoogleMaps/
article.html
[8] Murphy MarkBeginning Android 3
APRESS, 2011, 518 s. ISBN 9781430232971
[9] J. Steele, N. To, S. Conder, and L. DarceyThe Android Developer’s Collection Addison-Wesley Professional, 2011, 1156 s., ISBN 9780132928618
A
Uk ´azky uˇzivatelsk ´eho rozhrann´ı
Obr´azek 9: Uk´azka aplikace Social Event Guide, Samsung Galaxy Tab 2 10.1, v ´ypis akc´ı
Obr´azek 10: Uk´azka aplikace Social Event Guide, Samsung Galaxy Tab 2 10.1, detailnˇejˇs´ı informace
Obr´azek 11: Uk´azka aplikace Social Event Guide, LG P500,
´uvodn´ı obrazovka
Obr´azek 12: Uk´azka aplikace Social Event Guide, LG P500, v ´ypis ud´alost´ı
Obr´azek 13: Uk´azka aplikace Social Event Guide, LG P500, detailnˇejˇs´ı informace
Obr´azek 14: Uk´azka aplikace Social Event Guide, LG P500, pohled na bod
B
Obsah pˇriloˇzen ´eho CD
Na pˇriloˇzen´em CD se nach´az´ı n´asleduj´ıc´ı sloˇzky:
• Dokumentace- dokumentace zdrojov´eho k ´odu mobiln´ı aplikace
• MobilniAplikace- instalaˇcn´ı soubor s pˇr´ıponouapk
• MobilniAplikaceProject- zdrojov´e k ´ody jako zkomprimovan ´y projekt Eclipse
• Server- zdrojov´e k ´ody serveru
• SQL- SQL skript pro vytvoˇren´ı datab´aze