• No results found

Social Event Guide

N/A
N/A
Protected

Academic year: 2021

Share "Social Event Guide"

Copied!
40
0
0

Loading.... (view fulltext now)

Full text

(1)

Fakulta elektrotechniky a informatiky

Katedra informatiky

Pr ˚

uvodce spole ˇcensk ´ymi ud ´alostmi

Social Event Guide

(2)
(3)
(4)

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.

(5)

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.

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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

(11)

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´ı.

(12)

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

(13)

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.

(14)

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

(15)

• 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/

(16)

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/

(17)

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

(18)

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.

(19)

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

(20)

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

(21)

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!’

(22)

Obr´azek 5: Uk´azka mapy Go-ogle Maps

Obr´azek 6: Uk´azka mapy Mapsforge

(23)

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.

(24)

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.

(25)

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

(26)
(27)

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.

(28)

Obr ´azek 8: T ˇr´ıdn ´ı diagram

(29)

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´ı

(30)

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.

(31)

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.

(32)

...

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

(33)

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

(34)

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.

(35)

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.

(36)

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.

(37)

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

(38)

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

(39)

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

(40)

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

References

Related documents

For example and as in Table 5, regressing a Health indicator (Healthy Life Expectancy) on a QoG variable (Government Effectiveness) and two Health Spending variables (Government

The wavelength ranges that were observed contain a number of spectral lines of other elements. In the process of comput- ing the synthetic spectra, estimates of the abundances of

As demonstrated above, the National Green Building Standard is clearly equivalent to LEED NC when individual green categories are compared, and far more stringent than LEED NC

Furthermore, traditional livestock farming directly fosters the usage of groundwater and dug wells (Oshikweyo) and indirectly reduces the water supply security by, for in-

product/software plus a few fictional personal/demographic details to make it a realistic character. However, in computing fields, such as HCI, there is a lack of

Working in conjunction with the Stroke Association this service provides a community approach in rehabilitation supporting those with an acquired brain injury and/or

Remember that elements and compounds are considered to be pure substances because they both contain only one kind of