ˇ e vysok´e uˇcen´ı technick´e v Praze Cesk´ Fakulta elektrotechnick´a Katedra poˇc´ıtaˇcov´e grafiky a interakce
Bakal´aˇrsk´a pr´ace
Distribuˇ cn´ı kan´ al multimedi´ aln´ıho obsahu formou hry Jana Kozlerov´a
Vedouc´ı pr´ace: Ing. Adam Sporka, Ph.D.
Studijn´ı program: Softwarov´e technologie a management, Bakal´aˇrsk´ y Obor: Web a multimedia 28. kvˇetna 2012
iv
v
Podˇ ekov´ an´ı Na tomto m´ıstˇe bych chtˇela podˇekovat m´emu vedouc´ımu pr´ace Ing. Adamu Sporkovi, Ph.D. za velice cenn´e rady, odborn´e pˇripom´ınky, trpˇelivost, ochotu a za podporu, kterou mi dod´ aval po celou dobu m´eho studia. D´ale bych chtˇela podˇekovat sv´ ym rodiˇc˚ um, kteˇr´ı mi umoˇznili studium na t´eto ˇskole a za jejich podporu ve chv´ıl´ıch, kdy byla nejv´ıce potˇreba. V neposledn´ı ˇradˇe chci podˇekovat sv´ ym pˇr´atel˚ um, kteˇr´ı mi d˚ uvˇeˇrovali a podporovali mne po celou dobu studia.
vi
vii
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem pr´ aci vypracovala samostatnˇe a pouˇzil jsem pouze podklady uveden´e v pˇriloˇzen´em seznamu. Nem´am z´ avaˇzn´ y d˚ uvod proti uˇzit´ı tohoto ˇskoln´ıho d´ıla ve smyslu §60 Z´akona ˇc. 121/2000 Sb., o pr´ avu autorsk´em, o pr´ avech souvisej´ıc´ıch s pr´avem autorsk´ ym a o zmˇenˇe nˇekter´ ych z´akon˚ u (autorsk´ y z´ akon).
V Praze dne 25. 5. 2012
.............................................................
viii
Abstract The aim of this bachelor thesis is the creation of games using which it is possible to distribute multimedia contents. Its distribution is based on Quick Response (QR) codes technology. Their placement follows the rules of a well-known game Geocaching, where based on the principle of seeking geographically localized objects in the real world. One of the target groups is the people who want to distribute some multimedia materials, whether their own or made by others. The distributors encode the pieces of content into one or more QR codes and distribute them to the selected area (street, city, etc.). The second target group is the people who are interested in receiving the contents in a fun way. The result of this thesis is a web application designed mainly for creating games and applications for the Android platform, which is used to scan QR codes and thus to obtain the distributed material. The main contribution of this thesis is a novel method of distribution of the multimedia contents.
Abstrakt C´ılem t´eto bakal´ aˇrsk´e pr´ ace je tvorba her, pomoc´ı kter´ ych je moˇzn´e distribuovat multimedi´aln´ı obsah. Jeho distribuce je zaloˇzena na technologii QR k´od˚ u. D˚ uleˇzit´ ym faktorem pro jejich um´ıstˇen´ı slouˇz´ı pravidla celosvˇetovˇe zn´am´e hry geocaching, kter´ y vych´az´ı z principu vyhled´av´ an´ı geograficky lokalizovan´ ych objekt˚ u v re´aln´em svˇetˇe. Jednou z c´ılov´ ych skupin jsou lid´e, kteˇr´ı chtˇej´ı distribuovat nˇejak´ y multimedi´aln´ı materi´al, at’ uˇz vlastn´ı ˇci jinou tvorbu. Distributoˇri vloˇz´ı materi´ al do jednoho ˇci v´ıce QR k´od˚ u a rozm´ıst´ı je na vybran´em u ´zem´ı (ulice, mˇesto, apod.). Druhou c´ılovou skupinou jsou lid´e, kteˇr´ı maj´ı o takov´ y materi´al z´ ajem a chtˇej´ı ho z´ıskat z´ abavnou formou, kde naˇcten´ım k´od˚ u z´ıskaj´ı poˇzadovan´ y obsah. V´ ysledkem
ix
x
pr´ace je webov´ a aplikace urˇcen´ a hlavnˇe pro tvorbu her a d´ale aplikace pro platformu Android, kter´a slouˇz´ı ke sn´ım´ an´ı QR k´ od˚ u a t´ım p´ adem k z´ısk´an´ı distribuovan´eho materi´alu. Hlavn´ım pˇr´ınosem pr´ace je tedy moˇznost distribuovat multimedi´aln´ı obsah, zaloˇzen´ y na myˇslence ˇs´ıˇrit jej formou hry.
Obsah ´ 1 Uvod
1
2 Relevantn´ı technologie a pˇ r´ıbuzn´ e aplikace 2.1 Technologie QR k´ odu . . . . . . . . . . . . . 2.1.1 V´ yznam, vznik, v´ yvoj . . . . . . . . . 2.1.2 Technick´e specifikace . . . . . . . . . . 2.1.3 Distribuce QR k´ odu . . . . . . . . . . 2.1.3.1 Gener´ atory . . . . . . . . . . 2.1.3.2 Aplikace podporuj´ıc´ı sn´ım´an´ı 2.1.4 Podporovan´e form´aty . . . . . . . . . 2.1.5 Dalˇs´ı moˇznosti vyuˇzit´ı QR k´od˚ u . . . 2.2 Geocaching . . . . . . . . . . . . . . . . . . . 2.2.1 V´ yznam . . . . . . . . . . . . . . . . . 2.2.2 Vznik . . . . . . . . . . . . . . . . . . 2.2.3 Keˇs . . . . . . . . . . . . . . . . . . . 2.2.3.1 Obsah keˇse . . . . . . . . . . 2.2.4 Typy keˇs´ı . . . . . . . . . . . . . . . . 2.2.4.1 Podle velikosti . . . . . . . . 2.2.4.2 Podle charakteru . . . . . . . 2.3 Android . . . . . . . . . . . . . . . . . . . . . 2.3.1 Vznik a v´ yznam . . . . . . . . . . . . 2.3.2 Hlavn´ı vlastnosti . . . . . . . . . . . . 2.3.3 Z´ akladn´ı stavebn´ı prvky aplikace . . . 2.4 Pˇrehled obdobn´ ych projekt˚ u. . . . . . . . . . ˇ 2.4.1 Reˇsen´ı v ˇcesk´em jazyce . . . . . . . . 2.4.1.1 #QRgame . . . . . . . . . . 2.4.1.2 District 9 QR Code Game . 2.4.1.3 QR Code game . . . . . . . . ˇ sen´ı v anglick´em jazyce . . . . . . . 2.4.2 Reˇ 2.4.2.1 Google’s QR Code Game . . 2.4.2.2 QR Wild Game . . . . . . . 2.4.2.3 QR Kill Game . . . . . . . . 2.4.2.4 Riddle Game with QR Codes
xi
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 3 3 5 5 5 5 6 9 10 10 11 11 11 12 12 12 14 14 14 15 16 16 16 17 17 17 17 17 18 18
xii
3 N´ avrh funkˇ cnosti 3.1 Webov´ y port´ al . . . . . . . . . . . . . . . . 3.1.1 Popis syst´emu . . . . . . . . . . . . 3.1.2 C´ılov´ a skupina . . . . . . . . . . . . 3.1.3 Uˇzivatelsk´e role . . . . . . . . . . . . 3.1.3.1 Role Nepˇrihl´ aˇsen´ y uˇzivatel 3.1.3.2 Role Pˇrihl´ aˇsen´ y uˇzivatel . . 3.1.3.3 Role Administr´ator . . . . 3.1.4 Poˇzadavky na syst´em . . . . . . . . 3.1.4.1 Funkˇcn´ı poˇzadavky . . . . 3.1.4.2 Nefunkˇcn´ı poˇzadavky . . . 3.2 Aplikace . . . . . . . . . . . . . . . . . . . . 3.2.1 Popis aplikace . . . . . . . . . . . . . 3.2.2 C´ılov´ a skupina . . . . . . . . . . . . 3.2.3 Poˇzadavky na aplikaci . . . . . . . . 3.2.3.1 Funkˇcn´ı poˇzadavky . . . . 3.2.3.2 Nefunkˇcn´ı poˇzadavky . . .
OBSAH
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
4 Implementace 4.1 Pouˇzit´e technologie . . . . . . . . . . . . . . . . . . . . . 4.1.1 Programovac´ı jazyk PHP [20] . . . . . . . . . . . 4.1.2 NetBeans IDE . . . . . . . . . . . . . . . . . . . 4.1.3 MySQL datab´ aze . . . . . . . . . . . . . . . . . . 4.1.4 Model - View - Controller . . . . . . . . . . . . . 4.1.5 JavaScript . . . . . . . . . . . . . . . . . . . . . . 4.2 Implementace webov´e aplikace . . . . . . . . . . . . . . 4.2.1 Dom´enov´ y model . . . . . . . . . . . . . . . . . . 4.2.1.1 Tabulky datab´ aze . . . . . . . . . . . . 4.2.2 Implementace aplikace [22] . . . . . . . . . . . . 4.2.2.1 Seznam sloˇzek . . . . . . . . . . . . . . 4.2.2.2 D˚ uleˇzit´e soubory . . . . . . . . . . . . . 4.2.3 Tˇr´ıdy modelu . . . . . . . . . . . . . . . . . . . . 4.2.3.1 Dalˇs´ı tˇr´ıdy . . . . . . . . . . . . . . . . 4.3 Implementace aplikace [23] . . . . . . . . . . . . . . . . . 4.3.1 Datov´ a vrstva aplikace . . . . . . . . . . . . . . . 4.3.1.1 Form´ at dat v datov´em souboru . . . . . 4.3.2 Implementace business logiky . . . . . . . . . . . 4.3.2.1 Sn´ım´ an´ı QR k´ odu . . . . . . . . . . . . 4.3.2.2 Zobrazen´ı detailu QR k´odu . . . . . . . 4.3.2.3 Zobrazen´ı detailu hry z rozehran´ ych her 5 Testov´ an´ı pouˇ zitelnosti 5.1 Testov´ an´ı webov´eho port´ alu . . . . . . . . . . . . . . ´ castn´ıc´ı testu . . . . . . . . . . . . . . . . . 5.1.1 Uˇ 5.1.1.1 Data z´ıskan´ a ze screener dotazn´ıku . 5.1.2 Dotazn´ık pˇred testov´ an´ım . . . . . . . . . . .
. . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . .
. . . . . . . . . . . . . . . .
19 19 19 19 20 20 20 20 20 20 21 21 21 22 22 22 22
. . . . . . . . . . . . . . . . . . . . .
23 23 23 24 24 24 25 25 25 25 26 26 27 27 32 35 35 35 36 36 37 38
. . . .
41 41 41 42 42
OBSAH
xiii
5.1.2.1 Data z´ıskan´a z dotazn´ıku pˇred testov´an´ım . . . . . . . . Pr˚ ubˇeh testov´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3.1 Soupis u ´kol˚ u pro participanty . . . . . . . . . . . . . . . 5.1.4 Souhrn poznatk˚ u z testov´an´ı s jednotliv´ ymi u ´ˇcastn´ıky testov´an´ı . 5.1.5 Nalezen´ y probl´em a n´avrhy jeho ˇreˇsen´ı . . . . . . . . . . . . . . . 5.1.6 Dotazn´ık po testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . Testov´ an´ı aplikace Android . . . . . . . . . . . . . . . . . . . . . . . . . ´ castn´ıc´ı testu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Uˇ 5.2.1.1 Data z´ıskan´a ze screener dotazn´ıku . . . . . . . . . . . . 5.2.2 Dotazn´ık pˇred testov´an´ım . . . . . . . . . . . . . . . . . . . . . . 5.2.2.1 Data z´ıskan´a z dotazn´ıku pˇred testov´an´ım . . . . . . . . 5.2.3 Pr˚ ubˇeh testov´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4 Souhrn poznatk˚ u z testov´an´ı s jednotliv´ ymi u ´ˇcastn´ıky testov´an´ı . 5.2.5 Dotazn´ık po testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . 5.2.6 Z´ avˇery z testov´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3
5.2
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
43 44 44 45 46 46 47 47 48 48 49 50 50 50 51
6 Z´ avˇ er
53
A Seznam zkratek
57
B UML diagramy
59
C Instalaˇ cn´ı a uˇ zivatelsk´ a pˇ r´ıruˇ cka C.1 Instalaˇcn´ı pˇr´ıruˇcka . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.1.1 Instalaˇcn´ı pˇr´ıruˇcka pro webov´ y port´al . . . . . . . . . . . . . C.1.1.1 Vlastnosti serveru . . . . . . . . . . . . . . . . . . . ´ C.1.1.2 Uprava datab´aze . . . . . . . . . . . . . . . . . . . . C.1.1.3 Instalace bal´ıku aplikace . . . . . . . . . . . . . . . C.1.1.4 Spuˇstˇen´ı webu . . . . . . . . . . . . . . . . . . . . . C.1.2 Instalaˇcn´ı pˇr´ıruˇcka pro aplikaci operaˇcn´ıho syst´emu Android C.1.2.1 Staˇzen´ı aplikace . . . . . . . . . . . . . . . . . . . . C.1.2.2 Instalace aplikace . . . . . . . . . . . . . . . . . . . C.1.2.3 Instalace podp˚ urn´e aplikace . . . . . . . . . . . . . . C.1.2.4 Spuˇstˇen´ı aplikace . . . . . . . . . . . . . . . . . . . . C.2 Uˇzivatelsk´ a pˇr´ıruˇcka . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2.1 Webov´ y port´ al . . . . . . . . . . . . . . . . . . . . . . . . . . C.2.2 Aplikace pro operaˇcn´ı syst´em Android . . . . . . . . . . . . . D Obsah pˇ riloˇ zen´ eho CD
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
61 61 61 61 61 62 62 63 63 63 63 63 63 63 65 67
xiv
OBSAH
Seznam obr´ azk˚ u 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8
Sch´ema rozloˇzen´ı QR k´ odu, pˇrevzato z [1] . . . . . . . . . . . . . . . . . . . . Sloˇzen´ı QR k´ odu, pˇrevzato z [2] . . . . . . . . . . . . . . . . . . . . . . . . . . Verze QR k´ od˚ u, pˇrevzato z [2] . . . . . . . . . . . . . . . . . . . . . . . . . . . Hustota tiskov´e hlavy a velikost modulu, pˇrevzato z [2] . . . . . . . . . . . . . Firemn´ı vizitka, pˇrevzato z [3] . . . . . . . . . . . . . . . . . . . . . . . . . . . Let´ ak pro sb´ırkov´ y projekt Pomozte dˇetem, pˇrevzato z [3] . . . . . . . . . . . Plak´ at k filmu Vratn´e lahve, pˇrevzato z [3] . . . . . . . . . . . . . . . . . . . . Jihokorejci nakupuj´ıc´ı potraviny na stˇen´ach metra pomoc´ı QR k´od˚ u, pˇrevzato z [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9 Potisk pro pˇrid´ an´ı sebe sama do skupiny pˇr´atel na soci´aln´ı s´ıti Facebook, pˇrevzato z [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.10 Dekoraˇcn´ı QR k´ od um´ıstˇen´ y v bytˇe, pˇrevzato z [10] . . . . . . . . . . . . . . . 2.11 Jeden z QR k´ odu um´ıstˇen´ ych na poloostrovˇe Long Beach Peninsula, kter´ y vede na odkazy na doplˇ nkov´e informace na WWW str´ank´ach. K´ody jsou um´ıstˇeny kolem v´ yletn´ı cesty pod´el pl´aˇze a na pˇrilehl´ ych dun´ach, jakoˇz i v okol´ı historick´ ych objekt˚ u, pˇrevzato z [11] . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1
3 4 4 4 6 7 8 9 9 10
10
Struktura architektury MVC, pˇrevzato z [21] . . . . . . . . . . . . . . . . . .
25
B.1 Class diagram webov´e aplikace . . . . . . . . . . . . . . . . . . . . . . . . . . B.2 Class diagram aplikace Android . . . . . . . . . . . . . . . . . . . . . . . . . .
59 60
xv
xvi
´ U ˚ SEZNAM OBRAZK
Seznam tabulek 2.1
Technick´e specifikace QR k´odu, pˇrevzato z [3] . . . . . . . . . . . . . . . . . .
5
5.1 5.2 5.3 5.4 5.5 5.6 5.7
V´ ysledky screener dotazn´ıku - participanti, kteˇr´ı byli vybr´ani pro testov´an´ı . V´ ysledky screener dotazn´ıku - participanti, kteˇr´ı nebyli vybr´ani pro testov´an´ı Data z´ıskan´ a z pre-testu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data z dotazn´ıku po testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . V´ ysledky screener dotazn´ıku - participanti, kteˇr´ı byli vybr´ani pro testov´an´ı . Data z´ıskan´ a z pre-testu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Data z dotazn´ıku po testov´an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . .
42 42 43 47 48 49 51
xvii
xviii
SEZNAM TABULEK
Kapitola 1
´ Uvod V souˇcasn´e dobˇe ˇzijeme ve svˇetˇe pln´em rozv´ıjej´ıc´ıch se technologi´ı, bez kter´ ych si ho uˇz ˇ asi nedok´ aˇzeme pˇredstavit. Nemal´e procento zast´avaj´ı i informaˇcn´ı technologie. Casto si ani neuvˇedomujeme, ˇze jsme obklopov´ani velk´ ym mnoˇzstv´ım dat. Dennˇe se s nimi setk´av´ame v bˇeˇzn´em ˇzivotˇe v r˚ uzn´ ych form´ ach, at’ uˇz v pr´aci, ve ˇskole ˇci v dom´acnosti, kde n´am mohou usnadnit pr´ aci. Pr´ avˇe d´ıky informaˇcn´ım technologi´ım se za posledn´ıch 10 let v´ yraznˇe zmˇenila mentalita lid´ı, nejv´ıce vˇsak mladˇs´ı generace. V´ıce se uzav´ıraj´ı doma u televize, u sv´ ych poˇc´ıtaˇc˚ u, notebook˚ u, iPad˚ u, MP3 pˇrehr´ avaˇc˚ u, mobiln´ıch telefon˚ u a dalˇs´ıch elektronick´ ych mazl´ıˇck˚ u. Spousta z´ abavy a her, pˇri kter´ ych jsme se jako mal´ı vydrˇzeli po cel´ y den, jsou jim ve vˇetˇsinˇe pˇr´ıpad˚ u uˇz velice ciz´ı. Lid´e se proto m´enˇe zapojuj´ı do spoleˇcn´ ych venkovn´ıch aktivit. Tato bakal´ aˇrsk´ a pr´ ace m´ a za u ´kol vytvoˇrit hru, kter´a by lidem uk´azala, jak se d´a tr´ avit voln´ y ˇcas i jinak, neˇz tomu bylo doposud, ˇze i venku mohou nal´ezt z´abavu. Protoˇze poslech hudby, ˇcetba knih, prohl´ıˇzen´ı obr´azk˚ u a dalˇs´ıch m´edi´ı je na denn´ım poˇr´adku, distribuovat se budou pr´ avˇe tato m´edia, a to pomoc´ı technologie Quick Response (QR) k´od˚ u, kde zvolen´e m´edium bude rozdˇeleno do nˇekolika k´od˚ u, tzv. segment˚ u. Za pomoci celosvˇetovˇe zn´am´e hry geocaching bude moˇzn´e nal´ezt segmenty za pomoci GPS1 lokace uloˇzen´e v QR k´odu. M´ ym c´ılem je vytvoˇrit webov´ y port´al, na kter´em bude moˇzn´e hry vytv´aˇret a z´aroveˇ n poskytovat seznam tˇechto vytvoˇren´ ych her. Dalˇs´ım d˚ uleˇzit´ ym bodem bude vytvoˇrit aplikaci pro platformu Android, kter´ a bude m´ıt za u ´kol sn´ımat QR k´ody. V k´odech bude uloˇzen URL odkaz na segment uloˇzen´ y na serveru a GPS lokaci pro nalezen´ı n´asleduj´ıc´ıho segmentu. D´ale bude obsahovat seznam zapoˇcat´ ych her a bliˇzˇs´ı informace ke kaˇzd´e z nich. Aplikace bude vybavena kompasem pro pr´aci s GPS souˇradnicemi. Dle zad´ an´ı lze c´ıle m´e bakal´ aˇrsk´e pr´ace shrnout do tˇechto bod˚ u: 1. Sezn´ amit se s technologi´ı a vybran´ ymi zp˚ usoby pouˇzit´ı 2D ˇc´arov´ ych k´odu standardu QR. 2. Sezn´ amit se s hrou geocaching a vybran´ ymi aplikacemi, kter´e podporuj´ı uˇzivatele v u ´ˇcasti na t´eto hˇre. 1 GPS - jedn´ a se o vojensk´ y glob´ aln´ı druˇzicov´ y polohov´ y syst´em provozovan´ y Ministerstvem obrany Spojen´ ych st´ at˚ u americk´ ych, s jehoˇz pomoc´ı je moˇzno urˇcit polohu a pˇresn´ y ˇcas kdekoliv na Zemi nebo nad Zem´ı s pˇresnost´ı do deseti metr˚ u. Pˇresnost GPS lze s pouˇzit´ım dalˇs´ıch metod jeˇstˇe zv´ yˇsit aˇz na jednotky centimetr˚ u.
1
´ KAPITOLA 1. UVOD
2
3. Realizovat variantu hry typu geocaching s vyuˇzit´ım QR k´od˚ u, kter´a bude pracovat jako distribuˇcn´ı kan´ al multimedi´ aln´ıho obsahu, kde hr´aˇci budou m´ıt za u ´kol nach´azet v re´aln´em svˇetˇe samolepky s QR k´ody, kter´e budou reprezentovat fragmenty multimedi´aln´ıho obsahu. 4. Tuto hru realizovat jako kombinaci aplikace na mobiln´ım telefonu a webov´eho port´alu. 5. Navrhnout a realizovat test pouˇzitelnosti v´ ysledn´e aplikace. Cel´a pr´ace obsahuje 6 kapitol. V kapitole Relevantn´ı technologie a pˇr´ıbuzn´e aplikace (2) jsou vysvˇetleny pojmy jako geocaching a QR k´od, kter´e je nezbytn´e zn´at k pochopen´ı cel´e myˇslenky projektu. V posledn´ı ˇc´ asti kapitoly pak pˇrehled obdobn´ ych projekt˚ u. V kapitole N´avrh funkˇcnosti (3) je jiˇz v´ıce pops´ ana struktura navrhovan´eho projektu, pˇredevˇs´ım c´ılov´e skupiny, role a funkˇcn´ı a nefunkˇcn´ı poˇzadavky. Kapitola Implementace (4) pak konkr´etnˇe uv´ad´ı pouˇzit´e technologie a popis implementace s nˇekolika pˇr´ıklady k´od˚ u. Testov´an´ı aplikace i webu je pak zdokumentov´ ano v kapitole Testov´an´ı pouˇzitelnosti (5). Zhodnocen´ı pr´ace spolu s moˇznostmi dalˇs´ıho rozˇs´ıˇren´ı syst´emu je moˇzno nal´ezt v posledn´ı kapitole Z´avˇer (6).
Kapitola 2
Relevantn´ı technologie a pˇ r´ıbuzn´ e aplikace V t´eto kapitole jsou vysvˇetleny pojmy jako geocaching a QR k´od, kter´e je nezbytn´e zn´ at k pochopen´ı cel´e myˇslenky projektu. V posledn´ı ˇc´asti kapitoly pak pˇrehled obdobn´ ych projekt˚ u.
2.1
Technologie QR k´ odu
Pro jednoduˇsˇs´ı pochopen´ı QR k´ odu se zde v u ´vodn´ı kapitole zab´ yv´am v´ yznamem k´odu, jak a kde vznikl, jak se vyv´ıjel. D´ ale pak jak a z ˇceho se k´od skl´ad´a, verze k´od˚ u a technickou specifikaci. V dalˇs´ı ˇc´ asti pak moˇznosti distribuce, kde jmenuji nˇekolik v´ yznamn´ ych gener´ator˚ u a scanner˚ u. D´ ale pak podporovan´e form´aty a pˇr´ıklady moˇznosti vyuˇzit´ı QR k´od˚ u.
2.1.1
V´ yznam, vznik, v´ yvoj
QR k´od patˇr´ı do kategorie dvourozmˇern´ ych k´od˚ u. Tento k´od se zapisuje do ˇctverce, kter´ y m´ a ve sv´ ych tˇrech vrcholech poziˇcn´ı znaˇcky ve formˇe soustˇredˇen´ ych troj´ uheln´ık˚ u. Ve ˇctvrt´em vrcholu m´ a znaˇcku ve tvaru menˇs´ıho ˇctyˇru ´heln´ıku a ve spojnic´ıch mezi tˇemito hraniˇcn´ımi ˇctyˇru ´heln´ıky m´ au ´seˇcky tvoˇren´e stˇr´ıdavˇe bodem a mezerou (Obr. 2.1).
Obr´ azek 2.1: Sch´ema rozloˇzen´ı QR k´odu, pˇrevzato z [1]
3
4
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
Ve verzi micro QR nˇekter´e prvky klasick´eho QR k´odu chyb´ı a z´aroveˇ n je i schopna zaznamenat menˇs´ı objem dat. QR k´ od m´a mimo jin´e vyspˇel´ y mechanizmus kontroly chyb, kter´ y dok´aˇze obnovit 7 aˇz 30 % dat (Obr. 2.2).
Obr´ azek 2.2: Sloˇzen´ı QR k´odu, pˇrevzato z [2] Patent na technologii QR k´ od˚ u patˇr´ı spoleˇcnosti Denso Ware Inc., ale patentov´a pr´ava nejsou vykon´av´ ana. Spoleˇcnost v mnoha zem´ıch vlastn´ı obchodn´ı zn´amku QR Code“. Jeho ” specifikace je od ˇcervna roku 2000 standardem ISO 18004. Tento standard byl upraven v roce 2006. QR k´od m´ a 40 tzv. verz´ı, kter´e jsou urˇceny velikost´ı samotn´eho k´odu v bodech. K´od nejmenˇs´ı verze 1 m´ a velikost 21x21 bod˚ u. Kaˇzd´a n´asleduj´ıc´ı verze je o 4 body ˇsirˇs´ı a vyˇsˇs´ı. Posledn´ı verze, tedy verze 40, m´ a velikost 177x177 bod˚ u. QR k´od verze v, o d´elce strany 2 n = 17 + 4 × v m˚ uˇze data zaznamenat do n –193–2 × (n–16) (Obr. 2.3).
Obr´ azek 2.3: Verze QR k´od˚ u, pˇrevzato z [2]
Obr´ azek 2.4: Hustota tiskov´e hlavy a velikost modulu, pˇrevzato z [2]
´ 2.1. TECHNOLOGIE QR KODU
2.1.2
5
Technick´ e specifikace
Tato podkapitola bl´ıˇze specifikuje QR k´od, jeho velikost, typ a moˇzn´ y obsah k´odu, korekci chyb. Velikost symbolu Typ a mnoˇzstv´ı dat (moˇznost sm´ıˇsen´eho uˇzit´ı)
Opravy chyb (obnova dat)
Strukturovan´e pˇripojen´ı
21 × 21 − 177 × 177 modul˚ u (velikost roste po 4 modulech) Numeric Max. 7,089 znak˚ u Alphanumeric Max. 4,296 znak˚ u 8-bit bytes Max. 2,953 znak˚ u Kanji Max. 1,817 znak˚ u Level L Cca. 7% k´odov´ ych slov m˚ uˇze b´ yt obnoveno Level M Cca. 15% k´odov´ ych slov m˚ uˇze b´ yt obnoveno Level Q Cca. 25% k´odov´ ych slov m˚ uˇze b´ yt obnoveno Level H Cca. 30% k´odov´ ych slov m˚ uˇze b´ yt obnoveno Max. 16 znak˚ u (vytisknut´ ych vedle sebe, atd.)
Tabulka 2.1: Technick´e specifikace QR k´odu, pˇrevzato z [3]
2.1.3
Distribuce QR k´ odu
Tato ˇc´ ast se zab´ yv´ a moˇznost´ı, jak distribuovat QR k´ody. Obsahuje seznam nejzn´amˇejˇs´ıch a nejpouˇz´ıvanˇejˇs´ıch gener´ ator˚ u k´odu a aplikace, kter´e podporuj´ı jejich sn´ım´an´ı. Seznamy nejsou kompletn´ı, protoˇze aplikac´ı pro generov´an´ı a sn´ım´an´ı k´od˚ u je mnoho a nen´ı snadn´e vˇsechny tyto aplikace dohledat. 2.1.3.1
Gener´ atory
• Kaywa [4] • QR gener´ ator od firmy ZXing [5] • GOQR.ME [6] • QR Code Generator [7] 2.1.3.2
Aplikace podporuj´ıc´ı sn´ım´ an´ı
• Barcode Scanner [7] • QR-Droid (nebo verze QR Droid Private) [7] • QuickMark Lite QR Code Reader [7] • AT&T Code Scanner [7] • CarLocate QR Scanner [7] • QR Code Reader/ Scanner [7]
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
6
• i-nigma Barcode Scanner [7] • Fun2D QR Code Reader [7] • Biz Barcode [7] • Arion QR Scan [7] • QR Contact 1.6 [7] • QR Code Scanner Pro [7] • QuickMark Barcode Scanner [7] • Kaywa Reader [8]
2.1.4
Podporovan´ e form´ aty
QR k´ody maj´ı pˇredem deklarovan´e funkce. V t´eto podkapitole je v´ yˇcet podporovan´ ych form´at˚ u, kter´e je moˇzn´e tˇemito funkcemi distribuovat. Kaˇzd´ y form´at je d´ale bl´ıˇze specifikov´an. 1. Odkaz na URL adresu (Link to the URL address) • QR k´ od, ve kter´em je uloˇzena URL adresa, slouˇz´ı uˇzivateli jako pˇresn´e a rychl´e nasmˇerov´ an´ı k poˇzadovan´emu c´ıli. Pot´e, co uˇzivatel sejme tento k´od, zobraz´ı se internetov´ y prohl´ıˇzeˇc a naˇcte pˇreddefinovanou webovou str´anku. Tato webov´a str´anka m˚ uˇze automaticky pˇrehr´at zvuk nebo video pˇr´ımo v mobiln´ım telefonu. Prostˇred´ı webu m˚ uˇze pˇrin´est uˇzitek i sv´emu zprostˇredkovateli, m˚ uˇze tak vidˇet n´avˇstˇevnost sv´ ych QR k´ od˚ u a sledovat popularitu sv´ ych ˇcl´ank˚ u. Form´at URL se pouˇz´ıv´ a pˇrev´ aˇznˇe v novin´ ach, ˇcasopisech, ale i na firemn´ıch vizitk´ach.
Obr´ azek 2.5: Firemn´ı vizitka, pˇrevzato z [3]
´ 2.1. TECHNOLOGIE QR KODU
7
2. Odesl´ an´ı pˇ reddefinovan´ e SMS nebo e-mailu (Send a predefined SMS or email) • Telefonn´ı ˇc´ıslo ˇci adresu pˇr´ıjemce a text zpr´avy lze zakomponovat do QR k´ odu. Pokud uˇzivatel mobiln´ıho telefonu udˇel´a sn´ımek takto vytvoˇren´eho QR k´odu, telefon mu umoˇzn´ı odeslat pˇredpˇripravenou zpr´avu. Funkci SMS zpr´avy ale nelze uˇz´ıt ve vˇsech pˇr´ıpadech. Napˇr´ıklad d´arcovsk´e DMS zpr´avy nebo hlasovac´ı SMS jsou pro vyuˇzit´ı tohoto form´atu nejide´alnˇejˇs´ı. Proto QR k´ody ve form´atu SMS nebo e-mail se m˚ uˇzou vyskytovat na televizn´ıch obrazovk´ach pˇri div´ack´em hlasov´an´ı, ˇci div´ ack´ ych soutˇeˇz´ıch, na let´ac´ıch podporuj´ıc´ıch dobroˇcinn´e u ´ˇcely, na parkovac´ıch automatech atp.
Obr´ azek 2.6: Let´ ak pro sb´ırkov´ y projekt Pomozte dˇetem, pˇrevzato z [3] 3. Zah´ ajen´ı hovoru s definovan´ ym telefonn´ım ˇ c´ıslem (Start a call with a defined phone number) • Protoˇze lze QR k´ od˚ um nadefinovat telefonn´ı ˇc´ıslo, po jeho sejmut´ı m˚ uˇze uˇzivatel potvrzen´ım vol´ an´ı zah´ ajit vyt´aˇcen´ı ˇc´ısla uloˇzen´eho v k´odu. Tato varianta je vhodn´ a pro podobn´e pˇr´ıpady, jako je uvedeno u pˇredchoz´ı varianty s SMS zpr´avami. Tyto QR k´ ody mohou nav´ıc figurovat na vizitk´ach ˇci jin´ ych tiskovin´ach, obsahuj´ıc´ıch kontaktn´ı u ´daje. 4. Uloˇ zen´ı pozn´ amky do mobiln´ıho kalend´ aˇ re (Save notes in your mobile calendar) • Tuto variantu uˇzivatel vyuˇzije nejˇcastˇeji pro uloˇzen´ı nˇejak´e kulturn´ı ud´alosti do sv´eho mobiln´ıho telefonu. Po sejmut´ı QR k´odu s informac´ı ˇr´ıkaj´ıc´ı, ˇze urˇcit´eho data v urˇcitou hodinu zaˇc´ın´a urˇcit´a akce na urˇcit´em m´ıstˇe atp., se mu toto uloˇz´ı do sv´eho mobiln´ıho kalend´aˇre a uˇzivateli to tak uˇsetˇr´ı ˇcas vypisovat informace ruˇcnˇe.
8
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
Obr´ azek 2.7: Plak´ at k filmu Vratn´e lahve, pˇrevzato z [3] 5. Uloˇ zen´ı kontaktn´ıch u ´ daj˚ u do telefonn´ıho seznamu (Save contact in to the contact list) • Ukl´ ad´ an´ı kontaktn´ıch u ´daj˚ u do telefonn´ıho seznamu m˚ uˇze b´ yt zdlouhav´e a v´est k chyb´ am, zp˚ usoben´ ym pˇreklepy. Proto zejm´ena na potisk firemn´ıch vizitek je vhodn´ a varianta QR k´ odu, kter´a shromaˇzd’uje kontaktn´ı informace, jeˇz n´aslednˇe uloˇz´ı do telefonn´ıho seznamu. Do takto definovan´eho QR k´odu lze uloˇzit jm´eno, n´azev firmy, telefonn´ı ˇc´ıslo, e-mail, adresu, webovou adresu ˇci pozn´amku. 6. Naˇ cten´ı GPS souˇ radnic do mobiln´ı GPS navigace (Retrieve GPS coordinates into mobile GPS navigation) • GPS navigace v mobiln´ıch telefonech je ˇc´ım d´al rozˇs´ıˇrenˇejˇs´ı funkc´ı modern´ıch telefon˚ u. Zad´ av´ an´ı adresy do navigace m˚ uˇze nˇekdy zp˚ usobit probl´emy (adresy se mˇen´ı, mapy v navigac´ıch st´arnou). Ruˇcn´ı zad´av´an´ı GPS souˇradnic do naviˇ sen´ım je QR k´od, kam lze zak´odovat gace je velmi nepohodln´e a nepraktick´e. Reˇ GPS souˇradnice v jejich numerick´e podobˇe. Tedy, i kdyˇz se v budoucnu zmˇen´ı napˇr´ıklad n´ azev ulice poˇzadovan´e firmy, QR k´od bude z´akazn´ıky vˇzdy nav´adˇet na spr´avn´e m´ısto. Staˇc´ı sejmout QR ˇc´arov´ y k´od, mobiln´ı GPS navigace se spust´ı a je pˇripraven´ a navigovat na m´ısto, kter´e je v QR k´odu pˇredurˇceno.
´ 2.1. TECHNOLOGIE QR KODU
9
7. Zobrazen´ı libovoln´ eho zak´ odovan´ eho textu (Display any encoded text)
• Nˇekdy je zapotˇreb´ı pouze zobrazit zak´odovan´ y text. I pro tento pˇr´ıpad m˚ uˇze b´ yt QR k´ od ˇreˇsen´ım. Do k´odu lze uloˇzit aˇz 7000 numerick´ ych znak˚ u nebo 4200 nenumerick´ ych znak˚ u.
2.1.5
Dalˇ s´ı moˇ znosti vyuˇ zit´ı QR k´ od˚ u
Tato podkapitola uv´ ad´ı dalˇs´ı pˇr´ıklady, kde a jak lze tuto technologii vyuˇz´ıt i jin´ ym zp˚ usobem, neˇz v pˇr´ıpadech uveden´ ych v kapitole 2.1.4.
Obr´azek 2.8: Jihokorejci nakupuj´ıc´ı potraviny na stˇen´ach metra pomoc´ı QR k´od˚ u, pˇrevzato z [9]
Obr´azek 2.9: Potisk pro pˇrid´ an´ı sebe sama do skupiny pˇr´atel na soci´aln´ı s´ıti Facebook, pˇrevzato z [10]
10
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
Obr´ azek 2.10: Dekoraˇcn´ı QR k´od um´ıstˇen´ y v bytˇe, pˇrevzato z [10]
Obr´azek 2.11: Jeden z QR k´ odu um´ıstˇen´ ych na poloostrovˇe Long Beach Peninsula, kter´ y vede na odkazy na doplˇ nkov´e informace na WWW str´ank´ach. K´ody jsou um´ıstˇeny kolem v´ yletn´ı cesty pod´el pl´aˇze a na pˇrilehl´ ych dun´ ach, jakoˇz i v okol´ı historick´ ych objekt˚ u, pˇrevzato z [11]
2.2
Geocaching
Geocaching je druhou hlavn´ı souˇc´ ast´ı cel´eho projektu. D´ıky sv´ ym pravidl˚ um se bude multimedi´aln´ı obsah distribuovat ve formˇe hry, coˇz je jednou z myˇslenek projektu. Tato tˇret´ı kapitola vysvˇetl´ı v´ yznam slova geocaching, jak a kde vznik, jak´a jsou pravidla a jak´ ym zp˚ usobem se d´ a vyuˇz´ıt.
2.2.1
V´ yznam
Geocaching je hra na pomez´ı sportu a turistiky, kter´a spoˇc´ıv´a v pouˇzit´ı navigaˇcn´ıho syst´emu GPS pˇri hled´an´ı skryt´e schr´ anky naz´ yvan´e cache (v ˇceˇstinˇe ps´ano i keˇs), o n´ıˇz jsou zn´amy jen
2.2. GEOCACHING
11
jej´ı zemˇepisn´e souˇradnice (v syst´emu WGS 84). Pˇri hled´an´ı se pouˇz´ıvaj´ı turistick´e pˇrij´ımaˇce ˇ ek, zab´ GPS. Clovˇ yvaj´ıc´ı se geocachingem, b´ yv´a oznaˇcov´an slovem geocacher t´eˇz geokaˇcer nebo prostˇe kaˇcer. Po objeven´ı keˇse, zaps´an´ı se do logbooku a pˇr´ıpadn´e v´ ymˇenˇe obsahu ji n´alezce opˇet uschov´ a a zamaskuje. Jednou ze z´ akladn´ıch myˇslenek geocaching je umist’ov´an´ı keˇs´ı na m´ıstech, kter´a jsou nˇeˇc´ım zaj´ımav´ a a pˇresto nejsou turisticky navˇstˇevovan´a. V popisu keˇse (listing) jsou pak uvedeny informace o m´ıstˇe s jeho zvl´aˇstnostmi a zaj´ımavostmi. Keˇs se ale umist’uj´ı i do zaj´ımav´ ych m´ıst velmi frekventovan´ ych. V nˇekter´ ych pˇr´ıpadech je zaj´ımav´ ym pr´avˇe u ´kol, kter´ y je s nalezen´ım keˇse spojen.
2.2.2
Vznik
Geocaching vznikl v USA bezprostˇrednˇe pot´e, co 1. kvˇetna 2000 rozhodnut´ı tehdejˇs´ıho americk´eho prezidenta Clintona odstranilo umˇelou odchylku, pˇrid´avanou do sign´alu GPS, a zlepˇsilo tak pˇresnost tohoto navigaˇcn´ıho syst´emu pro bˇeˇzn´e civiln´ı uˇzivatele z des´ıtek aˇz stovek na nˇekolik metr˚ u. K ˇcervnu 2005 bylo ve 215 zem´ıch na cel´em svˇetˇe pˇres 171 000 skr´ yˇs´ı pro geocaching, ˇ ˇ z toho zhruba 700 v Cesku. V z´ aˇr´ı roku 2006 vzrostl poˇcet skr´ yˇs´ı v Cesku na celkem 2570 a ˇcesk´ y geocaching d´ ale proˇz´ıval sv˚ uj boom, nebot’ v listopadu 2007 bylo na ˇcesk´em u ´zem´ı zaregistrov´ ano jiˇz pˇres 5600 skr´ yˇs´ı. Na zaˇc´atku bˇrezna 2008 bylo na svˇetˇe registrov´ano pˇres ˇ p˚ ul milionu m´ıst, z toho 6600 v Cesku. Podle statistik serveru geocaching.com najde alespoˇ n ˇ bylo zaloˇzeno do 30. Listopadu 2008 jednu keˇs za t´ yden v pr˚ umˇeru kolem 50 tis´ıc lid´ı. V CR 11496 keˇs´ı, a do 31. srpna 2009 15707 keˇs´ı. Komunita geokaˇcer˚ u organizuje rozmanit´e kolektivn´ı akce ( setk´avac´ı“ keˇs) s programem ” jako jsou napˇr. u ´klidy v pˇr´ırodˇe, geosetk´an´ı, geohry (CITO cache, Event cache).
2.2.3
Keˇ s
Keˇs b´ yv´ a vodovzdorn´ a, vˇetˇsinou plastov´a schr´anka, kanystr, apod. Zakladatel keˇse (tzv. owner, z angl. owner = majitel) po jej´ım um´ıstˇen´ı zveˇrejn´ı jej´ı souˇradnice na nˇekter´ y internetov´ y server zab´ yvaj´ıc´ı se geocachingem. Schr´anka by mˇela b´ yt dostateˇcnˇe velik´a, aby se do n´ı veˇsel den´ık (tzv. logbook), do nˇehoˇz se zapisuj´ı jej´ı n´alezci. B´ yv´a zvykem um´ıst’ovat do keˇse tak´e nˇejak´e d´ arky pro objevitele“. N´alezce keˇse si sm´ı d´arek ponechat (a napˇr´ıklad pˇren´est do ” dalˇs´ı keˇse), ale mˇel by m´ısto nˇej vloˇzit nˇeco vlastn´ıho (jin´ y d´arek) pro dalˇs´ı u ´ˇcastn´ıky hry. 2.2.3.1
Obsah keˇ se
Schr´anka by mˇela vˇzdy obsahovat alespoˇ n logbook a informaci pro n´ahodn´e n´alezce. Schr´ anka (nebo alespoˇ n logbook) by mˇela b´ yt jednoznaˇcnˇe oznaˇcena n´azvem cache. Vhodn´ ym doplˇ nkem z´ akladn´ıho obsahu keˇse je pak jeˇstˇe tuˇzka, uzav´ırateln´ y plastov´ y s´aˇcek pro vodotˇesn´e uloˇzen´ı logbooku a tuˇzky a n´ahradn´ı plastov´ y s´aˇcek pro zabalen´ı schr´ anky (pokud je schr´ anka od zakladatele takov´ ym s´aˇckem opatˇrena). Pokud to rozmˇery schr´ anky keˇse dovol´ı, m˚ uˇze zakladatel keˇse pˇriloˇzit drobn´e pˇredmˇety na v´ ymˇenu, nebo trackovateln´e pˇredmˇety (TB nebo GC).
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
12
Pokud n´alezce v keˇsi neobjev´ı ˇz´ adn´ y pˇredmˇet na v´ ymˇenu, nebo se mu ˇz´adn´ y nel´ıb´ı, nemus´ı si jej vz´ıt. M˚ uˇze v keˇsi ale zanechat jin´ y takov´ y drobn´ y pˇredmˇet. Rozhodnˇe by si ale nemˇel vz´ıt ˇz´ adn´ y pˇredmˇet z keˇse, aniˇz by do keˇse jin´ y pˇredmˇet v´ ymˇenou vloˇzil. Vhodnost konkr´etn´ıch pˇredmˇet˚ u pro vloˇzen´ı do keˇse je d´ana jednak velikost´ı schr´anky, ale tak´e pˇredstavou, ˇze nejˇcastˇejˇs´ımi geocachery, kteˇr´ı se na v´ ymˇenu tˇeˇs´ı, jsou mal´e dˇeti. Naprosto nevhodn´e jsou tedy pˇredmˇety jako pen´ıze (s v´ yjimkou symbolick´ ych platn´ ych minc´ı jako napˇr. jednotliv´e mince ciz´ıch mˇen), cigarety, pˇredmˇety s nemravn´ ym vyobrazen´ım apod. Nepˇr´ıpustn´e je vkl´ ad´ an´ı jak´ ychkoliv potravin (ˇzv´ ykaˇcky, suˇsenky atd.).
2.2.4
Typy keˇ s´ı
Typy keˇs´ı se dˇel´ı do dvou hlavn´ıch kategori´ı, podle velikosti a podle charakteru. 2.2.4.1
Podle velikosti
• Micro – velmi mal´ a schr´ anka, typicky lehce upraven´a a pˇrizp˚ usoben´a krabiˇcka od filmu, od bonbon˚ u tic-tac, od l´ek˚ u apod. Pro jej´ı moˇznost um´ıstit ji nen´apadnˇe i do frekventovan´ ych prostor se pouˇz´ıv´ a nejˇcastˇeji pro keˇse v centrech mˇest apod. Micro-cache b´ yv´ a doplnˇena magnetem pro snadnˇejˇs´ı uchycen´ı na kovov´ ych konstrukc´ıch a b´ yv´a i velmi umnˇe maskov´ ana tak, aby co nejl´epe splynula s okol´ım. Pro svoji miniaturn´ı velikost se do micro-cache nevkl´adaj´ı ˇz´adn´e pˇredmˇety na v´ ymˇenu, ale t´emˇeˇr v´ yhradnˇe pouze logbook. • Small – mal´ a schr´ anka, pˇribliˇznˇe o objemu mal´e krabice na ohˇr´ıv´an´ı potravin v mikrovlnn´e troubˇe, kter´ a se tak´e jako schr´anka ˇcasto pouˇz´ıv´a. Small-cache obsahuje logbook a menˇs´ı pˇredmˇety na v´ ymˇenu. • Regular – schr´ anka ide´ aln´ı velikosti, vejdou se do n´ı kromˇe logbooku i vˇetˇs´ı pˇredmˇety na ˇ v´ ymˇenu, mal´e plyˇsov´e hraˇcky apod. Casto se pro ni pouˇz´ıvaj´ı bˇeˇzn´e krabice na ohˇr´ıv´ an´ı potravin v mikrovlnn´e troubˇe. • Large – specializovan´e v´ yjimeˇcn´e schr´ anky, jejichˇz nadmˇern´a velikost b´ yv´a zamˇeˇrena speci´alnˇe pro ukl´ ad´ an´ı vˇetˇs´ıch pˇredmˇet˚ u na v´ ymˇenu (napˇr. knih a CD). 2.2.4.2
Podle charakteru
• Traditional cache (ˇcesk´ y v´ yraz tradicion´ alka, tradka) – schr´ anka je um´ıstˇena pˇr´ımo na m´ıstˇe definovan´em zveˇrejnˇen´ ymi souˇradnicemi.
2.2. GEOCACHING
13
• Multi cache (ˇcesk´ y v´ yraz multina) – k nalezen´ı c´ılov´e (tzv. fin´aln´ı) skr´ yˇse je potˇreba nal´ezt nejprve skr´ yˇs prvn´ı danou zveˇrejnˇen´ ymi souˇradnicemi a z informac´ı z´ıskan´ ych v prvn´ı skr´ yˇsi nal´ezt skr´ yˇs fin´ aln´ı, pˇr´ıpadnˇe druhou, tˇret´ı a dalˇs´ı, postupnˇe je nutn´e se propracovat aˇz na tzv. fin´ aln´ı skr´ yˇs. Multi - cache mohou m´ıt mnoho podob, spojuje je ale shodn´a filosofie postupn´eho hled´ an´ı ˇretˇezce pomocn´ ych skr´ yˇs´ı nebo plnˇen´ı u ´kol˚ u smˇeˇruj´ıc´ıch k nalezen´ı skr´ yˇse hlavn´ı. Jednotliv´e pomocn´e skr´ yˇse se naz´ yvaj´ı stage (z angl. stage = stupeˇ n). • Mystery cache (ˇcesk´ y v´ yraz mysterka) – zveˇrejnˇen´e souˇradnice ukazuj´ı zpravidla do bl´ızk´eho okol´ı keˇse, ale skuteˇcn´e souˇradnice mus´ı kaˇcer dopˇredu z´ıskat napˇr´ıklad prostudov´an´ım nˇejak´ ych informac´ı, vyluˇstˇen´ım h´ adanky, ˇsifry apod. Nˇekdy se t´eˇz tato keˇs naz´ yv´a unknown“. ” • Webcam cache – speci´ aln´ı keˇs, kter´ a neobsahuje ukrytou schr´anku, ale pˇrivede geokaˇcera pˇred objektiv konkr´etn´ı popsan´e webkamery. K virtu´aln´ımu odloven´ı keˇse pak staˇc´ı, aby jin´ a osoba sn´ımek z webkamery dostupn´ y na internetu uloˇzila. Geokaˇcer pak uloˇzen´ y sn´ımek pˇriloˇz´ı jako d˚ ukaz k elektronick´emu logu keˇse. Nov´e webcam cache jiˇz nelze od konce roku 2005 na serveru geocaching.com zakl´adat. • Letterbox – kombinace geocachingu a starˇs´ı hry letterboxing. Oproti tradiˇcn´ı keˇsi obsahuje nav´ıc raz´ıtko, kter´e si n´alezce otiskne do sv´eho den´ıˇcku. • Virtual cache (ˇcesk´ y v´ yraz virtu´ alka) – na zadan´ ych souˇradnic´ıch nen´ı ukryta ˇz´adn´a skuteˇcn´a schovan´a schr´anka. Geokaˇcer mus´ı na hledan´em m´ıstˇe nˇeco zjistit (napˇr. jm´ena na pomn´ıku apod.) a odeslat tyto informace vlastn´ıkovi keˇse pro uzn´an´ı logu. Tyto keˇse jiˇz nen´ı moˇzn´e na geocaching.com zakl´ adat, ale je moˇzn´e je st´ale hledat. • Earthcache – obdoba virtu´ aln´ıch keˇs´ı. Earthcache se zakl´ad´a v m´ıstech s geologickou ˇci jinou zaj´ımavost´ı t´ ykaj´ıc´ı se planety Zemˇe. Podobnˇe jako u virtu´aln´ıch keˇs´ı nen´ı u ´kolem naj´ıt keˇs, ale doj´ıt na dan´e m´ısto, zjistit nˇejak´e informace, udˇelat fotografie atd. Vˇzdy z´ aleˇz´ı na zakladateli, jak´e podm´ınky pro uzn´an´ı logu stanov´ı.
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
14
• Event cache – jedn´ a se o setk´ an´ı geokaˇcer˚ u. Spoleˇcensk´a ud´alost spojen´a napˇr. s urˇcit´ ym programem (napˇr. CITO). Na setk´an´ı m˚ uˇze doj´ıt k hromadn´e v´ ymˇenˇe travelbug˚ u1 2 nebo geocoin˚ u . • Cache in trash out event (CITO) – setk´ an´ı (event), na kter´em se geokaˇceˇri snaˇz´ı vyˇcistit vybran´e u ´zem´ı od nepoˇr´adku a odpadk˚ u, kter´e v pˇr´ırodˇe ponechali lhostejn´ı lid´e. Je to spoleˇcensk´e setk´an´ı spojen´e s ekologick´ ym chov´ an´ım geokaˇcer˚ u k pˇr´ırodˇe.
2.3 2.3.1
Android Vznik a v´ yznam
Android je rozs´ ahl´ a open source platforma, kter´a vznikla zejm´ena pro mobiln´ı zaˇr´ızen´ı (v posledn´ı dobˇe vˇsak nejv´ıce pouˇz´ıvan´ a ve Smartphonech a tabletech). Tato platforma zahrnuje zejm´ena operaˇcn´ı syst´em zaloˇzen´ y na j´adru Linux v2.6, uˇzivatelsk´e rozhran´ı a aplikace. Souˇc´ast´ı je t´eˇz middleware a v´ yvojov´ y kit SDK pro snadn´ y v´ yvoj aplikac´ı. Za v´ yvojem Androidu ofici´ alnˇe stoj´ı Open Handset Alliance (OHA) skl´adaj´ıc´ı se z 84 spoleˇcnost´ı, mezi nˇeˇz patˇr´ı i spoleˇcnost Google. Dle ofici´ aln´ıch informac´ı na str´ank´ach OHA vyvinuli Android ˇclenov´e t´eto aliance spoleˇcn´ ymi silami. Zdroje uv´ad´ı, ˇze spoleˇcnost Android byla zaloˇzena jiˇz v roce 2003, v roce 2005 pak firmu koupil Google a pˇrevedl pr´ava pod kˇr´ıdla OHA v r´amci open source licence Apache V2.
2.3.2
Hlavn´ı vlastnosti
Vzhledem k velk´emu mnoˇzstv´ı zaˇr´ızen´ı, pro kter´e je platforma urˇcena, muselo b´ yt j´adro navrˇzeno bez ohledu na pouˇzit´ y hardware. N´asleduj´ıc´ı seznam uv´ad´ı vlastnosti Androidu (pˇrevzato z [12]). • Application framework - umoˇzn ˇuje pouˇz´ıv´an´ı a spr´avu aplikac´ı. • Dalvik virtual machine - virtu´ aln´ı stroj optimalizovan´ y pro mobiln´ı zaˇr´ızen´ı. • Integrovan´ y inet prohl´ıˇzeˇc - zaloˇzen´ y na open source WebKit enginu. • Optimalizovan´ a grafika - pouˇz´ıv´ a vlastn´ı knihovny pro 2D grafiku a 3D grafiku zaloˇzenou na OpenGL ES 1.0 specifikaci (nevyˇzaduje hardwarovou akceleraci). • SQLite - slouˇz´ı pro ukl´ ad´ an´ı strukturovan´ ych dat (SQL). 1
travelbug - libovoln´ a vˇec doplnˇen´ a o kovov´ y identifikaˇcn´ı ˇst´ıtek, zvan´ y ps´ı zn´ amka (z angl. dog tag). Travelbug nen´ı pˇredmˇetem bˇeˇzn´e v´ ymˇeny, jako jin´e vˇeci um´ıstˇen´e za t´ımto u ´ˇcelem v keˇsi, ale jeho c´ılem je putovat z keˇse do keˇse. 2 geocoin - trackovateln´ a mince opatˇren´ a unik´ atn´ım k´ odem, podobnˇe jako travelbug. Putuje po svˇetˇe a loguje se stejn´ ym zp˚ usobem jako on
2.3. ANDROID
15
• Medi´ aln´ı podpora - podpora pro bˇeˇzn´e audio, video a dalˇs´ı obrazov´e form´aty (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF), Bluetooth, EDGE, 3G a WiFi,fotoapar´ at, GPS, kompas a akcelerometr. Android obsahuje sadu C/C++ knihoven pouˇz´ıvan´ ych r˚ uzn´ ymi komponentami Android syst´emu. Zde je v´ ypis nˇekter´ ych z nich: • System C library - od BSD odvozen´e standardn´ı C syst´emov´e C knihovny (libc) uzp˚ usoben´e pro kapesn´ı linuxov´a ˇreˇsen´ı. • Media Libraries - knihovny jsou zaloˇzeny na technologii PacketVideo OpenCORE zajiˇst’uj´ıc´ı podporu pro pˇrehr´av´an´ı a nahr´av´an´ı mnoha popul´arn´ıch audio a video form´ at˚ u. Obsahuje podporu pro MPEG4, H.264, MP3, AAC, AMR, JPG a PNG. • LibWebCore - modern´ı web browser engine. • SGL - 2D grafick´ y engine. • 3D Libraries - pouˇz´ıv´ a se k implementac´ım 3D grafiky zaloˇzen´e na OpenGL ES 1.0 APIs. Knihovny pouˇz´ıvaj´ı hardwarovou akceleraci, pokud je hardware dostupn´ y. • FreeType - bitmapov´e a vektorov´e vykreslov´an´ı p´ısma. • SQLite - siln´ y a u ´sporn´ y relaˇcn´ı datab´azov´ y stroj, kter´ y je k dispozici pro vˇsechny aplikace.
2.3.3
Z´ akladn´ı stavebn´ı prvky aplikace
1. Activity • urˇcit´ a obdoba AWT Frame3 z Javy • obsahuje uˇzivatelsk´e rozhran´ı • XML Layout urˇcuje rozloˇzen´ı prvk˚ u 2. Service • sluˇzba bˇeˇz´ıc´ı na pozad´ı • je ovl´ ad´ ana povely poch´azej´ıc´ımi vˇetˇsinou z Activity • pouˇzit´ı napˇr. pro pˇrehr´av´an´ı hudby, odes´ıl´an´ı email˚ u, stahov´an´ı soubor˚ u 3. Content Provider • rozhran´ı pro pˇr´ıstup ke strukturovan´ ym dat˚ um jin´e aplikace • napˇr. kontakty, kalend´aˇr, zmeˇskan´e hovory apod.
3
AWT Frame - AWT je p˚ uvodn´ı n´ astroj pro tvorbu grafick´eho rozhran´ı, kter´ y mimo jin´e obsahuje i komponentu Frame pouˇz´ıvanou pro tvorbu oken.
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
16
4. Broadcast Receiver • zachyt´ av´ an´ı zpr´ av“ (Intents), kter´e se ˇs´ıˇr´ı syst´emem ” • napˇr. pˇr´ıchoz´ı hovor, pˇrijat´ a SMS nebo uˇzivatelsky definovan´a zpr´ava 5. Intent • Zpr´ ava“ o nˇejak´e ud´ alosti, kter´a kromˇe druhu Intentu m˚ uˇze obsahovat dalˇs´ı data ”
2.4
Pˇ rehled obdobn´ ych projekt˚ u
Pot´e, co vznikla myˇslenka vytvoˇrit hru takov´eho typu, bylo nutn´e zjistit, zda jiˇz nˇeco podobn´eho neexistuje a pokud ano, tak v jak´e m´ıˇre je funkˇcn´ı a vyhovuj´ıc´ı. Informace jsem tedy vyhled´avala na internetu, nalezla jsem mnoho her zaloˇzen´ ych na technologii QR k´od˚ u, ˇz´adn´a se vˇsak net´ ykala distribuce nˇejak´eho multim´edia.
2.4.1 2.4.1.1
ˇ sen´ı v ˇ Reˇ cesk´ em jazyce #QRgame
Na str´ance QRgame [13] informuje o prvn´ı outdoorov´e hˇre vyuˇz´ıvaj´ıc´ı QR k´ody, kter´a se konala dne 21. 4. 2012 v Karlov´ ych Varech. Hra se uskuteˇcnila v r´amci srazu #KVpijatika pro zpestˇren´ı prvn´ıho Karlovarsk´eho #4sqDay. Sponzorem se stal oper´ator O2, kter´ y do soutˇeˇze vˇenoval hlavn´ı cenu v podobˇe mobiln´ıho telefonu Nokia N9. Dalˇs´ımi cenami pak byly badges, neboli placky do sb´ırky. Bylo vytvoˇreno nˇekolik t´ ym˚ u, kde kaˇzd´ y t´ ym dostal mapu. Ta obsahovala deset stanoviˇst’, na nichˇz poˇradatel´e pˇripevnili cedulky se dvˇema QR k´ody. Jeden mal´ y, kter´ y vysvˇetloval co je na velk´em QR k´ odu a instrukce co s n´ım dˇelat. Dalˇs´ı pak velk´ y QR k´od, kter´ y obsahoval samotn´a data v podobˇe nul a jedniˇcek. Kaˇzd´ y t´ ym obdrˇzel tabulku s ˇc´ıslem sv´eho t´ ymu, do kter´eho mˇeli vyplˇ novat v´ ysledky z naˇcten´ ych velk´ ych QR k´od˚ u. Tabulka byla vytvoˇrena tak, ˇze soutˇeˇz´ıc´ı ji podle instrukc´ı vybarvovali a t´ım jim vznikl nov´ y QR k´od, kter´ y opˇet nasn´ımali ˇcteˇckou QR k´ od˚ u. Pokud tento nakreslen´ y k´od vytvoˇril t´ ym spr´avnˇe a ˇcteˇcka rozpoznala obsah, byli pˇresmˇerov´ ani na webovou str´anku, kter´a obsahovala koneˇcn´e instrukce. V takov´em pˇr´ıpadˇe bylo nutn´e tweetnout ˇc´ıslo. Aby vˇsak ˇc´ısla nebyla stejn´a (pro pˇr´ıpad, ˇze by t´ ymy bˇehem hry sledovaly Twitter) vymyslela poˇradatelka fintu – na Twitter se odes´ılal souˇcet vˇeku soutˇeˇz´ıc´ıch v dan´em t´ ymu. Toto ˇc´ıslo spoleˇcnˇe s hashtagem4 #qrgame bylo nutn´e co nejrychleji odeslat. Pr´ avˇe podle poˇrad´ı tˇechto v´ ysledn´ ych zpr´av na Twitteru se urˇcilo i poˇrad´ı jednotliv´ ych t´ ym˚ u. Pokud tuto jednodenn´ı akci srovn´ am s t´ımto projektem, jako spojitost v nˇem vid´ım hlavnˇe pouˇzit´ı technologie QR k´ od˚ u a trasy, kter´ ymi t´ ym musel proj´ıt. Trasy se vˇsak ˇr´ıdili dle mapy, nikoliv podle GPS lokac´ı. Jako dalˇs´ı odliˇsn´ y bod vid´ım v obsahu k´od˚ u. V posledn´ı ˇradˇe pak fakt, ˇze tato akce byla pouze jednor´azov´a a urˇcen´a pro uzavˇrenou spoleˇcnost. 4
hashtag - je mimo jin´e n´ astroj pro uˇzivatele Twitteru, kter´ ym oznaˇcuj´ı d˚ uleˇzit´ a slova ve sv´ ych pˇr´ıspˇevc´ıch symbolem #“ ”
ˇ ´ ˚ 2.4. PREHLED OBDOBNYCH PROJEKTU
2.4.1.2
17
District 9 QR Code Game
Na str´ ance QR-k´ ody [14] jsem nalezla hru t´ ykaj´ıc´ı se QR k´od˚ u motivovanou filmem District 9. Tv˚ urci tohoto filmu vyuˇzili technologii QR k´odu k propagaci filmu District 9 v ulic´ıch t´ yden pˇred premi´erou filmu a vytvoˇrili tzv. stopovanou v ulic´ıch. QR k´ody rozm´ıstili na n´apadit´ ych v´ ystraˇzn´ ych n´ alepk´ ach a kaˇzd´a z nich smˇeˇrovala na jin´e video na YouTube. Tato hra dle tv˚ urc˚ u se ve v´ ysledku jako hra v˚ ubec netv´aˇr´ı. K´ody jsou rozm´ıstˇen´e n´ahodnˇe, ˇz´adn´a spojitost s dalˇs´ımi k´ ody zde nen´ı, pouze v obsahu. Spojitost s t´ımto projektem vid´ım opˇet v pouˇzit´ı technologii QR k´ od˚ u, v pˇr´ıpadˇe obsahu uˇz se v´ıce bl´ıˇz´ı k naˇs´ı myˇslence to distribuce vide´ı za u ´ˇcelem propagace filmu. Tato akce byla opˇet kr´atkodob´a. 2.4.1.3
QR Code game
Velk´ ym pˇrekvapen´ım pˇri hled´ an´ı obdobn´ ych projekt˚ u ˇci her t´ ykaj´ıc´ıch se technologie QR k´od˚ u pro mne byl tento projekt vytvoˇren´ y v r´amci semestr´aln´ı pr´ace na naˇs´ı ˇskole. Tento projekt je k nalezen´ı na str´ ank´ ach Institutu interm´edi´ı [15]. C´ılem t´eto semestr´aln´ı pr´ ace bylo vytvoˇrit mobiln´ı aplikaci, kter´a by dok´azala rozk´odovat QR k´od a pˇrehr´at melodii v nˇem uloˇzenou. Proˇc tento projekt autoˇri v n´ azvu oznaˇcili jako hru mi stejnˇe jako v pˇredchoz´ım pˇr´ıpadu 2.4.1.2 z poskytnut´ ych informac´ı nebylo jasn´e. Jako spojitost tu zase vid´ım pouˇzit´ı technologie QR k´ od˚ u, d´ ale pak obsah k´ odu, tedy skladby, bohuˇzel se jednalo o form´at monofonn´ıch melodi´ı. Tato semestr´ aln´ı pr´ ace z´aroveˇ n nebyla urˇcena pro veˇrejnost ale pouze jako ˇskoln´ı projekt.
2.4.2 2.4.2.1
ˇ sen´ı v anglick´ Reˇ em jazyce Google’s QR Code Game
Na str´ ance BeQRious [16] se m˚ uˇzeme doˇc´ıst, ˇze v r´amci jednor´azov´e akce Google Developer Day 2009 v Praze Google vytvoˇril tuto hru. Tato hra j´ım byla stvoˇrena jako akce na rozˇs´ıˇren´ı jeho QR k´ od˚ u. C´ılem hry bylo skenovat libovoln´e k´ody, kde za kaˇzd´ y naskenovan´ y k´od z´ıskal hr´aˇc bod. Nˇekter´e k´ ody mohly obsahovat informace nebo n´apovˇedu k dalˇs´ımu QR k´odu. V tomto pˇr´ıpadˇe je spojitost s projektem v´ıce v nasmˇerov´an´ı hr´aˇce k dalˇs´ımu k´odu a samozˇrejmˇe pouˇzit´ı QR k´ od˚ u. Obsah byl r˚ uzn´eho typu, neˇslo vˇsak o distribuci jako sp´ıˇse reklamy. Opˇet ˇslo ale o jednor´ azovou akci. 2.4.2.2
QR Wild Game
Na webu QR Wild [17] nalezneme velice vydaˇrenou hru. Autor se pˇri t´eto hˇre inspiroval geocachingem. Hr´ aˇc m´ a moˇznost vytvoˇrit s´erii QR k´od˚ u a jednotliv´e k´ody vylep´ı po mˇestˇe. Za kaˇzd´ y nalezen´ y k´ od uˇzivatel z´ısk´a tzv. odznaky, coˇz by se dalo trochu pˇrirovnat jako podpis k nalezen´e keˇsi. Tento projekt je zrealizovan´ y do posledn´ıch detail˚ u a uveden do provozu od roku 2011. Tento projekt pr´ avem nos´ı jako oznaˇcen´ı, ˇze je to hra. Zde se oproti ostatn´ım projekt˚ um a hr´am spojilo v´ıce podobn´ ych prvk˚ u, a to pˇredevˇs´ım v podobˇe geocachingu. Autorova myˇslenka a celkov´ a realizace mne velice nadchla.
18
2.4.2.3
ˇ ´IBUZNE ´ APLIKACE KAPITOLA 2. RELEVANTN´I TECHNOLOGIE A PR
QR Kill Game
Principem t´eto hry je nal´ezt a sejmout QR k´od, kter´ y autor vytvoˇril a um´ıstil na nˇejak´em m´ıstˇe, a t´ım ho zab´ıt“. Pokud hr´ aˇc k´ od nalezne a naskenuje, k´od mu vytvoˇr´ı SMS s uve” den´ ym ˇc´ıslem, kde jako text se vloˇz´ı jm´eno autora. Odesl´an´ım SMS hr´aˇc autora zabije ⇒ KILLne. Informace o hˇre jsou k nalezen´ı na webu ALL ABOUT MOBILE LIFE [18]. 2.4.2.4
Riddle Game with QR Codes
Jak se na webu SpottyBanana [19] m˚ uˇzeme doˇc´ıst, hra je urˇcena pˇrev´aˇznˇe dˇetem, protoˇze hlavn´ım bodem jsou dˇetsk´e h´ adanky. Autor spol´eh´a na to, ˇze podle pr˚ uzkum˚ u maj´ı nˇekdy i pˇetilet´e dˇeti mobiln´ı telefon, kter´ y je nav´ıc natolik vyspˇel´ y, ˇze um´ı ˇc´ıst QR k´ody. Na r˚ uzn´ ych m´ıstech autor um´ıstil dˇetsk´e h´ adanky a k nim QR k´ody, kter´e obsahovaly spr´avn´e ˇreˇsen´ı.
Kapitola 3
N´ avrh funkˇ cnosti V t´eto kapitole je jiˇz v´ıce pops´ ana struktura navrhovan´eho projektu, pˇredevˇs´ım c´ılov´e skupiny, role a funkˇcn´ı a nefunkˇcn´ı poˇzadavky.
3.1
Webov´ y port´ al
Tato kapitola popisuje pˇredstavu o tom, jak by mˇel vypadat cel´ y syst´em, jak´a je hlavn´ı c´ılov´ a skupina, pro kterou byl tento web vyv´ıjen, druhy uˇzivatelsk´ ych rol´ı a jejich moˇznosti a pr´ ava v˚ uˇci syst´emu. D´ ale pak poˇzadavky na syst´em, a to jak funkˇcn´ı, tak nefunkˇcn´ı.
3.1.1
Popis syst´ emu
Syst´em by mˇel splˇ novat nˇekolik funkc´ı. Jako hlavn´ı funkce bude nab´ıdnout uˇzivateli vytvoˇrit hru s vlastn´ım v´ ybˇerem obsahu. Postup pˇri tvorbˇe hry by mˇel b´ yt jasn´ y a srozumiteln´ y tak, aby ji byl schopen vytvoˇrit i m´enˇe zkuˇsen´ y uˇzivatel. K t´eto ˇc´asti se vˇsak uˇzivatel bude moci dostat pouze po pˇrihl´ aˇsen´ı do syst´emu, do kter´eho se bude muset nejprve zaregistrovat. Dalˇs´ı moˇznost´ı syst´emu bude seznam vytvoˇren´ ych her a dalˇs´ıch ˇc´ast´ı potˇrebn´ ych k hran´ı, jeˇz budou veˇrejn´e i pro nepˇrihl´ aˇsen´eho uˇzivatele. Posledn´ı ˇc´ast´ı pak bude prostor pro vyj´adˇren´ı n´azor˚ u a pˇripom´ınek v sekci n´ avˇstˇevn´ı knihy. Druhou funkc´ı bude spr´ava uˇzivatelsk´ ych u ´ˇct˚ u, vytvoˇren´eho obsahu her a pˇr´ıspˇevk˚ u.
3.1.2
C´ılov´ a skupina
C´ılov´a skupina nen´ı nijak omezen´a vˇekem. Tuto hru m˚ uˇze hr´at kdokoliv, kdo bude splˇ novat uveden´e poˇzadavky a bude m´ıt chut’ se hlavnˇe pobavit. Pˇredpokl´ad´a se vˇsak, ˇze nejv´ıce zamˇeˇren´ a skupina bude ve vˇeku od 15 do 30 let. Uˇzivatelem (distributorem) se m˚ uˇze st´at kter´ ykoliv ˇclovˇek, kter´ y m´a pˇr´ıstup k internetu a um´ı s n´ım pracovat, aby mohl vytvoˇrit QR k´ody s obsahem, kter´ y si s´am zvol´ı. Bude tedy z´aleˇzet na nˇem, zda se rozhodne distribuovat svoji vlastn´ı tvorbu ˇci jin´ y obsah. D´ale by mˇel m´ıt pˇr´ıstup k tisk´ arnˇe, kde vytvoˇren´e k´ody vytiskne. To vˇsak uˇz ale v dneˇsn´ı dobˇe veˇrejn´ ych tisk´aren nen´ı nutn´ ym hlediskem.
19
´ ˇ KAPITOLA 3. NAVRH FUNKCNOSTI
20
3.1.3
Uˇ zivatelsk´ e role
K dos´ahnut´ı c´ıl˚ u uveden´ ych v sekci 3.1.1 je potˇreba vytvoˇrit nˇekolik skupin uˇzivatel˚ u s rozd´ıln´ ymi pr´avy pˇri pouˇz´ıv´ an´ı funkc´ı syst´emu. 3.1.3.1
Role Nepˇ rihl´ aˇ sen´ y uˇ zivatel
Nepˇrihl´aˇsen´ y uˇzivatel je jednou z nejz´ akladnˇejˇs´ıch rol´ı. Uˇzivatel s touto rol´ı bude m´ıt v syst´emu omezen´e moˇznosti. Ten mu nab´ıdne u ´vodn´ı str´anku s kr´atk´ ymi informacemi o tom, kde se nach´az´ı, d´ ale pak z´ aloˇzku o hˇre, t´ ykaj´ıc´ı se myˇslenky projektu. Nepˇrihl´aˇsen´ y uˇzivatel sice nebude m´ıt moˇznost hry vytv´ aˇret, ale jiˇz vytvoˇren´ ych her se bude moci z´ uˇcastnit, protoˇze mu bude umoˇznˇen pˇr´ıstup k z´aloˇzce s vytvoˇren´ ymi hrami a dalˇs´ımi souˇc´astmi potˇrebn´ ymi ke hˇre. Omezen´e moˇznosti bude m´ıt v n´avˇstˇevn´ı knize, kde mu bude umoˇznˇeno vloˇzen´e pˇr´ıspˇevky pouze ˇc´ıst, nikoliv vˇsak vytv´aˇret. Pokud by mˇel uˇzivatel z´ajem rozˇs´ıˇrit sv´e moˇznosti, pomoc´ı registrace svoji roli zmˇen´ı na roli pˇrihl´aˇsen´eho uˇzivatele. 3.1.3.2
Role Pˇ rihl´ aˇ sen´ y uˇ zivatel
Pˇrihl´aˇsen´ ym uˇzivatelem se stane kaˇzd´ y, kdo se po zaregistrov´an´ı pˇrihl´as´ı do syst´emu. Takov´ y uˇzivatel bude m´ıt stejn´ a pr´ ava, jako uˇzivatel nepˇrihl´aˇsen´ y jen jsou rozˇs´ıˇren´a napˇr´ıklad o moˇznost vytv´aˇret hry. D´ ale bude m´ıt moˇznost pˇrisp´ıvat do n´avˇstˇevn´ı knihy a sv´e pˇr´ıspˇevky mazat. 3.1.3.3
Role Administr´ ator
Administr´ator bude m´ıt nejrozˇs´ıˇrenˇejˇs´ı moˇznosti v syst´emu. Nejen ˇze m´a pˇr´ıstup na veˇsker´e z´aloˇzky webov´eho port´ alu, ale m´ a moˇznost mazat veˇsker´e pˇr´ıspˇevky v n´avˇstˇevn´ı knize.
3.1.4 3.1.4.1
Poˇ zadavky na syst´ em Funkˇ cn´ı poˇ zadavky
• Syst´em umoˇzn´ı jednoduchou registraci nov´eho uˇzivatele do syst´emu bez nutnosti z´asahu administr´ atora. • Syst´em umoˇzn´ı pˇrihl´ aˇsen´ı a odhl´ aˇsen´ı uˇzivatel˚ u pomoc´ı formul´aˇre tomu urˇcen´eho. • Syst´em umoˇzn´ı pˇrizp˚ usoben´ı pracovn´ıho prostˇred´ı uˇzivatele na z´akladˇe jeho opr´avnˇen´ı. • Syst´em umoˇzn´ı vytv´ aˇren´ı jednotliv´ ych her. • Syst´em umoˇzn´ı v´ ypis seznamu jiˇz vytvoˇren´ ych her. • Syst´em umoˇzn´ı poskytnout uˇzivateli prostˇredky potˇrebn´e ke hˇre. • Syst´em umoˇzn´ı psan´ı pˇr´ıspˇevk˚ u do n´avˇstˇevn´ı knihy. • Syst´em umoˇzn´ı zobrazit zpˇetnou vazbu akc´ı uˇzivatele.
3.2. APLIKACE
3.1.4.2
21
Nefunkˇ cn´ı poˇ zadavky
• Syst´em bude dostupn´ y pˇres standardn´ı webov´e rozhran´ı formou webov´eho port´alu. • Syst´em bude m´ıt pˇrehlednou veˇrejnou ˇc´ast se srozumitelnou navigac´ı. • Syst´emov´e funkce (t´ım se rozum´ı napˇr. registrace, tvorba nov´e hry apod.) budou snadn´e a intuitivn´ı i pro uˇzivatele se z´akladn´ımi znalostmi dan´e t´ematiky. • Syst´em by mˇel dosahovat co nejmenˇs´ıho stupnˇe zanoˇren´ı v z´avislosti na okolnostech. • Syst´em by mˇel b´ yt v´ ykonn´ y, jeho doba odezvy by mˇela z´aviset hlavnˇe na vstupn´ıch hodnot´ ach, vnitˇrn´ı v´ ypoˇcty by nemˇely b´ yt pˇr´ıliˇs n´aroˇcn´e pro cel´ y syst´em. • Uˇzivatelsk´ a hesla budou v datab´azi zabezpeˇcena pouˇzit´ım funkce vyuˇz´ıvaj´ıc´ı skl´ad´ an´ı slov (tzv. solen´ı1 ) a hashov´an´ı 2 pomoc´ı funkce SHA a nebudou tedy uloˇzeny jako prost´ y text. • Webov´ y port´ al by se mˇel zobrazovat korektnˇe ve vˇetˇsinˇe dnes pouˇz´ıvan´ ych prohl´ıˇzeˇc˚ u a ve vˇetˇsinˇe typ˚ u i rozmˇer˚ u obrazovek. • Syst´em by mˇel b´ yt navrˇzen dle stylu Model - View - Controller (v´ıce o MVC v kapitole 4.1.4) , tyto ˇc´ asti by od sebe mˇely b´ yt alespoˇ n schematicky rozdˇelen´e. • Syst´em by mˇel b´ yt ˇciteln´ y i lidem s lehˇc´ı formou vady (napˇr. porucha zraku).
3.2
Aplikace
V t´eto ˇc´ asti je pops´ an obecn´ y popis aplikace, co by mˇela splˇ novat, jak´e jsou pˇredstavy, d´ ale pak hlavn´ı c´ılov´ a skupina, pro kterou by tato aplikace mˇela b´ yt vhodn´a. V posledn´ı ˇc´ asti pak poˇzadavky na aplikaci, a to jak funkˇcn´ı, tak nefunkˇcn´ı.
3.2.1
Popis aplikace
Aplikace by mˇela splˇ novat nˇekolik funkc´ı. Prvn´ı funkc´ı je schopnost sn´ımat QR k´ody. Dalˇs´ı funkce se pak t´ ykaj´ı konkr´etn´ıch her, kde tou hlavn´ı bude seznam vˇsech her, kter´e uˇzivatel rozehr´ al. Aplikace pak umoˇzn´ı uˇzivateli ke kaˇzd´e z rozehran´ ych her seznam jednotliv´ ych, jiˇz naskenovan´ ych, ˇc´ ast´ı spolu s informacemi o um´ıstˇen´ı dan´eho segmentu na serveru a s GPS lokac´ı n´ asleduj´ıc´ıho segmentu. Aplikace by mˇela b´ yt schopna tyto GPS lokace zpracovat a odeslat do aplikace, kterou mobiln´ı telefon podporuje a kter´a s tˇemito daty um´ı pracovat a uˇzivatele navede na dan´e m´ısto. Vˇetˇsina mobiln´ıch telefon˚ u jiˇz tuto aplikaci obsahuje. 1
solen´ı - Hesla uˇzivatel˚ u jsou do datab´ aze ukl´ ad´ ana v zahashovan´em tvaru pomoc´ı nˇejak´e funkce. Solen´ı hesel je metoda, pˇri kter´e se jeˇstˇe pˇred v´ ypoˇctem funkce k p˚ uvodn´ımu heslu pˇrid´ a n´ ahodn´ y ˇretˇezec, tzv. s˚ ul“. ” 2 hashov´ an´ı - neboli ˇcesky rozptylov´ an´ı, je transformace vstupn´ıch dat pomoc´ı hashovac´ı funkce na adresu v tabulce, kde by mˇel b´ yt uloˇzen poˇzadovan´ y z´ aznam.
´ ˇ KAPITOLA 3. NAVRH FUNKCNOSTI
22
3.2.2
C´ılov´ a skupina
Pro pozici uˇzivatele (hr´ aˇce) jsou poˇzadavky o trochu n´aroˇcnˇejˇs´ı. Uˇzivatel by mˇel vlastnit mobiln´ı telefon podporuj´ıc´ı uˇz´ıv´ an´ı aplikace pro sn´ım´an´ı QR k´od˚ u. Pokud by si chtˇel ihned po sejmut´ı k´odu st´ ahnout uloˇzen´ y obsah, mus´ı jeho mobiln´ı telefon podporovat internet. Jinak staˇc´ı jin´e zaˇr´ızen´ı s pˇr´ıstupem na internet a schopnost umˇet s n´ım pracovat. Co se t´ yˇce GPS lokace, opˇet je pro uˇzivatele jednoduˇsˇs´ı m´ıt ve sv´em mobiln´ım telefonu moˇznost pouˇz´ıvat aplikaci GPS navigace, pomoc´ı kter´e se dostane k dalˇs´ım QR k´od˚ um. Jinou moˇznost´ı je vlastnit GPS navigaci, kam by musel lokaci ruˇcnˇe pˇrepsat. Pokud by QR k´od obsahoval str´anku ˇci kapitolu z e-book a hr´ aˇc by chtˇel jeho obsah uˇz´ıvat pˇr´ımo v telefonu, mˇel by m´ıt nˇejakou vhodnou aplikaci v mobilu.
3.2.3 3.2.3.1
Poˇ zadavky na aplikaci Funkˇ cn´ı poˇ zadavky
• Aplikace umoˇzn´ı uˇzivateli sn´ımat k´ody pro tuto hru urˇcen´e. • Aplikace umoˇzn´ı uˇzivateli zobrazit seznam rozehran´ ych her. • Aplikace umoˇzn´ı uˇzivateli pˇrehled nasn´ıman´ ych jednotliv´ ych ˇc´ast´ı konkr´etn´ı rozehran´e hry. • Aplikace umoˇzn´ı uˇzivateli otevˇr´ıt a uloˇzit nalezen´ y obsah k´odu. • Aplikace umoˇzn´ı uˇzivateli otevˇr´ıt GPS souˇradnice nalezen´e pod k´odem v aplikaci tomu urˇcen´e. 3.2.3.2
Nefunkˇ cn´ı poˇ zadavky
• Aplikace by mˇela b´ yt ˇciteln´ a i v horˇs´ıch svˇeteln´ ych podm´ınk´ach, to je ovˇsem velmi z´avisl´e na okolnostech (napˇr. odlesk slunce), kter´e mohou ovlivˇ novat vlastnosti displeje. • Aplikace bude m´ıt pˇrehlednou veˇrejnou ˇc´ast se srozumitelnou navigac´ı. • Funkce aplikace budou snadn´e a intuitivn´ı i pro uˇzivatele se z´akladn´ımi znalostmi dan´e t´ematiky. • Aplikace by mˇela dosahovat co nejmenˇs´ıho stupnˇe zanoˇren´ı v z´avislosti na okolnostech. • Aplikace by mˇela b´ yt v´ ykonn´ a, jej´ı doba odezvy by mˇela z´aviset hlavnˇe na vstupn´ıch hodnot´ach, vnitˇrn´ı v´ ypoˇcty by nemˇely b´ yt pˇr´ıliˇs n´aroˇcn´e pro celou aplikaci. • Aplikace by mˇela b´ yt navrˇzena dle stylu Model - View - Controller, tyto ˇc´asti by od sebe mˇeli b´ yt alespoˇ n schematicky rozdˇelen´e.
Kapitola 4
Implementace V t´eto kapitole o implementaci jsou uvedeny konkr´etn´ı pouˇzit´e technologie a popis implementace jak webov´eho port´ alu, tak aplikace spolu s nˇekolika pˇr´ıklady k´od˚ u.
4.1
Pouˇ zit´ e technologie
Kaˇzd´ ym dnem roste potˇreba vyuˇz´ıv´an´ı internetu ke sbˇeru vˇsech r˚ uzn´ ych informac´ı. Tyto informace jsou prezentov´ any pomoc´ı webov´ ych str´anek, kter´e jsou dostupn´e ve velmi kr´atk´em ˇcase a s minim´ aln´ımi n´ aroky na stroj, ze kter´eho se k internetu pˇripojujeme. Webov´e aplikace jsou v´ yhodn´e zejm´ena d´ıky jejich pˇrenositelnosti a jiˇz zm´ınˇen´e dostupnosti, kdokoliv si m˚ uˇze danou str´anku zobrazit jak z domova, tak z pr´ace ˇci ˇskoly. Pomoc´ı chytr´ ych telefon˚ u, tablet˚ u a notebook˚ u m˚ uˇzeme surfovat na internetu takˇrka neust´ale. Tyto skuteˇcnosti z webov´ ych aplikac´ı vytv´aˇrej´ı velmi mocn´ y, st´ale aktualizovan´ y n´astroj pro ˇs´ıˇren´ı ˇci shromaˇzd’ov´ an´ı informac´ı. Jednou z nev´ yhod webov´e aplikace je nutnost internetov´eho pˇripojen´ı, coˇz v posledn´ı dobˇe jiˇz pˇrest´ av´ a b´ yt probl´emem, d´ıky otevˇren´ ym Wi-Fi s´ıt´ım, kter´e se nal´ezaj´ı t´emˇeˇr na kaˇzd´em rohu. I pˇres tuto nev´ yhodu jsou webov´e str´anky jednou z nejrozˇs´ıˇrenˇejˇs´ıch podob aplikac´ı na svˇetov´em trhu.
4.1.1
Programovac´ı jazyk PHP [20]
PHP je open source skriptovac´ı jazyk bˇeˇz´ıc´ı na stranˇe serveru speci´alnˇe navrˇzen´ y pro potˇreby webov´ ych str´ anek. Je vˇsestrann´ y programovac´ı jazyk pouˇz´ıvan´ y nejˇcastˇeji ve spojen´ı s jazykem HTML ˇci XHTML. Jedna z nejpouˇz´ıvanˇejˇs´ıch funkc´ı PHP je moˇznost propojen´ı s datab´az´ı. PHP podporuje pr´aci s velikou ˇsk´ alou datab´ az´ı od r˚ uzn´ ych SQL datab´az´ı po datab´aze Empress. Jazyk PHP je syntakticky nˇeco mezi jazyky C a Perl a patˇr´ı do rodiny interpretovan´ ych jazyk˚ u, coˇz ho ˇcin´ı v´ yraznˇe pomalejˇs´ım, neˇz napˇr´ıklad ˇcist´ y jazyk C. P˚ uvodnˇe bylo PHP navrhov´ ano jako procedur´ aln´ı jazyk, ale postupem ˇcasu se i u webov´ ych aplikac´ı vytvoˇrila potˇreba objektov´eho programov´ an´ı a od novˇejˇs´ıch verz´ı, poˇc´ınaje ˇctvrtou a hlavnˇe p´atou, se oˇcek´av´ a st´ ale vˇetˇs´ı podpora t´eto potˇreby.
23
24
KAPITOLA 4. IMPLEMENTACE
PHP je velmi popul´ arn´ı jak pro jeho platformn´ı nez´avislost, tak i pro jeho snadn´e pochopen´ı. Pro jeho masov´e rozˇs´ıˇren´ı mezi program´atory samouky tento jazyk prov´az´ı ne pˇr´ıliˇs dobr´a povˇest, co se ˇcistoty k´ odu t´ yˇce. Pro usnadnˇen´ı pr´ace v jazyce PHP, HTML ˇci JavaScriptu, jsou vyv´ıjeny frameworky, mezi nejzn´amˇejˇs´ı z nich patˇr´ı Zend, Symphony ˇci Nette.
4.1.2
NetBeans IDE
Jedn´a se o v´ yvojov´e prostˇred´ı urˇcen´e zejm´ena pro v´ yvoj v jazyce Java. B´ yv´a tak´e ˇcasto vyuˇz´ıv´an program´ atory pro v´ yvoj aplikac´ı v jazyce PHP, pro jeho velkou podporu a slovn´ıky funkc´ı. NetBeans je velmi pˇr´ınosn´ y hlavnˇe pro jeho pr´aci v r´amci projektu, kdy automaticky naˇsept´av´a spr´ avn´e funkce ˇci promˇenn´e napˇr´ıklad pˇri pr´aci s objekty a d´ıky automatick´emu zv´ yrazˇ nov´an´ı chyb k´ odu. Umoˇzn ˇuje t´eˇz automatick´e nahr´an´ı cel´eho projektu na server d´ıky zabudovan´e sluˇzbˇe FTP.
4.1.3
MySQL datab´ aze
MySQL je multiplatformn´ı datab´ azov´ y syst´em, u kter´eho je zaj´ımav´e, ˇze je distribuov´an pod dvoj´ı licenc´ı. Zdarma, pro nekomerˇcn´ı u ´ˇcely (GPL), a z´aroveˇ n i pod komerˇcn´ı placenou licenc´ı. Datab´azov´ y syst´em MySQL je pouˇz´ıv´an pro svou snadnou implementaci a obsluhu. Nejˇcastˇeji nasazen v kombinaci operaˇcn´ım syst´emem Linux, serverem Apache a programovac´ım jazykem PHP jako z´ akladn´ı aplikace webov´eho serveru. MySQL m˚ uˇze vyuˇz´ıvat nˇekolik typ˚ u engin˚ u. Mezi nˇeˇz patˇr´ı hlavnˇe InnoDB1 a MyISAM2 . K hlavn´ım rozd´ıl˚ um mezi tˇemito dvˇema enginy patˇr´ı, ˇze engine MyISAM uzamyk´a pˇri z´apisu cel´e tabulky, kdeˇzto InnoDB pouze ˇr´adky. U enginu MyISAM je ale povolen z´apis nov´ ych ˇr´adk˚ u i do zamˇcen´e tabulky.
4.1.4
Model - View - Controller
Architektura MVC (Obr. 4.1)je sloˇzena ze tˇr´ı ˇc´ast´ı, z nichˇz kaˇzd´a m´a jin´ y u ´kol. View je stvoˇren pro pˇr´ımou komunikaci s uˇzivatelem, k zobrazov´an´ı dat z modelu jemu srozumitelnou formou a umoˇznˇen´ı uˇzivateli komunikovat pˇres rozhran´ı vrstvy View s cel´ ym syst´emem. Za vrstvou View stoj´ı Controller, kter´ y m´ a na starosti hlavnˇe kontrolu a zpracov´an´ı vstupn´ıch dat, kter´e uˇzivatel vloˇzil do View. Posledn´ı ˇc´ast´ı architektury je Model, tato vrstva obsahuje zejm´ena rozhran´ı pro komunikaci s datovou vrstvou (ve vˇetˇsinˇe pˇr´ıpad˚ u se jedn´a o relaˇcn´ı datab´azi). Cel´ y syst´em funguje tedy tak, ˇze pokud se chce uˇzivatel napˇr´ıklad registrovat, vloˇz´ı do formul´ aˇre k tomu urˇcen´emu hodnoty pro registraci, po odesl´an´ı hodnoty zpracuje Controller a pˇred´ a je Modelu, kter´ y je pot´e uloˇz´ı do datov´e vrstvy.
1
InnoDB - je jeden z nˇekolika form´ at˚ u u ´loˇziˇstˇe dat (storage engine) v datab´ azov´em syst´emu MySQL. InnoDB byl navrˇzen pro zpracov´ an´ı transakc´ı - konkr´etnˇe pro zpracov´ an´ı mnoha kr´ atkodob´ ych transakc´ı, kter´e se m´ alokdy anuluj´ı. 2 MyISAM - jedn´ a se o typ tabulky u datab´ aze MySQL.
´ APLIKACE 4.2. IMPLEMENTACE WEBOVE
25
Obr´ azek 4.1: Struktura architektury MVC, pˇrevzato z [21]
4.1.5
JavaScript
JavaScript je multiplatformn´ı objektov´ y skriptovac´ı jazyk pouˇz´ıvan´ y nejˇcastˇeji jako interpretovan´ y programovac´ı jazyk pro webov´e aplikace. Bˇeˇz´ı na stranˇe klienta a v posledn´ı dobˇe ho podporuje vˇetˇsina pouˇz´ıvan´ ych prohl´ıˇzeˇc˚ u. Pouˇz´ıv´an je zejm´ena pro kontrolu formul´ aˇr˚ u jeˇstˇe pˇred odesl´ an´ım jejich obsahu na server ˇci k r˚ uzn´ ym grafick´ ym u ´prav´am.
4.2 4.2.1 4.2.1.1
Implementace webov´ e aplikace Dom´ enov´ y model Tabulky datab´ aze
• book - tabulka koment´ aˇr˚ u knihy n´avˇstˇev • game - tabulka obecn´ ych dat u her • item - tabulka konkr´etn´ıch dat segment˚ u her • user - tabulka uˇzivatel˚ u 1. Book • id - identifikaˇcn´ı kl´ıˇc koment´aˇre • user id - ciz´ı kl´ıˇc autora koment´aˇre • datetime - ˇcas vloˇzen´ı koment´aˇre • text - text koment´ aˇre 2. Game • id - identifikaˇcn´ı kl´ıˇc hry
26
KAPITOLA 4. IMPLEMENTACE
• user id - ciz´ı kl´ıˇc autora hry • title - n´ azev hry • autor - autor m´edia/m´edi´ı • name - n´ azev m´edia ˇci souhrnn´ y n´azev m´edi´ı • type - typ m´edi´ı (enum) • description - popis hry • time - ˇcas vytvoˇren´ı hry 3. Item • id - identifikaˇcn´ı kl´ıˇc segmentu • game id - ciz´ı kl´ıˇc hry obsahuj´ıc´ı tento segment • url - n´ azev m´edia segmentu i s koncovkou • lat - zemˇepisn´ a ˇs´ıˇrka navazuj´ıc´ıho segmentu • ton - zemˇepisn´ a d´elka navazuj´ıc´ıho segmentu 4. User • id - identifikaˇcn´ı kl´ıˇc uˇzivatele • name - kˇrestn´ı jm´eno uˇzivatele • surname - pˇr´ıjmen´ı uˇzivatele • username - uˇzivatelsk´e jm´eno • password - uˇzivatelsk´e heslo • type - typ uˇzivatele (enum), defaultnˇe MEMBER • mail - emailov´ a adresa uˇzivatele
4.2.2
Implementace aplikace [22]
Aplikace je postavena podle architektury Model-View-Controller. Cel´ y syst´em funguje tedy tak, ˇze pokud se chce uˇzivatel napˇr´ıklad registrovat, vloˇz´ı do formul´aˇre k tomu urˇcen´emu hodnoty pro registraci, po odesl´ an´ı hodnoty zpracuje Controller a pˇred´a je Modelu, kter´ y je pot´e uloˇz´ı do datov´e vrstvy. 4.2.2.1
Seznam sloˇ zek
• classes - veˇsker´e tˇr´ıdy pouˇzit´e ve webov´e aplikaci • controllers - ˇradiˇce aplikace • files - sloˇzka urˇcen´ a k uchov´ an´ı doˇcasn´ ych soubor˚ u (sloˇzka /tmp/ ) ˇci k uloˇzen´ı soubor˚ u jednotliv´ ych segment˚ u • nbproject - sloˇzka IDE Netbeans • views - sloˇzka kde jsou uloˇzeny ˇc´ asti pouˇzit´ ych pohled˚ u
´ APLIKACE 4.2. IMPLEMENTACE WEBOVE
4.2.2.2
27
D˚ uleˇ zit´ e soubory
• dbconfig.php - tento soubor obsahuje jednorozmˇern´e pole hodnot, kter´e jsou pouˇzity pro vytvoˇren´ı pˇripojen´ı do datab´aze.
1
if (! isset ( $c o n tr o l _ va l i d_u s ed ) ) die ( ’ YOU NOT TO BE ALLOWED USING THIS SCRIPT ! ’) ;
Zdrojov´ y k´ od 4.1: Kontrola korektn´ıho zobrazen´ı souboru
1 2 3 4 5 6 7
$ dbconfig = array ( " user " = > " root " , " password " = > " " , " host " = > " localhost " , " database " = > " qgame " , " coding " = > " utf8 " );
Zdrojov´ y k´ od 4.2: Vlastn´ı nastaven´ı pole znak˚ u v dbconfig.php
4.2.3
Tˇ r´ıdy modelu
1. Game - Tˇr´ıda slouˇz´ıc´ı k ukl´ad´an´ı nov´ ych her. • Metody //konstruktor tˇ r´ ıdy __construct() //metoda umoˇ zˇ nuj´ ıc´ ı uloˇ zen´ ı dat do datab´ aze save() 2. Gamebook - Tˇr´ıda slouˇz´ıc´ı k naˇcten´ı vytvoˇren´ ych her. • Promˇenn´e //pole vˇ sech her private $games • Metody //konstruktor tˇ r´ ıdy //zajiˇ st’uje naˇ cten´ ı her z datab´ aze do promˇ enn´ e $games __construct() //vrac´ ı hodnotu promˇ enn´ e $games getArray()
28
KAPITOLA 4. IMPLEMENTACE
3. GameHelper - Univerz´ aln´ı tˇr´ıda slouˇz´ıc´ı pro pomoc bˇehem cel´eho procesu tvorby hry. • Promˇenn´e //dvourozmˇ ern´ e pole nahr´ avan´ ych soubor˚ u private $FILE //pole jmen nahr´ avan´ ych souboru po zkop´ ırov´ an´ ı do sloˇ zky na serveru private $partArray //promˇ enn´ a pouˇ zit´ a pˇ ri rozdˇ elov´ an´ ı textov´ eho souboru pro zapamatov´ an´ ı // jeho jm´ ena private $name //promˇ enn´ a urˇ cuj´ ıc´ ı poˇ cet segment˚ u, na kter´ y m´ a b´ yt textov´ y soubor // rozdˇ elen private $parts • Metody //pouze pro textov´ e soubory //nahr´ an´ ı doˇ casn´ eho souboru do sloˇ zky /files/tmp/ //rozdˇ elen´ ı souboru na segmenty a jejich um´ ıstˇ en´ ı do sloˇ zky /files/ //smaz´ an´ ı doˇ casn´ eho souboru ze sloˇ zky /files/tmp/ gameDiv($FILE,$parts) //kontrola spr´ avn´ ych typ˚ u obrazov´ ych soubor˚ u //nahr´ an´ ı obr´ azk˚ u vˇ sech segment˚ u najednou uploadImages($FILES) //obdobn´ e jako uploadImages, jen pouˇ zito pro soubory .mp3 uploadMP3Files($FILES) //uloˇ zen´ ı doˇ casn´ eho souboru na server preUpload() //vrac´ ı poˇ cet hodnotu promˇ enn´ e $partArray getParts() //naˇ cte nahran´ y textov´ y soubor a vr´ at´ ı jeho obsah jako ˇ retˇ ezec txtToText() //kontrola spr´ avn´ eho souboru //vrac´ ı n´ avratovou hodnotu funkce divideTXT() divide() //rozdˇ elen´ ı souboru na segmenty a jejich um´ ıstˇ en´ ı do sloˇ zky /files/ //vrac´ ı pole jmen tˇ echto soubor˚ u
´ APLIKACE 4.2. IMPLEMENTACE WEBOVE
29
divideTXT() //smaˇ ze doˇ casn´ y soubor delTMPFile() //pamatuje si hodnoty formul´ aˇ r˚ u pˇ ri tvorbˇ e hry remember() 4. Guestbook - Tˇr´ıda slouˇz´ıc´ı k naˇcten´ı koment´aˇr˚ u pˇridan´ ych uˇzivateli do knihy n´avˇstˇev. • Promˇenn´e //dvourozmˇ ern´ e pole obsahuj´ ıc´ ı vˇ sechny zpr´ avy v knize n´ avˇ stˇ ev private $messages • Metody //konstruktor tˇ r´ ıdy __construct() //vrac´ ı hodnotu promˇ enn´ e $messages getArray() 5. Item - Tˇr´ıda slouˇz´ıc´ı k uloˇzen´ı vˇsech segment˚ u nov´e hry. • Metody //konstruktor tˇ r´ ıdy __construct() //uloˇ z´ ı vˇ sechny ˇ c´ asti hry //parametr urls(adresa m´ edia) je uloˇ zen´ a v $_SESSION //$game_id je id hry, ke kter´ e m´ a b´ yt segment pˇ riˇ razen save($game_id) //uloˇ z´ ı vˇ sechny ˇ c´ asti hry //parametr urls (adresa m´ edia) je vstupn´ ı argument //$game_id je id hry, ke kter´ e m´ a b´ yt segment pˇ riˇ razen savePart($game_id, $urls) 6. Message - Tˇr´ıda slouˇz´ıc´ı k manipulaci s koment´aˇri. • Promˇenn´e //id koment´ aˇ re private $id //id autora koment´ aˇ re private $user_id //ˇ cas vytvoˇ ren´ ı koment´ aˇ re
30
KAPITOLA 4. IMPLEMENTACE
private $datetime //text koment´ aˇ re private $text //instance tˇ r´ ıdy User private $u • Metody //konstruktor tˇ r´ ıdy __construct() //metoda umoˇ zˇ nuj´ ıc´ ı uloˇ zen´ ı dat do datab´ aze save() //naˇ cte veˇ sker´ y obsah koment´ aˇ re dle id load($m_id) //rozdˇ el´ ı datum koment´ aˇ re divDatetime($datetime) //vymaˇ ze koment´ aˇ r s id == $m_id pokud na to m´ a uˇ zivatel pr´ ava //$u_id je id pˇ rihl´ aˇ sen´ eho uˇ zivatele del($u_id, $m_id) //vykresluje tlaˇ c´ ıtko pro smaz´ an´ ı koment´ aˇ re delButton($u_id, $mu_id, $m_id) 7. User - Tˇr´ıda slouˇz´ıc´ı k manipulaci s uˇzivateli. • Promˇenn´e //identifikaˇ cn´ ı kl´ ıˇ c uˇ zivatele private $id; //kˇ restn´ ı jm´ eno uˇ zivatele private $name; //pˇ r´ ıjmen´ ı uˇ zivatele private $surname; //uˇ zivatelsk´ e jm´ eno uˇ zivatele private $username; //uˇ zivatelsk´ e heslo private $password;
´ APLIKACE 4.2. IMPLEMENTACE WEBOVE
31
//typ uˇ zivatele (ADMIN nebo MEMBER) private $type; //emailov´ a adresa uˇ zivatele private $mail; • Metody //konstruktor tˇ r´ ıdy __construct() //metoda pro zahashov´ an´ ı hesla gen_pass($string) //metoda pro zjiˇ stˇ en´ ı, zda existuje uˇ zivatel se zadan´ ym identifi// kaˇ cn´ ım kl´ ıˇ cem ($id) //n´ avratov´ a hodnota je typ uˇ zivatele pokud existuje, false pokud // neexistuje isUser($id) //vyuˇ z´ ıv´ a n´ avratov´ e hodnoty metody isUser //vrac´ ı v´ ysledek porovn´ an´ ı t´ eto n´ avratov´ e hodnoty proti slovu ADMIN isAdmin($id) //kontrola zda je uˇ zivatel povolen´ eho typu validate_input_user_type($string) //metoda pro uloˇ zen´ ı uˇ zivatele do datab´ aze save($name, $surname, $username, $password, $type, $mail) //aktualizov´ an´ ı uˇ zivatele se shodn´ ym identifikaˇ cn´ ım kl´ ıˇ cem jako // je hodnota $id //moˇ znost ´ upravy ´ udaj˚ u nen´ ı ve view ani v controller implementov´ ano // a existuje pouze jako moˇ zn´ e rozˇ s´ ıˇ ren´ ı update($id, $name, $surname, $password, $type, $mail) //pracuje s metodami update a save //zkontroluje duplicitu registrovan´ eho uˇ zivatele (dle username), // pˇ ri duplicitˇ e a defaultn´ ım nastaven´ ım atributu $updatable metoda // flush pouˇ zije metodu update //pokud je hodnota promˇ enn´ e $updatable rovna hodnotˇ e false, // metoda zabezpeˇ c´ ı chybov´ y v´ ystup o duplicitˇ e $username //pokud nen´ ı zjiˇ stˇ ena duplicita, v obou pˇ r´ ıpadech nastaven´ ı // $updatable se zavol´ a metoda save pro vytvoˇ ren´ ı nov´ eho z´ aznamu flush($name, $surname, $username, $password, $type, $mail, $updatable=false)
32
KAPITOLA 4. IMPLEMENTACE
//metoda kontroluj´ ıc´ ı shodnost hesel a korektn´ ı form´ at emailu //vol´ a metodu flush registration($name, $surname, $username, $password, $passwordCheck, $type, $mail) //metoda pouˇ zit´ a pro pˇ rihlaˇ sov´ an´ ı uˇ zivatele login($username,$password) //metoda pouˇ zit´ a pro odhlaˇ sov´ an´ ı uˇ zivatele logout() //naˇ cten´ ı uˇ zivatele dle id loadID($id) 4.2.3.1
Dalˇ s´ı tˇ r´ıdy
1. QGameDatabase - Zabezpeˇcuje pˇripojen´ı k datab´azi. • Metody //obsahuje pˇ ripojen´ ı k datab´ azi, vykon´ an´ ı dotazu, uzavˇ ren´ ı spojen´ ı query($query) 1 2
3 4 5
public function query ( $query ) { // zabezpeceni spravneho include konfiguracniho souboru databaze $ co n t ro l _ va l i d_ u s e d = 1; require dirname ( __FILE__ ) . " /../ dbconfig . php " ; unset ( $ c on t r ol _ v al i d _ us e d ) ;
6
// nastaveni dat k pripojeni if (! $conn = mysql_connect ( $dbconfig [ ’ host ’] , $dbconfig [ ’ user ’] , $dbconfig [ ’ password ’ ]) ) exit ( " Pripojeni se nezdarilo ! " ) ; mysql_select_db ( $dbconfig [ ’ database ’ ]) ; mysql_query ( " set names ’" . $dbconfig [ ’ coding ’ ]. " ’" ) ;
7 8
9 10 11
// vykonani dotazu a uzavreni spojeni $result = mysql_query ( $query ) ; mysql_close () ;
12 13 14 15
// navraceni vysledku if (! $result ) $_SESSION [ ’ db_error ’] = " < strong > ERROR : strong > " . strtolower ( $query ) . "
" ; return $result ;
16 17
18 19
}
Zdrojov´ y k´ od 4.3: Metoda QGameDatabase::query
´ APLIKACE 4.2. IMPLEMENTACE WEBOVE
33
2. ViewHelper - Obsahuje metody pro nastaven´ı poloˇzek menu a pˇr´ıstupn´ ych str´ anek pro uˇzivatele s opr´ avnˇen´ım k jejich zobrazen´ı. Tak´e m´a na starosti rozhodnout, zda dan´ a str´ anka m˚ uˇze b´ yt zobrazena, ˇci nikoliv. Pokud ne pˇresmˇeruj uˇzivatele na u ´vodn´ı str´ anku. Tot´eˇz se stane, i pokud uˇzivatel vloˇz´ı nekorektn´ı id str´anky. 3. PrintPage - Na z´ akladˇe v´ ystupu z metod z tˇr´ıdy ViewHelper zobrazuje dan´e str´ anky uˇzivateli. Star´ a se t´eˇz o vyps´an´ı koment´aˇr˚ u ˇci her. Obsahuje i metodu pro v´ ypis chybov´e hl´ aˇsky. 4. Control - Pomocn´ a tˇr´ıda pro kontrolu vstup˚ u z formul´aˇr˚ u. • Metody //obsahuje pˇ ripojen´ ı k datab´ azi, vykon´ an´ ı dotazu, uzavˇ ren´ ı spojen´ ı query($query) 1 2 3
public function validate_input ( $input ) { return addslashes ( trim ( nl2br ( strip_tags ( $input ) ) ) ) ; }
4 5 6
7
public function is_same ( $first , $second ) { return $this - > validate_input ( $first ) == $this - > validate_input ( $second ) ; }
Zdrojov´ y k´od 4.4: Obsah tˇr´ıdy Control
5. Init - Obsahuje metodu Init(), kter´a vytv´aˇr´ı tabulky, potˇrebn´e pro chod aplikace, v datab´ azi. 6. Soubory kontroleru - Vˇsechny soubory patˇr´ıc´ı do kontroleru (s vyj´ımkou tˇr´ıd), jsou um´ıstˇeny ve sloˇzce /controllers/. Vˇ sechny soubory patˇ r´ ıc´ ı do kontroleru (s vyj´ ımkou tˇ r´ ıd), jsou um´ ıstˇ eny ve sloˇ zce /controllers/. generate/step1.php -kontroler zajiˇ st’uj´ ıc´ ı zpracov´ an´ ı dat z prvn´ ıho formul´ aˇ re wizardu pro vytv´ aˇ ren´ ı her generate/step2.php -kontroler zajiˇ st’uj´ ıc´ ı zpracov´ an´ ı dat z druh´ eho formul´ aˇ re wizardu pro vytv´ aˇ ren´ ı her generate/step3.php -kontroler zajiˇ st’uj´ ıc´ ı zpracov´ an´ ı dat z tˇ ret´ ıho formul´ aˇ re wizardu pro vytv´ aˇ ren´ ı her -uloˇ zen´ ı ˇ c´ ast´ ı her do datab´ aze
34
KAPITOLA 4. IMPLEMENTACE
-nahr´ an´ ı obr´ azk˚ u a hudebn´ ıch soubor˚ u na server generate/step4.php -kontroler zajiˇ st’uj´ ıc´ ı vymaz´ an´ ı dat ze $_SESSION a otevˇ ren´ ı moˇ znosti vytvoˇ rit dalˇ s´ ı hru loging.php -skript zajiˇ st’uj´ ıc´ ı pˇ rihlaˇ sov´ an´ ı uˇ zivatele logout.php -skript zajiˇ st’uj´ ıc´ ı odhlaˇ sov´ an´ ı uˇ zivatele message.php -zpracov´ an´ ı dat z formul´ aˇ re pro pˇ rid´ an´ ı nov´ eho pˇ r´ ıspˇ evku do knihy n´ avˇ stˇ ev messageDel.php -vymaz´ an´ ı pˇ r´ ıspˇ evk˚ u z knihy n´ avˇ stˇ ev registration.php -zpracov´ an´ ı v´ ysledk˚ u z registrace nov´ eho uˇ zivatele 7. Soubory View index.php -z´ akladn´ ı stavebn´ ı k´ amen cel´ e aplikace, do tohoto souboru se vkl´ adaj´ ı veˇ sker´ e v´ ystupy z modelu pomoc´ ı tˇ r´ ıdy PrintPage init.php -soubor urˇ cen´ y pro jedno pouˇ zit´ ı, z´ akladn´ ı inicializace tabulek v datab´ azi 8. Obsah sloˇzky views Obsah sloˇ zky /views/resources/ -tato sloˇ zka obsahuje soubory CSS, soubory JavaScriptu a obr´ azky pouˇ zit´ e v kask´ adov´ ych stylech Obsah sloˇ zky /views/generate/ -tato sloˇ zka obsahuje jednotliv´ e kroky wizardu pro tvorbu nov´ ych her about.php -soubor obsahuj´ ıc´ ı informace o hˇ re QGame, statick´ a str´ anka download.php -soubor obsahuj´ ıc´ ı informace o aplikaci QGame pro android a odkaz na jej´ ı staˇ zen´ ı -statick´ a str´ anka
4.3. IMPLEMENTACE APLIKACE [23]
35
games.php -soubor zobrazuje seznam vˇ sech vytvoˇ ren´ ych her s moˇ znost´ ı naˇ cten´ ı prvn´ ıho QR k´ odu a t´ ım umoˇ zn´ ı snadn´ e zapoˇ cet´ ı hry generate.php -soubor, kter´ y zobrazuje jednotliv´ e kroky wizardu pro tvorbu hry guestbook.php -soubor zobrazuje vˇ sechny koment´ aˇ re pˇ ridan´ e registrovan´ ymi uˇ zivateli home.php -´ uvodn´ ı str´ anka aplikace -statick´ a str´ anka registration.php -soubor obsahuje formul´ aˇ r, kter´ y dovoluje registrace uˇ zivatele do webov´ e aplikace QGame login.php -ˇ c´ ast str´ anky zobrazuj´ ıc´ ı bud’ formul´ aˇ r k pˇ rihl´ aˇ sen´ ı, c ˇi pokud je uˇ zivatel pˇ rihl´ aˇ sen, informace o tom, kdo je pˇ rihl´ aˇ sen a moˇ znost odhl´ aˇ sen´ ı menu.php -vykreslen´ ı poloˇ zek menu
4.3 4.3.1
Implementace aplikace [23] Datov´ a vrstva aplikace
Jedn´a se o vrstvu, kde si aplikace QGame ukl´ad´a pouˇzit´a data. Zde toto pˇredstavuje jedin´ y soubor qgameSaves.txt, kter´ y se nal´ez´a ve sloˇzce /sdcard. Tento soubor slouˇz´ı k ukl´ad´ an´ı dat z´ıskan´ ych z nasn´ıman´ ych QR k´od˚ u z aplikace, Textov´ y soubor byl p˚ uvodnˇe vybr´ an proto, aby mohl uˇzivatel velmi snadno smazat veˇskerou historii her bez nutnosti spuˇstˇen´ı aplikace. Elegantnˇejˇs´ım ˇreˇsen´ım by vˇsak nejsp´ıˇse bylo pˇresunut´ı datov´e vrstvy do SQLite, kterou obsahuje kaˇzd´ y Android. Toto ˇreˇsen´ı by ovˇsem omezilo pˇr´ıstup uˇzivatele k dat˚ um bez nutnosti spuˇstˇen´ı aplikace QGame.
4.3.1.1
Form´ at dat v datov´ em souboru
1. Cel´ y soubor se skl´ ad´ a z jednoho ˇretˇezce, kter´ y je oddˇelen ˇretˇezci <:QGAME:> a <:!:>. ˇ ezec <:QGAME:> pˇredstavuje oddˇelovaˇc jednotliv´ 2. Retˇ ych her a lze ho pouˇz´ıt pouze v aplikaci QGame.
36
KAPITOLA 4. IMPLEMENTACE
ˇ ezec <:!:> pˇredstavuje oddˇelovaˇc atribut˚ 3. Retˇ u v r´amci jedn´e ˇc´asti (segmentu) hry. Tento ˇretˇezec je pˇrid´ an pˇri tvorbˇe QR k´ odu ve webov´em port´alu.
4. Atributy pˇred´ avan´e ˇretˇezcem hry jsou celkem ˇctyˇri: [url] - URL adresa uloˇzen´eho m´edia [ˇs´ıˇrka] - zemˇepisn´ a ˇs´ıˇrka n´ asleduj´ıc´ıho segmentu [d´elka] - zemˇepisn´ a d´elka n´ asleduj´ıc´ıho segmentu [n´azev] - n´ azev hry
1
[ url ] <: ! : >[ sirka ] <: ! : >[ delka ] <: ! : >[ nazev ]
ˇ ezec obsaˇzen´ Zdrojov´ y k´ od 4.5: Retˇ y v QR k´odech Pˇri ukl´ad´an´ı hry do souboru je na konec kaˇzd´eho ˇretˇezce pˇrid´an jeˇstˇe oddˇeluj´ıc´ı ˇretˇezec <:QGAME:>, za tento oddˇelovaˇc mohou b´ yt uloˇzena dalˇs´ı data o hr´ach. 1
[ url ] <: ! : >[ sirka ] <: ! : >[ delka ] <: ! : >[ nazev ] < :QGAME: >[ url ] <: ! : >[ sirkaka ] <: ! : >[ delka ] <: ! : >[ nazev ] < :QGAME: >
Zdrojov´ y k´ od 4.6: Uk´ azka ˇretˇezc˚ u ukl´adan´ ych do datov´eho souboru
4.3.2 4.3.2.1
Implementace business logiky Sn´ım´ an´ı QR k´ odu
Pro samotn´e sn´ım´ an´ı QR k´ odu aplikace QGame vyuˇz´ıv´a extern´ı aplikaci Barcode Scanner. Pro pr´aci s t´ımto programem aplikace QGame obsahuje tˇr´ıdy IntentIntegrator a IntentResult. Spuˇstˇen´ı Barcode Scanner je provedeno ve tˇr´ıdˇe Scanner. 1 2
IntentIntegrator integrator = new IntentIntegrator ( Scanner . this ) ; integrator . initiateScan ( IntentIntegrator . QR_CODE_TYPES ) ;
Zdrojov´ y k´ od 4.7: Spuˇstˇen´ı extern´ı aplikace Barcode Scanner Zachycen´ı a manipulace s v´ ysledkem skenov´an´ı se prov´ad´ı v metodˇe Scanner.onActivityResult. Zde je tak´e provedeno automatick´e uloˇzen´ı naˇcten´eho ˇretˇezce z QR k´odu do datov´eho souboru aplikace ⇒ /sdcard/qgameSaves.txt. D´ ale se v t´eto metodˇe provede zasl´an´ı naskenovan´ ych dat do tˇr´ıdy .class. Data jsou typu String.
4.3. IMPLEMENTACE APLIKACE [23]
1 2 3
37
Intent intent = new Intent ( GameParts . this , Game . class ) ; intent . putExtra ( " game " , game ) ; startActivity ( intent ) ;
Zdrojov´ y k´ od 4.8: Pˇred´an´ı dat tˇr´ıdˇe Game a jej´ı spuˇstˇen´ı
4.3.2.2
Zobrazen´ı detailu QR k´ odu
Tento u ´kol zpracov´ av´ a tˇr´ıda Game. Tato tˇr´ıda m´a za u ´kol zobrazit obsah naˇcten´eho QR k´ odu, at’ uˇz se jedn´ a o naˇcten´ı obsahu z datov´eho souboru, ˇci zobrazen´ı v´ ysledku akce Sejmout ” k´od“. Zobrazen´ı obsahu se provede v metodˇe Game.onCreate. 1 2
Bundle extras = getIntent () . getExtras () ; this . game = extras . getStringArray ( " game " ) ;
Zdrojov´ y k´ od 4.9: Z´ısk´an´ı datov´eho ˇretˇezce pro zobrazen´ı
1 2 3
this . cURL = this . game [0]; this . cGPS = this . game [1]+ " ," + this . game [2]; this . name = this . game [3];
Zdrojov´ y k´od 4.10: Parsov´an´ı z´ıskan´ ych dat Tato tˇr´ıda m´ a tak´e za u ´kol zobrazen´ı m´edia dle URL z QR k´odu, coˇz je provedeno spuˇstˇen´ım webov´eho prohl´ıˇzeˇce zaˇr´ızen´ı s parametrem URL (viz n´ıˇze) a spuˇstˇen´ı navigace s parametrem GPS (viz n´ıˇze) pro snadnˇejˇs´ı lokalizaci dalˇs´ı ˇc´asti. Tyto ˇc´asti k´odu jsou uvedeny i s kontextem, coˇz je pˇripojen´ı OnClickListeneru na pˇr´ısluˇsn´ y button a nastaven´ı akce, kter´ a se provede po kliknut´ı na tento button (akce spuˇstˇen´ı navigace ˇci prohl´ıˇzeˇce). 1 2 3 4 5 6 7 8 9
this . image = ( Button ) findViewById ( R . id . image ) ; this . image . set On Cl ic kL is te ne r ( new View . OnClickListener () { public void onClick ( View v ) { Intent i = new Intent ( Intent . ACTION_VIEW ) ; i . setData ( Uri . parse ( cURL ) ) ; startActivity ( i ) ; } }) ;
Zdrojov´ y k´ od 4.11: Spuˇstˇen´ı webov´e prohl´ıˇzeˇce s parametrem URL
1 2 3
this . gps = ( Button ) findViewById ( R . id . gps ) ; this . gps . set On Cl ic kL is te ne r ( new View . OnClickListener () {
38
KAPITOLA 4. IMPLEMENTACE
public void onClick ( View v ) { Intent i = new Intent ( Intent . ACTION_VIEW , Uri . parse ( " google . navigation : q = " + cGPS ) ) ; startActivity ( i ) ; }
4 5
6 7 8
}) ;
Zdrojov´ y k´ od 4.12: Spuˇstˇen´ı defaultn´ı navigace pro Android s parametrem GPS
4.3.2.3
Zobrazen´ı detailu hry z rozehran´ ych her
Pˇri t´eto akci je nejd˚ uleˇzitˇejˇs´ım krokem naˇcten´ı vˇsech rozehran´ ych her z datov´eho souboru. Naˇc´ıt´an´ı dat ze souboru m´ a na starosti tˇr´ıda Games.class, konkr´etnˇe jej´ı metoda Games.readTextFile. Tato metoda naˇcte znak po znaku cel´ y soubor a v´ ysledn´ y String uloˇz´ı jako promˇennou instance tˇr´ıdy Games.class metodˇe Games.textToGames, kter´a String rozparsuje. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
private void textToGames () { this . readTextFile () ; if ( this . fileEx ) { this . parts = this . text . split ( " <: QGAME : > " ) ; this . games = new String [ this . parts . length ][4]; ArrayList < String > al = new ArrayList < String >() ; for ( int i =0; i < this . parts . length ; i ++) { this . games [ i ]= this . parts [ i ]. split ( " <:!: > " ) ; if (! al . contains ( this . games [ i ][3]) ) { al . add ( this . games [ i ][3]) ; } } this . titles = al . toArray ( new String [ al . size () ]) ; } }
Zdrojov´ y k´od 4.13: Metoda Games.textToGames pouˇzit´a pro parsov´an´ı v´ ysledku po ˇcten´ı ze souboru Jak je vidˇet z uk´ azky k´ odu, v promˇenn´e Games.titles je uloˇzeno pole String˚ u (konkr´etn´ıch n´azv˚ u her), kter´e jsou pouˇzity pro vygenerov´an´ı dynamick´eho seznamu - pˇrehledu rozehran´ ych her. 1
2 3
setListAdapter ( new ArrayAdapter < String >( this , R . layout . games , this . titles ) ) ; ListView lv = getListView () ; lv . s e t T e x t F i l t e r E n a b l e d ( true ) ;
Zdrojov´ y k´ od 4.14: Generov´an´ı seznamu rozehran´ ych her
4.3. IMPLEMENTACE APLIKACE [23]
39
Pˇri aktivov´ an´ı poloˇzky seznamu, jeˇz pˇredstavuje hru, bude spuˇstˇena tˇr´ıda GamesParts.class, do n´ıˇz bude pomoc´ı metody Intent.putExtra(key,value) pˇrid´ano pole pˇr´ısluˇsn´ ych ˇc´ ast´ı zvolen´e hry. 1 2
3 4 5 6
7 8 9 10
11 12 13
lv . s e t O n I t e m C l i c k L i s t e n e r ( new O nI t e mC l i ck L i st e n er () { public void onItemClick ( AdapterView > parent , View view , int position , long id ) { String identifikator = ( String ) (( TextView ) view ) . getText () ; String [] parts = findParts ( identifikator ) ; if ( parts != null ) { Intent intent = new Intent ( Games . this , GameParts . class ) ; intent . putExtra ( " parts " , parts ) ; startActivity ( intent ) ; } else { Toast . makeText ( g e t A p p l i c a t i o n C o n t e x t () , " Vyskytla se chyba ! " , Toast . LENGTH_SHORT ) . show () ; } } }) ;
Zdrojov´ y k´ od 4.15: Uk´azka nasazen´ı listeneru na poloˇzku seznamu her
1 2 3 4 5 6 7 8 9 10
public String [] findParts ( String iden ) { ArrayList < String > array = new ArrayList < String >() ; for ( int i =0; i < this . parts . length ; i ++) { if ( this . games [ i ][3]. equals ( iden ) ) { if (! array . contains ( this . parts [ i ]) ) array . add ( this . parts [ i ]) ; } } return array . toArray ( new String [ array . size () ]) ; }
Zdrojov´ y k´ od 4.16: Obsah metody Games.findParts
Tˇr´ıda GameParts.class funguje velmi obdobnˇe jako tˇr´ıda Games.class s t´ım rozd´ılem, ˇze vstupn´ı data nez´ısk´ av´ a naˇc´ıt´ an´ım souboru, ale z Intent od tˇr´ıdy Games.class. 1 2
Bundle extras = getIntent () . getExtras () ; this . parts = extras . getStringArray ( " parts " ) ;
Zdrojov´ y k´od 4.17: Z´ısk´an´ı dat ke zpracov´an´ı
Z pole String˚ u GameParts.parts je zjiˇstˇen n´azev kaˇzd´e ˇc´asti hry, pˇrid´ano ˇc´ıslo segmentu a vytvoˇren´ı seznamu z takto vznikl´eho pole. Parsov´an´ı m´a na starosti metoda GameParts.splitArray.
40
1
KAPITOLA 4. IMPLEMENTACE
nazevhry_0
Zdrojov´ y k´ od 4.18: Uk´azka v´ ysledn´eho n´azvu ˇc´asti hry Po aktivov´ an´ı poloˇzky seznamu pˇredstavuj´ıc´ı segment hry je dalˇs´ı postup totoˇzn´ y s v´ yˇse uveden´ ym postupem pˇri sejmut´ı nov´e hry z QR k´odu (rozum´ı se odesl´an´ı ˇretˇezce s u ´daji o konkr´etn´ım segmentu tˇr´ıdˇe Game.class).
Kapitola 5
Testov´ an´ı pouˇ zitelnosti V t´eto ˇc´ asti se zab´ yv´ am testov´ an´ım v´ ysledk˚ u m´e pr´ace, tedy webov´eho port´alu a aplikace pro Android. Protoˇze c´ılov´e skupiny pro obˇe ˇc´asti nemus´ı nutnˇe splˇ novat stejn´e podm´ınky, rozdˇelila jsem tuto kapitolu na dvˇe podkapitoly. V prvn´ı se zamˇeˇr´ım na testov´an´ı webov´eho port´alu, ve druh´e na testov´ an´ı aplikace.
5.1
Testov´ an´ı webov´ eho port´ alu
Tato ˇc´ ast kapitoly o testov´ an´ı se zab´ yv´a testov´an´ım uˇzivatelsk´eho rozhran´ı webov´eho port´ alu http://qgame.wz.cz. M´ ym c´ılem bylo zjistit, v jak´e m´ıˇre se mi podaˇrilo vytvoˇrit uˇzivatel˚ um jasn´ y a srozumiteln´ y pr˚ uchod t´ımto port´alem a jeho pˇr´ıpadn´e chyby a nedostatky. Pro testov´ an´ı jsem vyuˇzila m´ıstnost k tomu urˇcenou, laboratoˇr Usability Lab, um´ıstˇenou ˇ eho vysok´eho uˇcen´ı v Praze na Karlovˇe n´ amˇest´ı v budovˇe E Fakulty elektrotechnick´e Cesk´ technick´eho.
5.1.1
´ castn´ıc´ı testu Uˇ
K samotn´emu testov´ an´ı jsem potˇrebovala 5 u ´ˇcastn´ık˚ u testu - participant˚ u. M´ ym poˇzadavkem bylo, aby tito participanti byli jak muˇzi, tak ˇzeny, r˚ uzn´ ych vˇekov´ ych kategori´ı. Dalˇs´ımi poˇzadavky bylo uˇz´ıv´ an´ı internetu a znalost pojmu geocaching. Pˇredbˇeˇzn´e z´ ajemce jsem sh´ anˇela pomoc´ı soci´aln´ı s´ıtˇe Facebook a mezi pˇr´ateli a zn´am´ ymi. T´ımto zp˚ usobem se mi podaˇrilo sehnat skupinu dev´ıti osob. K v´ ybˇeru participant˚ u slouˇzil screener dotazn´ık (pˇr´ıloha screener je um´ıstˇena na CD) vytvoˇren´ y pomoc´ı sluˇzby Google Docs. Z´ ajemc˚ um jsem na tento dotazn´ık zaslala odkaz, pod kter´ ym mˇeli moˇznost jej vyplnit online. Po vyplnˇen´ı dotazn´ıku vˇsemi z´ajemci jsem z´ıskala skupinu pˇeti osob, kter´e splˇ novali m´e ˇ poˇzadavky, a to znalost pojmu geocaching a pouˇz´ıv´an´ı internetu. Zeny a muˇzi byli v pomˇeru 2 : 3, ve vˇekov´ ych kategori´ıch 10 - 20, 20 - 30 a v´ıce jak 30 v pomˇeru 2 : 2 : 1, pouˇz´ıv´ an´ı internetu dennˇe a 2 - 3x t´ ydnˇe v pomˇeru 4 : 1. Jednou z hlavn´ıch podm´ınek pro splnˇen´ı m´ ych poˇzadavk˚ u pro testov´ an´ı byla i ot´azka t´ ykaj´ıc´ı se znalosti pojmu geocaching, kterou
41
´ ´I POUZITELNOSTI ˇ KAPITOLA 5. TESTOVAN
42
splˇ nuj´ı vˇsichni vybran´ı participanti. Vyplnˇen´e odpovˇedi vˇsech z´ajemc˚ u o testov´an´ı jsou zaznamen´any do tabulky (tabulka 5.1). V dalˇs´ı tabulce (tabulka 5.2) pak odpovˇedi tˇech, kteˇr´ı nebyli vybr´ani. 5.1.1.1
Data z´ıskan´ a ze screener dotazn´ıku
Poˇ rad´ı 1 2 3 4 5
Pohlav´ı Muˇz ˇ Zena Muˇz Muˇz ˇ Zena
Vˇ ek 20 - 30 10 - 20 V´ıce jak 30 10 - 20 20 - 30
Internet uˇ z´ıv´ am: Dennˇe 2 - 3x t´ ydnˇe Dennˇe Dennˇe Dennˇe
Znalost pojmu geocaching Ano, setkal/a jsem se. Ano, setkal/a jsem se. Ano, setkal/a jsem se. Ano, setkal/a jsem se. Ano, setkal/a jsem se.
Tabulka 5.1: V´ ysledky screener dotazn´ıku - participanti, kteˇr´ı byli vybr´ani pro testov´an´ı Poˇ rad´ı 6 7 8 9
Pohlav´ı Muˇz Muˇz Muˇz ˇ Zena
Vˇ ek 20 - 30 20 - 30 10 - 20 20 - 30
Internet uˇ z´ıv´ am: Dennˇe Dennˇe Dennˇe 2 - 3x t´ ydnˇe
Znalost pojmu geocaching Ne, neslyˇsel/a. Ano, setkal/a jsem se. Ne, neslyˇsel/a. Ne, neslyˇsel/a.
Tabulka 5.2: V´ ysledky screener dotazn´ıku - participanti, kteˇr´ı nebyli vybr´ani pro testov´an´ı
5.1.2
Dotazn´ık pˇ red testov´ an´ım
Pˇred t´ım, neˇz kaˇzd´ y participant mohl pˇrej´ıt k testov´an´ı konkr´etn´ıch u ´kol˚ u, musel vyplnit dotazn´ık urˇcen´ y pˇred testem, tzv. pre-test (pˇr´ıloha pre-test je um´ıstˇena na CD). Tento dotazn´ık byl opˇet vytvoˇren pomoc´ı sluˇzby Google Docs. Z´ıskan´e informace jsem opˇet zanesla do tabulky (tabulka 5.3). V tomto dotazn´ıku jsem zjiˇst’ovala hlavnˇe jak´e m´a participant znalosti ohlednˇe hry geocaching, zda ho provozuje aktivnˇe ˇci pasivnˇe a jestli vlastn´ı nˇejak´e GPS zaˇr´ızen´ı.
Vesele. Fajnˇe. Napnutˇe. Tˇeˇs´ım se. Pˇr´ıjemnˇe.
Aktivnˇe Aktivnˇe Pasivnˇe Pasivnˇe Aktivnˇe
Vlastn´ıte nˇ ejak´ e zaˇ r´ızen´ı GPS? Jak´ e?
Geocaching provozujete:
Jak se nyn´ı c´ıt´ıte?
Participant 1 2 3 4 5
Data z´ıskan´ a z dotazn´ıku pˇ red testov´ an´ım
Ano, (mobil) Ano, (mobil, Garmin) Ano, (mobil) Ano, (mobil, v autˇe) Ano, (mobil)
Vlastn´ıte nebo m´ ate pˇ r´ıstup k: Tisk´arna Pamˇet’. zaˇr´ızen´ı √ √ √ √ √ √ √ √ √ √
Tabulka 5.3: Data z´ıskan´a z pre-testu
Cache √ √ √ √ √
Jak´ e zn´ ate pojmy: QR k´ od M´edium Segment √ √ × √ √ √ √ √ × √ × × √ √ √
´ ´I WEBOVEHO ´ ´ 5.1. TESTOVAN PORTALU
5.1.2.1
43
´ ´I POUZITELNOSTI ˇ KAPITOLA 5. TESTOVAN
44
5.1.3
Pr˚ ubˇ eh testov´ an´ı
V m´ıstnosti pro participanta byl poˇc´ıtaˇc s touto konfigurac´ı: • Intel Core 2 Duo 4300 (1,8 GHz) • 2 GB RAM • Windows 7 Enterprise SP1 (32bitov´a verze) • Monitor Dell (rozliˇsen´ı 1280x960 px) Jedin´e co bylo potˇreba participantovi dopˇredu zaˇr´ıdit, bylo vytvoˇrit sloˇzku se soubory rozd´ıln´ ych typ˚ u, kter´e byly potˇreba pˇri testov´an´ı. Kv˚ uli z´aznamu testov´an´ı byl na poˇc´ıtaˇci pro participanty zprovoznˇen program Morae Observer a k poˇc´ıtaˇci pˇripojen mikrofon. Pro z´aznam videa byly k dispozici 2 kamery pro sn´ım´an´ı participanta. Kaˇzd´ y participant dostal pˇred samotn´ ym testov´an´ım k vyplnˇen´ı pre-test dotazn´ık. Pot´e co dotazn´ık vyplnil, byl usazen k poˇc´ıtaˇci urˇcen´ y pro participanta. Vedle nˇej sedˇel v m´ıstnosti vˇzdy jeden moder´ ator, kter´ y mˇel za u ´kol participantovi vysvˇetlit postup pˇri testov´an´ı, jak se m´a chovat, ˇze m´ a vˇsechny sv´e kroky i myˇslenky nahlas komentovat. Jakmile byl participant pˇripraven, moder´ ator spustil nahr´ av´ an´ı v programu Morae Observer. Moder´ator pˇredal participantovi sc´en´ aˇr s u ´koly, kter´ y byl vytvoˇren pomoc´ı sluˇzby Google Docs, pˇri testov´ an´ı byl ale poskytnut v pap´ırov´e formˇe (pˇr´ıloha sc´en´aˇr je um´ıstˇena na CD), a dal mu prostor, aby si u ´koly nejprve v klidu pˇreˇcetl. Pot´e mu vysvˇetlil pˇr´ıpadn´e nejasnosti. 5.1.3.1
Soupis u ´ kol˚ u pro participanty
1. Registrace • Otevˇrete si v prohl´ıˇzeˇci adresu qgame.wz.cz. • Zaregistrujte se, pros´ım. 2. Tvorba hry ˇ • Nejprve si pˇreˇctˇete z´ aloˇzku O HRE. • Vytvoˇrte hru s n´ azvem “Moje prvn´ı hra x”, kde x bude ˇc´ıslo poˇrad´ı, kter´e V´am ozn´ am´ı moder´ ator. • Otevˇrete sloˇzku QRGAME um´ıstˇenou na ploˇse. Zde si zjistˇete podle Vaˇseho ˇc´ısla poˇrad´ı jak´e m´edium (m´edia) budete uploadovat. • Jako typ m´edia vyberte to, kter´e V´am bylo v pˇredchoz´ım bodˇe pˇridˇeleno. Informace k m´edi´ım: N´azev: Pes baskervillsky Autor: Arthur Conan Doyle N´azev: Plakos Autor: Jiˇr´ı Franta
´ ´I WEBOVEHO ´ ´ 5.1. TESTOVAN PORTALU
45
N´ azev: Valerie Autor: Amy Winehouse N´ azev: Winter Warriors Autor: David Gemmell N´ azev: Doc. Ing. D. Zlo, CSc. vzpom´ın´a Autor: Jojin & HedgeHog N´ azev: Monkey Man Autor: Amy Winehouse • Pro GPS lokace pouˇzijte “Mapy.cz”. • Zkontrolujte, zda Vaˇse hra byla u ´spˇeˇsnˇe vytvoˇrena. 3. Pˇr´ıspˇevek • Do n´ avˇstˇevn´ı knihy vloˇzte nˇejak´ y sv˚ uj pˇr´ıspˇevek (napˇr. jak se V´am l´ıb´ı myˇslenka, hra, web atd.). Jednotliv´e u ´koly byly vyb´ır´ any tak, aby participant dˇelal souvislou pr´aci a otestoval tak i cel´ y webov´ y port´ al. Nejv´ıce d˚ uleˇzit´ y byl vˇsak bod t´ ykaj´ıc´ı se tvorby hry.
5.1.4
Souhrn poznatk˚ u z testov´ an´ı s jednotliv´ ymi u ´ˇ castn´ıky testov´ an´ı
Testu se z´ uˇcastnilo celkem 5 uˇzivatel˚ u, kteˇr´ı byli vybr´ani na z´akladˇe screener dotazn´ıku. V´ ysledky test˚ u jednotliv´ ych participant˚ u se ve vˇsech bodech shoduj´ı, kromˇe u ´kolu druh´eho. Uvedu zde proto pr˚ ubˇeh dvou test˚ u nejv´ıce vystihuj´ıc´ıch komplikace s uˇzivatelsk´ ym rozhran´ım. 1. Participant ˇc. 1 ´ • Ukol 1 (registrace): S t´ımto krokem nemˇel uˇzivatel jedin´ y probl´em. Registraci shrnul jako jasnou a struˇcnou. Registrace tedy probˇehla u ´spˇeˇsnˇe. ´ • Ukol 2 (tvorba hry): Pˇri tomto u ´kolu nastal probl´em aˇz ve druh´e ˇc´asti formul´ aˇre. Participant si totiˇz nepamatoval typ m´edia, kter´e zvolil v prvn´ı ˇc´asti formul´ aˇre. Po snaze nahr´ at soubor jin´eho byl vˇsak spr´avnˇe syst´emem upozornˇen, ˇze vkl´ ad´ a jin´ y typ souboru, neˇz uvedl v pˇredchoz´ım kroku. Protoˇze formul´aˇre neobsahovaly ´ tlaˇc´ıtko zpˇet, moder´ ator mu musel napovˇedˇet. Ukol uˇz pak dokonˇcil bez vˇetˇs´ıch komplikac´ı. ´ • Ukol 3 (pˇr´ıspˇevek): Tento u ´kol pro participanta opˇet nebyl probl´em. Vloˇzen´ı pˇr´ıspˇevku probˇehlo v poˇr´adku a bez jedin´ ych komplikac´ı.
´ ´I POUZITELNOSTI ˇ KAPITOLA 5. TESTOVAN
46
2. Participant ˇc. 4 ´ • Ukol 1 (registrace): Jako u vˇsech ostatn´ıch u ´ˇcastn´ık˚ u testu i tento u ´kol participant provedl bez jedin´e komplikace ˇci zav´ah´an´ı. ´ • Ukol 2 (tvorba hry): Pˇri tomto u ´kolu probl´em nastal hned u prvn´ıho bodu. Uˇzivatel oznaˇcil poloˇzku v menu, ale ˇrekl, ˇze si nen´ı jist´ y, kde se nach´az´ı, protoˇze poloˇzky nebyly nijak zv´ yraznˇeny a z´aloˇzka neobsahovala nadpis, dle kter´eho by mu bylo naprosto jasn´e, kde se nach´az´ı. S tvorbou hry nemˇel aˇz takov´ y probl´em, jen v posledn´ım kroku podotkl, ˇze by moˇzn´a uv´ıtal vkl´ad´an´ı GPS souˇradnic do jednoho pole. Po vygenerov´ an´ı k´od˚ u jeˇstˇe pˇripomnˇel, ˇze by mˇely b´ yt dan´e kroky v´ıce okomentovan´e pro volnˇejˇs´ı pr˚ ubˇeh vytv´aˇren´ı her. ´ • Ukol 3 (pˇr´ıspˇevek): Tento u ´kol opˇet nebyl ˇz´adn´ y probl´em. Participant vloˇzil pˇr´ıspˇevek bez jedin´eho zav´ ah´ an´ı.
5.1.5
Nalezen´ y probl´ em a n´ avrhy jeho ˇ reˇ sen´ı
• Tvorba hry Problematick´ yu ´kon se stal pouze pˇri vytv´aˇren´ı hry. Prvn´ı prob´ıhal u vˇsech participant˚ u v poˇr´ adku. Ve druh´em kroku vˇsak v jednom pˇr´ıpadˇe nastala chyba v podobˇe vkl´ adan´eho souboru. Participant si nezapamatoval typ m´edia, jak´e m´a vkl´adat a snaˇzil se nahr´ at m´edium jin´eho typu, neˇz jak´e zvolil v prvn´ım kroku. Tˇret´ı ˇc´ ast formul´ aˇre prob´ıhal bez vˇetˇs´ıch probl´em˚ u. V posledn´ım kroku byl pak probl´em se vkl´ ad´ an´ım GPS souˇradnic. Nˇekteˇr´ı participanti byli trochu zmateni pˇri vkl´ ad´ an´ı souˇradnic, a to hlavnˇe kv˚ uli pˇrep´ın´an´ı mezi obrazovkami. V pˇr´ıpadˇe zapomenut´ı vybran´eho m´edia v prvn´ım kroku by bylo ˇreˇsen´ım uv´adˇet tento typ v dalˇs´ıch ˇc´ ast´ı formul´aˇre. Dalˇs´ım vylepˇsen´ım by bylo rozhodnˇe tlaˇc´ıtko Zpˇet. V posledn´ım kroku pak vloˇzen´ı mapy, ze kter´e by se po oznaˇcen´ı konkr´etn´ıho m´ısta vloˇzily GPS souˇradnice do formul´aˇre k jednotliv´ ym segment˚ um.
5.1.6
Dotazn´ık po testov´ an´ı
Dotazn´ık po testov´ an´ı, tzv. post-test participanti vyplˇ novali po skonˇcen´ı testov´an´ı, a to v pap´ırov´e formˇe. K vytvoˇren´ı tohoto formul´aˇre byla vˇsak rovnˇeˇz pouˇzita sluˇzba Google Docs (post-test je k dispozici na CD), odkud byly n´aslednˇe vytiˇstˇeny. V tabulce 5.4 jsou pak uvedeny odpovˇedi jednotliv´ ych u ´ˇcastn´ık˚ u
Participant
´ ´I APLIKACE ANDROID 5.2. TESTOVAN
Jak jste se c´ıtil/a bˇehem testov´ an´ı?
1
Zmatenˇe.
2
Pˇr´ıjemnˇe.
3
V´ıcem´enˇe pˇr´ıjemnˇe.
4
Komfortnˇe.
5
Trochu ve stresu.
Jak byste zhodnotil/a strukturu webu? Pˇrehledn´a. Generov´an´ı x Vytvoˇren´ı. Pˇrehledn´e, trochu zmaten´e u vytv´aˇren´ı hry.
Velmi pˇrehledn´e.
Pˇrehledn´ y, ale m´alo obr´ azk˚ u. Srozumiteln´e, lehk´ y zmatek pˇri tvorbˇe hry.
47
Co V´am na webu chybˇelo?
Jak byste zhodnotil/a celkovou myˇslenku projektu?
Pˇrehled, kolik lid´ı kterou hru hraje.
L´ıb´ı, jin´ y geocaching.
Pravidla o vytvoˇren´ı hry. Mapa pˇr´ımo na str´ance se vkl´ad´an´ım GPS souˇradnic. Uˇzivatelsky pˇr´ıvˇetivˇejˇs´ı (moje hry, person´aln´ı sekce).
Zaj´ımav´e, m´a smysl. Jako dalˇs´ı moˇzn´a keˇs na geocaching.com.
Popisky pˇri tvorbˇe hry.
Urˇcitˇe zaj´ımav´e.
Zaj´ımav´e, origin´aln´ı. Z´abavn´e, zaj´ımav´ y n´apad, snad se uchyt´ı.
Tabulka 5.4: Data z dotazn´ıku po testov´an´ı
5.2
Testov´ an´ı aplikace Android
Tato ˇc´ ast kapitoly o testov´ an´ı se zab´ yv´a testov´an´ım uˇzivatelsk´eho rozhran´ı aplikace Android. M´ ym c´ılem bylo zjistit, v jak´e m´ıˇre se mi podaˇrilo vytvoˇrit uˇzivatel˚ um jasn´ y a srozumiteln´ y pr˚ uchod touto aplikac´ı a jej´ı pˇr´ıpadn´e chyby a nedostatky. Protoˇze se jedn´ a o outdoorovou hru, testov´an´ı prob´ıhalo v ter´enu, konkr´etnˇe v parku a okol´ı Vyˇsehradu v Praze.
5.2.1
´ castn´ıc´ı testu Uˇ
K samotn´emu testov´ an´ı jsem potˇrebovala 5 osob - participant˚ u. M´ ym poˇzadavkem bylo, aby tito participanti byli jak muˇzi, tak ˇzeny, r˚ uzn´ ych vˇekov´ ych kategori´ı. Dalˇs´ımi poˇzadavky byla znalost pojmu geocaching a aby participanti umˇeli pracovat s mobiln´ım telefonem s Androidem. Pˇredbˇeˇzn´e z´ ajemce jsem sh´ anˇela pomoc´ı soci´aln´ı s´ıtˇe Facebook a mezi pˇr´ateli a zn´am´ ymi. T´ımto zp˚ usobem se mi podaˇrilo sehnat skupinu ˇsesti osob. K v´ ybˇeru participant˚ u slouˇzil screener dotazn´ık (pˇr´ıloha screener je um´ıstˇena na CD) vytvoˇren´ y pomoc´ı sluˇzby Google Docs. Z´ ajemc˚ um jsem na tento dotazn´ık zaslala odkaz, pod kter´ ym mˇeli moˇznost jej vyplnit online.
´ ´I POUZITELNOSTI ˇ KAPITOLA 5. TESTOVAN
48
Po vyplnˇen´ı dotazn´ıku vˇsemi z´ ajemci jsem z´ıskala skupinu pˇeti osob, kter´e splˇ novali m´e ˇ poˇzadavky, a to znalost pojmu geocaching a vlastnˇen´ı mobiln´ıho telefonu s Androidem. Zeny a muˇzi byli v pomˇeru 2 : 3, ve vˇekov´ ych kategori´ıch 10 - 20 a 20 - 30 v pomˇeru 1 : 4. Jednou z hlavn´ıch podm´ınek pro splnˇen´ı m´ ych poˇzadavk˚ u pro testov´an´ı byla i ot´azka t´ ykaj´ıc´ı se znalosti pojmu geocaching, kterou splˇ nuj´ı vˇsichni vybran´ı participanti. Vyplnˇen´e odpovˇedi vˇsech z´ajemc˚ u o testov´ an´ı jsou zaznamen´any do tabulky (tabulka 5.5). 5.2.1.1
Data z´ıskan´ a ze screener dotazn´ıku
Poˇ rad´ı 1 2 3 4 5
Pohlav´ı ˇ Zena Muˇz Muˇz ˇ Zena Muˇz
Vˇ ek 20 20 20 10 20
-
Pr´ ace s Androidem?
30 30 30 20 30
Ano Ano Ano Ano Ano
M´ ate GPS zaˇ r´ızen´ı? Jak´ e? Ano Ano Ano Ano Ano
(v (v (v (v (v
mobilu) mobilu) mobilu, Garmin) mobilu) mobilu, v autˇe)
Tabulka 5.5: V´ ysledky screener dotazn´ıku - participanti, kteˇr´ı byli vybr´ani pro testov´an´ı
5.2.2
Dotazn´ık pˇ red testov´ an´ım
Pˇred t´ım, neˇz kaˇzd´ y participant mohl pˇrej´ıt k testov´an´ı aplikace, musel vyplnit dotazn´ık urˇcen´ y pˇred testem, tzv. pre-test (pˇr´ıloha pre-test je um´ıstˇena na CD). Tento dotazn´ık byl opˇet vytvoˇren pomoc´ı sluˇzby Google Docs. Z´ıskan´e informace jsem zanesla do tabulky (tabulka 5.6). V tomto dotazn´ıku jsem zjiˇst’ovala hlavnˇe to, zda m´a participant zkuˇsenosti s Androidem a zda vlastn´ı nˇejak´e GPS zaˇr´ızen´ı. V posledn´ım bodˇe mne pak zaj´ımalo, zda pouˇz´ıvaj´ı nˇejak´ y scanner QR k´ od˚ u a pˇr´ıpadnˇe jak´ y.
1 2 3 4 5
Tˇeˇs´ım se. Ted’ uˇz dobˇre. Je mi skvˇele. Velmi dobˇre. Jsem napnut´ y.
M´ ate ˇ cteˇ cku QR k´ od˚ u? Jakou?
Geocaching provozujete:
Jak se nyn´ı c´ıt´ıte?
Participant
Data z´ıskan´ a z dotazn´ıku pˇ red testov´ an´ım
Aktivnˇe Pasivnˇe Aktivnˇe Aktivnˇe Aktivnˇe
QR Droid Barcode Scanner Barcode Scanner Seznam.cz QR ˇcteˇcka Barcode Scanner
Cache √ √ √ √ √
Jak´ e zn´ ate pojmy: QR k´ od M´edium Segment √ √ √ √ √ √ √ √ √ √ √ × √ √ √
´ ´I APLIKACE ANDROID 5.2. TESTOVAN
5.2.2.1
Tabulka 5.6: Data z´ıskan´a z pre-testu
49
´ ´I POUZITELNOSTI ˇ KAPITOLA 5. TESTOVAN
50
5.2.3
Pr˚ ubˇ eh testov´ an´ı
K testov´an´ı aplikace byl pouˇzit mobiln´ı telefon HTC Desire S s verz´ı syst´emu Android 2.3.5 a s nainstalovanou aplikac´ı QGame. Jedin´e co bylo potˇreba participantovi dopˇredu zaˇr´ıdit, bylo vytvoˇrit hru pomoc´ı webov´eho port´alu qgame.wz.cz a vytvoˇren´e k´ ody um´ıstit na vybran´a m´ısta. Prvn´ı segment pak jeˇstˇe vytisknout, aby mohl uˇzivatel nal´ezt zbyl´e dalˇs´ı. Kaˇzd´ y participant dostal pˇred samotn´ ym testov´an´ım k vyplnˇen´ı pre-test dotazn´ık. Pot´e co dotazn´ık vyplnil, dostal k dispozici v´ yˇse zm´ınˇen´ y mobiln´ı telefon HTC Desire S. Pot´e co moder´ator participanta informoval o pr˚ ubˇehu testu a poprosil kaˇzd´eho o ˇr´adn´e komentov´an´ı veˇsker´ ych sv´ ych krok˚ u a myˇslenek, mohli pˇrej´ıt k samotn´emu testov´an´ı. Sc´en´aˇr zde byl naprosto jasn´ y a jednoduch´ y. Zahr´at si hru, kter´a byla k tomuto u ´ˇcelu vytvoˇrena, a z´ıskat tak tajemstv´ı“ uloˇzen´e v k´odu. ”
5.2.4
Souhrn poznatk˚ u z testov´ an´ı s jednotliv´ ymi u ´ˇ castn´ıky testov´ an´ı
Testu se z´ uˇcastnilo celkem 5 uˇzivatel˚ u, kteˇr´ı byli vybr´ani na z´akladˇe screener dotazn´ıku. V´ ysledky test˚ u jednotliv´ ych participant˚ u se ve vˇsech bodech shoduj´ı. Jedin´e v ˇcem se uˇzivatel´e liˇsili, bylo zobrazov´ an´ı obsahu. Nˇekteˇr´ı se chtˇeli nechat pˇrekvapit aˇz na konci, jin´ı hned po nasn´ım´an´ı k´odu. Uvedu zde proto pouze pr˚ ubˇeh jednoho testu. • Participant ˇc. 3 Participant mˇel za u ´kol zahr´ at si hru vytvoˇrenou pro toto testov´an´ı. Dostal tedy k dispozici prvn´ı segment QR k´ odu. Otevˇrel si tedy aplikaci QGame a k´od bez jedin´eho probl´emu nasn´ımal. GPS souˇradnice vloˇzil do GPS pomoc´ı tlaˇc´ıtka a nechal se navigovat k dalˇs´ımu segmentu. Takto pokraˇcoval aˇz k posledn´ımu segmentu. Nyn´ı si nechal zobrazit obsah QR k´od˚ u. V pr˚ ubˇehu testu nenastal ˇz´adn´ y probl´em.
5.2.5
Dotazn´ık po testov´ an´ı
Dotazn´ık po testov´ an´ı, tzv. post-test participanti vyplˇ novali po skonˇcen´ı testov´an´ı, a to v pap´ırov´e formˇe. K vytvoˇren´ı tohoto formul´aˇre byla vˇsak rovnˇeˇz pouˇzita sluˇzba Google Docs (post-test je k dispozici na CD), odkud byly n´aslednˇe vytiˇstˇeny. V tabulce 5.7 jsou pak uvedeny odpovˇedi jednotliv´ ych u ´ˇcastn´ık˚ u testu.
Participant
´ ´I APLIKACE ANDROID 5.2. TESTOVAN
Jak jste se c´ıtil/a bˇehem testov´ an´ı?
1
Kr´ asn´ a proch´ azka.
2
4
Dobˇre. Je mi skvˇele. ˇ ’astn´ St a, ˇze jsem to zvl´ adla.
5
Pˇr´ıjemnˇe.
3
51
Jak byste zhodnotil/a strukturu aplikace?
Co V´am na aplikaci chybˇelo?
Jednoduch´a. Pˇrehledn´a. Jasn´ a, jednoduch´a, pˇrehledn´a. Jednoduch´a a srozumiteln´a.
Dˇelit i obr´azky a hudbu. Vlastn´ı kompas nebo GPS. Celkov´ y poˇcet segment˚ u.
Jasn´ a, pˇrehledn´a.
Nev´ım.
ˇ adn´ Z´ y probl´em.
Ted’ mˇe nic nenapad´a.
Jak byste zhodnotil/a celkovou myˇslenku projektu? Jsem mile pˇrekvapena. Super n´apad. Je to urˇcitˇe zaj´ımav´ y n´apad. Je to cool. Myˇslenka se mi moc l´ıb´ı. R´ad si znovu zahraji, pokud to bude nˇekdy moˇzn´e.
Tabulka 5.7: Data z dotazn´ıku po testov´an´ı
5.2.6
Z´ avˇ ery z testov´ an´ı
C´ılem testov´ an´ı bylo zjistit, zda m´a webov´ y port´al i aplikace uˇzivatelsk´e rozhran´ı srozumiteln´e budouc´ım hr´ aˇc˚ um. Testovali se jak muˇzi tak ˇzeny v r˚ uzn´ ych vˇekov´ ych kategori´ıch. Testov´ an´ı webov´e aplikace uk´ azalo, ˇze je jeˇstˇe potˇreba nˇekter´e ˇc´asti vylepˇsit. Aplikace je uˇz nyn´ı plnˇe funkˇcn´ı a drobn´e u ´pravy aplikaci razantnˇe nezmˇen´ı. Mysl´ım, ˇze dle v´ ysledk˚ u ’ testov´an´ı jsou obˇe ˇc´ asti jiˇz ted plnˇe pouˇziteln´e.
52
´ ´I POUZITELNOSTI ˇ KAPITOLA 5. TESTOVAN
Kapitola 6
Z´ avˇ er C´ılem m´e bakal´ aˇrsk´e pr´ ace bylo navrhnout a zrealizovat variantu hry typu geocaching s vyuˇzit´ım QR k´ od˚ u, kter´ a by mˇela pracovat jako distribuˇcn´ı kan´al multimedi´aln´ıho obsahu, kde hr´ aˇci maj´ı za u ´kol nach´ azet v re´aln´em svˇetˇe samolepky s QR k´ody, kter´e reprezentuj´ı fragmenty multimedi´ aln´ıho obsahu. Tuto hru pak zrealizovat jako kombinaci aplikace na mobiln´ım telefonu a webov´eho port´alu. Na konci se pak v´ ysledn´a aplikace spolu s webov´ ym port´alem otestovala. Pˇri testov´ an´ı bylo pouˇzito celkem 10 osob, z toho 5 na webov´ y port´ al a 5 na aplikaci Android. Testov´ an´ı prok´azalo nˇekolik chyb ˇci nedostatk˚ u, kter´e jsem se snaˇzila maxim´ alnˇe odstranit. Vˇsechny hlavn´ı c´ıle se podaˇrilo splnit a aplikace byla podle zad´ an´ı otestov´ ana. Mezi nejvˇetˇs´ı probl´emy bych zaˇradila syst´em generov´an´ı QR k´od˚ u obsahuj´ıc´ıch GPS souˇradnice a URL, jak tyto informace v k´odu pˇren´est. K tomu poslouˇzily ˇretˇezce speci´aln´ıch znak˚ u pro oddˇelen´ı jednotliv´ ych ˇc´ast´ı. Jedn´ım z poˇzadavk˚ u bylo rozdˇelen´ı formul´aˇr˚ u pˇri tvorbˇe hry vzhledem k typu m´edia. Pro MP3 a obr´azky je to shodn´e, m´edium se uploaduje aˇz v posledn´ım kroku spolu s GPS souˇradnicemi, protoˇze co QR k´od, to jedna MP3 nebo obr´azek. Pro text je to vˇsak rozd´ıln´e, zdroj se uploaduje jiˇz ve druh´em kroku, textov´ y soubor je pak rozdˇelen do nˇekolika ˇc´ ast´ı. Posledn´ı starost´ı bylo zvl´adnout Android bez pˇredchoz´ıch znalost´ı, pouze se znalostmi Javy. Ve v´ ysledku to ale nebylo aˇz tak zl´e, jak se na prvn´ı pohled zd´alo. Zaˇc´ atky byly tˇeˇzk´e, ale vynikaj´ıc´ıch materi´al˚ u plno. S webov´ ym port´alem lze volnˇe pracovat i v budoucnu. Jako rozˇs´ıˇren´ım webov´eho port´alu mohou b´ yt moˇzn´a vylepˇsen´ı, a to napˇr´ıklad vyhled´ av´ an´ı pˇr´ıspˇevk˚ u v knize n´ avˇstˇev dle filtr˚ u, vyhled´av´an´ı her dle filtr˚ u, pˇri ztr´atˇe hesla generov´ an´ı nov´eho hesla a zasl´ an´ı na emailov´ yu ´ˇcet uˇzivatele. D´ale pak zmˇena u ´daj˚ u o uˇzivateli, kter´e uvedl pˇri registraci a pr´ ace s form´atem pdf. Pro uˇzivatele by tak´e bylo velice zaj´ımav´e vidˇet pr˚ ubˇeh her, kter´e sami vytvoˇrili. Jako pˇr´ıklad moˇzn´ ych rozˇs´ıˇren´ı aplikace lze zaˇradit pouˇzit´ı map pˇri pr´aci s GPS, stahov´ an´ı m´edi´ı na pozad´ı. D´ ale pak vlastn´ı navigace GPS ve formˇe kompasu. A v neposledn´ı ˇradˇe vlastn´ı ˇcteˇcka QR k´ od˚ u. S aplikac´ı jde volnˇe pracovat i v budoucnu.
53
54
´ ER ˇ KAPITOLA 6. ZAV
Literatura ˇ A ´ R, ˇ Petr. QR k´ [1]KRCM ody: kilobajty v mal´em obr´azku. Root.cz [online]. 2010, 1. bˇrezen [cit. 2012-05-24]. Dostupn´e z: http://www.root.cz/clanky/qr-kody-kilobajty-v-malemobrazku/ [2]CHEN, Brandon. QR Code : . : learn - innovate - share [online]. 2008, 12. 5. [cit. 201205-24]. Dostupn´e z: http://blog.brandonc.me/search?q=qr+code [3]KOLAJA, Jiˇr´ı. UIS : drˇz´ıme krok s dobou...drˇzte krok s n´ ami [online]. 2011 [cit. 2012-0525]. Dostupn´e z: ://www.uis.cz/ (Tabulka byla poˇr´ızena 1. 3. 2011 pˇred reviz´ı str´anek) [4]QR-Code Generator. KAYWA: QR-CODE [online]. 2010 [cit. 2012-05-25]. Dostupn´e z: http://qrcode.kaywa.com/ [5]QR Code Generator: from the ZXing Project. Zxing: Multi-format 1D/2D barcode image processing library with clients for Android, Java [online]. 2010 [cit. 2012-05-25]. Dostupn´e z: http://zxing.appspot.com/generator/ [6]GOQR.ME. GOQR.ME [online]. 2010 [cit. 2012-05-25]. Dostupn´e z: http://goqr.me/ [7]AppBrain: Najdˇete ty nejlepˇs´ı Android aplikace [online]. 2010 [cit. 2012-05-25]. Dostupn´e z: http://cs.appbrain.com/ [8]The KAYWA READER. KAYWA: READER [online]. 2010 [cit. 2012-05-25]. Dostupn´e z: http://reader.kaywa.com/ [9]LEIMER, Ladislav. Kuriozita: Jihokorejci nakupuj´ı na stˇen´ach pomoc´ı QR k´odu. Blesk.cz [online]. 2011 [cit. 2012-05-25]. ISSN 1213-8991. Dostupn´e z: http://www.blesk.cz/ clanek/digital-mobily/157578/kuriozita-jihokorejci-nakupuji-na-stenach-pomoci-qrkodu.html [10]BURZA, Marek. Video: QR k´od si m˚ uˇzete sami vyrobit, tipy na dom´ac´ı vyuˇzit´ı tu jsou. Hobby.cz [online]. 2010, 22. ˇr´ıjen [cit. 2012-05-25]. Dostupn´e z: http://hobby.idnes. cz/video-qr-kod-si-muzete-sami-vyrobit-tipy-na-domaci-vyuziti-tu-jsou-10z-/hobbydomov.aspx?c=A1010201 80711h obby − domovb ma [11]Qr-codes.cz: Vˇse o QR k´ odech. Qr-codes.cz [online]. 2007, 17. bˇrezen [cit. 2012-05-25]. Dostupn´e z: http://www.qr-codes.cz/?cat=4
55
56
´ ER ˇ KAPITOLA 6. ZAV
[12]Co je Android. AndroidForum.cz : Otevˇren´ a komunita pro otevˇrenou platformu [online]. 2008, 23. z´ aˇr´ı [cit. 2012-05-25]. Dostupn´e z: http://androidforum.cz/co-je-androidt6.html [13]#QRGAME : Outdoorov´ a hra vyuˇz´ıvaj´ıc´ı QR k´ ody [online]. 2012, 21. duben [cit. 201205-25]. Dostupn´e z: http://qrgame.cz/ ´ [14]TREJBAL, Tom´ aˇs. District 9 qr code game: QR-KODY.cz — qr k´od (qr code) — mo´ biln´ı internet. QR - kody: QR-KODY.cz — qr k´ od (qr code) — mobiln´ı internet [online]. 2009, 29. listopad [cit. 2012-05-24]. Dostupn´e z: http://www.qr-kody.cz/qr/district-9qr-code-game-video-hra-s-filmem-district-9.html ´ [15]QR Code game. VONASEK, Luboˇs a Viktor SCHUMANN. Institut interm´edi´ı [online]. 2011, 18. kvˇeten [cit. 2012-05-25]. Dostupn´e z: http://www2.iim.cz/wiki/index.php/ QRC odeg ame [16]Google’s QR Code Game. BeQRious: We follow the trends [online]. 2009 [cit. 2012-0525]. Dostupn´e z: http://beqrious.com/google-s-qr-code-game/ [17]QR Code Scavenger Hunt Games. QR Wild [online]. 2012 [cit. 2012-05-25]. Dostupn´e z: http://qrwild.com/ [18]QR Code Game. All about Mobile Life: and more... (the Notebook) [online]. 2008, 23. leden [cit. 2012-05-25]. Dostupn´e z: http://mobile.kaywa.com/p890.html [19]Riddle Game with QR Codes. SpottyBanana [online]. 2011, 11. bˇrezen [cit. 2012-05-25]. Dostupn´e z: http://spottybanana.net/2011/03/11/riddle-game-with-qr-codes/ [20]GUTMANS, Andi, Stig Sæther BAKKEN a Derick RETHANS. Mistrovstv´ı v PHP 5. Vyd. 1. Pˇreklad Bogdan Kiszka. Brno: CP Books, 2005, 655 s. ISBN 80-251-0799-X. [21]Easy Intro to ASP.NET. Bean software [online]. 2002 [cit. 2012-05-25]. Dostupn´e z: http://www.beansoftware.com/ASP.NET-Tutorials/Intro-ASP.NET-MVC.aspx [22]PHP : Hypertext Preprocessor [online]. 2001 [cit. 2012-05-25]. Dostupn´e z: http://php.net/ ˇ e Budˇejovice: Kopp, 2007, [23]HEROUT, Pavel. Uˇcebnice jazyka Java. 3., rozˇs. vyd. Cesk´ 381 s. ISBN 978-80-7232-323-4.
Pˇ r´ıloha A
Seznam zkratek 2D Two-Dimensional 3D Three-Dimensional AAC Advanced Audio Coding AMR Anisotropic MagnetoResistive API Application Programming Interface APP Application AWT Abstract Windows Toolkit BMP BitMaP BSD Berkeley Software Distribution CITO Cache in trash out event CSS Cascading Style Sheets EDGE Enhanced Data Rates for GSM Evolution GIF Graphic Interchange Format GPS Global Positioning System HTML HyperText Markup Language HTTP Hypertext Transfer JPEG/JPG Joint Photographic Experts Group JS JavaScript MP3 Motion Picture experts group - layer 3 (MPeg layer 3) MPEG-4 Moving Picture Experts Group 4 MVC Model-View-Controller MySQL My Structured Query Language PDF Package Definition File PHP p˚ uvodnˇe Personal Home Page, nyn´ı Hypertext Preprocessor PNG Portable Network Graphic OHA Open Handset Alliance QR Quick Response
57
58
SGL Scalable Graphics Library SHA Secure Hashing Algorithm SDK Software Development Kit SMS Short Message Service SQL Structured Query Language TXT Plain Text UCS Universal Component System UML Unified Modeling Language URL Uniform Resource Locator UTF UCS Transformation Format W3C World Wide Web Consortium WGS84 World Geodetic System 1984 WiFi Wireless Fidelity XHTML eXtensible HyperText Markup Language XML Extensible Markup Language
ˇ ´ILOHA A. SEZNAM ZKRATEK PR
Pˇ r´ıloha B
UML diagramy
Obr´ azek B.1: Class diagram webov´e aplikace
59
60
ˇ ´ILOHA B. UML DIAGRAMY PR
Obr´ azek B.2: Class diagram aplikace Android
Pˇ r´ıloha C
Instalaˇ cn´ı a uˇ zivatelsk´ a pˇ r´ıruˇ cka C.1 C.1.1 C.1.1.1
Instalaˇ cn´ı pˇ r´ıruˇ cka Instalaˇ cn´ı pˇ r´ıruˇ cka pro webov´ y port´ al Vlastnosti serveru
• Server pouˇ zit´ y pˇ ri v´ yvoji Aplikace byla vyv´ıjena na serveru um´ıstˇen´em na localhostu, ke spr´avˇe serveru byl pouˇzit program WampServer verze 2.2. Jako server byl pouˇzit Apache ve verzi 2.2.21, na PHP ve verzi 5.3.10 a MySQL ve verzi 5.5.20. • Server pouˇ ziteln´ y pro distribuci K prezentov´ an´ı webov´e aplikace by mˇelo bez probl´em˚ u postaˇcit PHP od verze 4.3.4 a MySQL od verze 3.23.52. Tyto verze m´am otestovan´e d´ıky free hostingu webzdarma.cz, pro funkˇcnost ale pˇredpokl´ ad´am, ˇze by mˇely postaˇcit i verze niˇzˇs´ı.
C.1.1.2
´ Uprava datab´ aze
Webov´ a aplikace vyuˇz´ıv´ a k´ odov´ an´ı Unicode, konkr´etnˇe UTF-8. Je tedy vhodn´e pouˇz´ıt toto k´odov´an´ı i v datab´ azi. • Nov´ a datab´ aze Ide´ aln´ım stavem je vytvoˇrit pro webov´ y port´al novou datab´azi ˇci jiˇz pouˇz´ıvanou datab´ azi vyˇcistit od vˇsech tabulek. Tuto datab´azi m˚ uˇzeme libovolnˇe pojmenovat. • Pouˇ z´ıvan´ a datab´ aze Pokud je k dispozici pouze jedna datab´aze, a to jeˇstˇe takov´a, kterou nem˚ uˇzeme promazat, je potˇreba se ujistit, ˇze neobsahuje tabulky nazvan´e: ’user’,’item’,’game’,’book’. Tyto tabulky vyuˇz´ıv´ a tento webov´ y port´al a tak by v takov´em pˇr´ıpadˇe doˇslo ke kolizi.
61
ˇ ´ILOHA C. INSTALACN ˇ ´I A UZIVATELSK ˇ ´ PR ˇ ´IRUCKA ˇ PR A
62
C.1.1.3
Instalace bal´ıku aplikace
• Kop´ırov´ an´ı soubor˚ u Zdrojov´e k´ ody jsou k nalezen´ı v souboru.zip, jehoˇz obsah pˇrekop´ırujeme do zvolen´e lokace (nejˇcastˇeji do www sloˇzky na naˇsem serveru). • Nastaven´ı datab´ aze V root sloˇzce webov´eho port´ alu otevˇreme soubor dbconfig.php, kter´ y obsahuje informace k datab´azi. Tento soubor je nutn´e upravit dle t´eto struktury: " user " = > " username do ´ a databze "
1 2
" password " = > " heslo do databaze "
3 4
" host " = > " adresa mysql "
5 6
" database " = >
7
" nazev databaze "
8
" coding " = > " kodovani databaze "
9
Zdrojov´ y k´ od C.1: Struktura souboru dbconfig.php
Hodnotou u coding bude nejˇcastˇeji UTF-8. • Vytvoˇ ren´ı tabulek v datab´ azi Tabulky v datab´ azi vytvoˇr´ıme spuˇstˇen´ım skriptu init.php v rootov´e sloˇzce webov´eho port´alu. Pokud jsme datab´ azi nastavili spr´avnˇe, mˇel by se na obrazovce objevit v´ ypis proveden´ ych dotaz˚ u. Ide´alnˇe jeˇstˇe pˇres rozhran´ı phpMyAdmin ˇci pˇres SQL konzoli pˇr´ıkazem show tables; zkontrolujeme, zda se tabulky vytvoˇrily. Pokud vˇse probˇehlo spr´avnˇe, mˇely by v datab´azi b´ yt tabulky: ’user’,’game’,’item’ a ’book’. V pˇr´ıpadˇe, ˇze se tabulky nevytvoˇrily, zkontrolujeme obsah souboru dbconfig.php, zda jsou vˇsechny u ´daje vyplnˇeny korektnˇe. • Smaz´ an´ı init.php Pokud se v datab´ azi vˇsechny tabulky spr´avnˇe vytvoˇrily, m˚ uˇzeme v z´ajmu bezpeˇcnosti smazat soubor init.php z root sloˇzky. • Zdrojov´ y k´ od dotaz˚ u Zdrojov´e k´ ody k vytvoˇren´ı tabulek obsahuje tˇr´ıda Init. Tato tˇr´ıda je definov´ana v souboru init.php ve sloˇzce classes.
C.1.1.4
Spuˇ stˇ en´ı webu
V prohl´ıˇzeˇci zad´ ame URL smˇeˇruj´ıc´ı do root sloˇzky webov´eho port´alu, pot´e by se mˇela zobrazit u ´vodn´ı obrazovka. Syst´em je nyn´ı pˇripraven k pouˇz´ıv´an´ı.
ˇ ´ PR ˇ ´IRUCKA ˇ C.2. UZIVATELSK A
C.1.2 C.1.2.1
63
Instalaˇ cn´ı pˇ r´ıruˇ cka pro aplikaci operaˇ cn´ıho syst´ emu Android Staˇ zen´ı aplikace
ˇ ´ Na str´ ank´ ach webov´eho port´ alu pod z´aloˇzkou KE STAZEN I je um´ıstˇen odkaz, kter´ y umoˇzn´ı st´ ahnout instalaˇcn´ı soubor qgame.apk, do mobiln´ıho pˇr´ıstroje. Dalˇs´ım moˇzn´ ym krokem ke staˇzen´ı t´eto aplikace by mˇel v bl´ızk´e dobˇe slouˇzit i Android Market. C.1.2.2
Instalace aplikace
• Povolen´ı instalace z nezn´ am´ ych zdroj˚ u K instalaci aplikace je tˇreba m´ıt povolenou instalaci aplikac´ı z jin´ ych zdroj˚ u na telefonu s Androidem (Nastaven´ı → Aplikace → Nezn´ am´e zdroje). • Samotn´ a instalace Instalace zaˇcne otevˇren´ım souboru qgame.apk ve Vaˇsem pˇr´ıstroji. • Probl´ emy Bˇehem instalace m˚ uˇze doj´ıt k probl´emu s jiˇz nainstalovanou duplicitn´ı aplikac´ı, v takov´em pˇr´ıpadˇe je vhodn´e starˇs´ı aplikaci nejprve odinstalovat a pot´e se vr´atit k instalaci aplikace nov´e. C.1.2.3
Instalace podp˚ urn´ e aplikace
• Barcode Scanner Aplikace QGame vyuˇz´ıv´ a pro ˇcten´ı QR k´od˚ u extern´ı aplikaci Barcode Scanner, kterou je nutno tak´e nainstalovat na pˇr´ıstroj, kter´ y m´a s aplikac´ı QGame pracovat. Pokud tak neuˇcin´ıte pˇred prvn´ım spuˇstˇen´ım a pokus´ıte se spustit scanner, aplikace V´as sama vyzve ke staˇzen´ı a nainstalov´an´ı Barcode Scanneru. Tuto aplikaci lze st´ahnout zdarma na Android Marketu v mobiln´ım pˇr´ıstroji ˇci z nˇekter´e webov´e str´anky. C.1.2.4
Spuˇ stˇ en´ı aplikace
Po u ´spˇeˇsn´e instalaci je jiˇz moˇzn´e spustit aplikaci QGame ze seznamu aplikac´ı.
C.2 C.2.1
Uˇ zivatelsk´ a pˇ r´ıruˇ cka Webov´ y port´ al
Webov´ y port´ al slouˇz´ı k vytv´ aˇren´ı a sd´ılen´ı her, k ˇc´asteˇcn´e komunikaci mezi hr´aˇci a k distribuci aplikace urˇcen´e pro operaˇcn´ı syst´em Android. Tento manu´al by mˇel slouˇzit jako n´ avod pro zaˇc´ atek i uˇzivatel˚ um, kteˇr´ı nemaj´ı pˇr´ıliˇsn´ y pˇrehled v oboru pr´ace s QR k´ody ˇci s jejich vytv´ aˇren´ım. Stejnˇe tak pokud nemaj´ı ˇz´adn´e znalosti hry geocaching , kterou je hra inspirov´ ana, Kaˇzd´ y z n´ asleduj´ıc´ıch krok˚ u, pokud nen´ı uvedeno jinak, vych´az´ı ze stavu, kdy je n´avˇstˇevn´ık str´anek na u ´vodn´ı str´ ance webov´eho port´alu hry QGame (http://qgame.wz.cz).
ˇ ´ILOHA C. INSTALACN ˇ ´I A UZIVATELSK ˇ ´ PR ˇ ´IRUCKA ˇ PR A
64
1. Zobrazen´ı informac´ı o hˇre QGame ˇ • Informace o t´eto hˇre mohou b´ yt zobrazeny otevˇren´ım odkazu O HRE, kter´ y je um´ıstˇen mezi poloˇzkami menu. 2. Zobrazen´ı seznamu vytvoˇren´ ych her ˇ ´ • Seznam vˇsech vytvoˇren´ ych her m˚ uˇze b´ yt nalezen pod poloˇzkou menu VYTVOREN E HRY. • Pr´avˇe d´ıky t´eto str´ ance m˚ uˇze i neregistrovan´ y hr´aˇc zaˇc´ıt s hran´ım QGame. Zde se totiˇz nach´ azej´ı prvn´ı segmenty z kaˇzd´e hry, kter´e obsahuj´ı GPS souˇradnice na n´asleduj´ıc´ı ˇc´ ast QR k´ odu obsahuj´ıc´ı URL adresu m´edia uloˇzen´eho na serveru. 3. Zobrazen´ı knihy n´ avˇstˇev • Nepˇrihl´ aˇsen´ y uˇzivatel m´ a pr´ avo pouze ˇc´ıst veˇsker´e pˇr´ıspˇevky vloˇzen´e do knihy n´avˇstˇev od registrovan´ ych uˇzivatel˚ u. Kniha n´avˇstˇev je k nalezen´ı pod poloˇzkou v ´ ˇ ˇ menu s n´ azvem KNIHA NAVSTEV. 4. Staˇzen´ı aplikace pro android ˇ ´ • Aplikace, kter´ a umoˇzn´ı hr´ at hru QGame, se ukr´ yv´a pod poloˇzkou KE STAZEN I. 5. Registrace • Neregistrovan´ y uˇzivatel nem˚ uˇze pˇrisp´ıvat do knihy n´avˇstˇev ani vytv´aˇret nov´e hry, coˇz ˇcasem m˚ uˇze b´ yt ponˇekud omezuj´ıc´ı. Proto je moˇznost vyuˇz´ıt registrace, po kter´e bude moci pˇrihl´aˇsen´ y uˇzivatel vytv´aˇret nov´e hry ˇci komunikovat s ostatn´ımi hr´ aˇci pomoc´ı knihy n´avˇstˇev. Registrace je pˇr´ıstupn´a pod poloˇzkou REGISTRACE v menu ˇci odkazem um´ıstˇen´ ym pod pˇrihlaˇsovac´ım formul´aˇrem. • V registraˇcn´ım formul´ aˇri je nutn´e vyplnit vˇsechna povinn´a pole, pˇreˇc´ıst a potvrdit souhlas se smluvn´ımi podm´ınkami a potvrdit registraci odesl´an´ım formul´aˇre. Pokud je vˇse vyplnˇeno spr´ avnˇe, registrace probˇehne a bude zobrazena u ´vodn´ı str´anka se zpr´ avou o u ´spˇeˇsn´e registraci a v´ yzvˇe k pˇrihl´aˇsen´ı. Pokud registrace neprobˇehne, uˇzivatel bude informov´ an o d˚ uvodu a bude zobrazena str´anka s pˇrihlaˇsovac´ım formul´ aˇrem. 6. Pˇrihl´aˇsen´ı • K pˇrihl´ aˇsen´ı m˚ uˇze b´ yt pouˇzit pˇrihlaˇsovac´ı formul´aˇr v prav´em horn´ım rohu. Pokud se uˇzivatel pˇrihl´ as´ı, m´ısto formul´aˇre se zobraz´ı informace o uˇzivateli, kter´ y je pr´avˇe pˇrihl´ aˇsen a tlaˇc´ıtko, kter´e uˇzivateli umoˇzn´ı se opˇet odhl´asit. 7. Pˇrid´an´ı pˇr´ıspˇevku do knihy n´ avˇstˇev • Pro pˇrihl´ aˇsen´eho uˇzivatele se po zobrazen´ı knihy n´avˇstˇev zobraz´ı jeˇstˇe moˇznost pˇrid´ avat pˇr´ıspˇevky. K tomu slouˇz´ı jednoduch´ y formul´aˇr, do jehoˇz jedin´eho pole se m˚ uˇze vloˇzit text, kter´ y m´ a b´ yt vloˇzen jako dalˇs´ı z´aznam v knize n´avˇstˇev.
ˇ ´ PR ˇ ´IRUCKA ˇ C.2. UZIVATELSK A
65
8. Smaz´ an´ı vlastn´ıho pˇr´ıspˇevk˚ u z knihy n´avˇstˇev • Kaˇzd´ y uˇzivatel m˚ uˇze mazat vlastn´ı pˇr´ıspˇevky v knize n´avˇstˇev. To je mu umoˇznˇeno tlaˇc´ıtkem v prav´e ˇc´ asti kaˇzd´eho jeho pˇr´ıspˇevku. (Moder´ator m˚ uˇze mazat pˇr´ıspˇevky vˇsech uˇzivatel˚ u nez´ avisle na hodnosti, tzn. i dalˇs´ım moder´ator˚ um) 9. Vytvoˇren´ı hry • Pˇrihl´ aˇsen´emu uˇzivateli se v menu zobraz´ı moˇznost TVORBA HRY. Tuto str´ anku je vhodn´e pouˇz´ıt aˇz jako zkuˇsenˇejˇs´ı uˇzivatel, nebot’ vyˇzaduje trochu vˇetˇs´ı znalosti principu hry. Znamen´ a to tedy, ˇze by si mˇel hr´aˇc pˇred tvorbou prvn´ı hry proˇc´ıst ˇ z´ aloˇzku O HRE. • Tvorba hry se skl´ ad´ a z nˇekolika ˇc´ast´ı: – Vyplnˇen´ı informac´ı o hˇre ∗ N´ azev hry - n´azev hry, kter´ y bude hˇre pˇriˇrazen a pod kter´ ym se bude zobrazovat. ∗ Typ m´edia - typ nahr´avan´eho souboru (Hudba, Obr´azek, E-book), u kaˇzd´eho typu je zobrazen soupis koncovek. ∗ Popis hry - podrobnosti o hˇre, text, kter´ y nast´ın´ı o ˇcem konkr´etn´ı hra je apod. – Informace o nahr´ avan´em multim´ediu ∗ N´ azev m´edia - n´azev nahr´avan´eho m´edia, ˇci souhrnn´ y n´azev nahr´avan´ ych m´edi´ı (u hudby ˇci obr´azk˚ u). ∗ Autor m´edia - jm´eno autora ˇci autor˚ u nahr´avan´eho m´edia. ∗ M´edium - nahr´avan´e m´edium (t´ yk´a se pouze e-book ). ∗ Poˇcet segment˚ u - poˇcet segment˚ u, na kter´e m´a b´ yt nahr´avan´e m´edium rozdˇeleno, popˇr´ıpadˇe poˇcet nahr´avan´ ych m´edi´ı (hudba a obr´azky). – GPS Souˇradnice ˇc´ast´ı ∗ Zde je implementov´ana javascriptov´a mapa z port´alu http://mapy.cz, kter´ a umoˇzn ˇuje snadn´e vkl´ad´an´ı GPS souˇradnic pˇr´ımo do formul´aˇre. Pˇri nahr´ av´ an´ı m´edia typu e-book zde budou pˇr´ıstupn´e n´ahledy tohoto souboru, respektive zobrazen´ı rozdˇelen´ı souboru. Pokud bude m´edium jin´eho typu, zobraz´ı se u kaˇzd´e poloˇzky pole s moˇznost´ı nahr´at soubor. ∗ URL - n´ ahled ˇc´asti e-book souboru ˇci pole pro nahr´an´ı souboru (obr´ azek a hudba) ∗ GPS - GPS souˇradnice na navazuj´ıc´ı (n´asleduj´ıc´ı) QR k´od – N´ ahled vytvoˇren´e hry ∗ Zde je pˇrehled vˇsech vytvoˇren´ ych ˇc´ast´ı hry, tato str´anka je urˇcen´a k tisku, rozstˇr´ıh´ an´ı a um´ıstˇen´ı v ter´enu.
C.2.2
Aplikace pro operaˇ cn´ı syst´ em Android
Tato aplikace slouˇz´ı k naˇc´ıt´ an´ı QR k´odu ˇc´ast´ı her. Kaˇzd´ y z n´asleduj´ıc´ıch krok˚ u, pokud nen´ı uvedeno jinak, vych´ az´ı z u ´vodn´ı str´anky.
66
ˇ ´ILOHA C. INSTALACN ˇ ´I A UZIVATELSK ˇ ´ PR ˇ ´IRUCKA ˇ PR A
1. Naˇcten´ı ˇc´ asti hry z QR k´ odu • Tlaˇc´ıtko Sejmout k´ od aktivuje obrazovku, kde je moˇzn´e sn´ımat QR k´ody, pot´e staˇc´ı zam´ıˇrit na QR k´ od tak, aby se k´odem vyplnil ˇctverec uvnitˇr obrazovky a chvilku vyˇckat. Po naˇcten´ı k´ odu se zobraz´ı detail ˇc´asti hry (uvedeno n´ıˇze). 2. Zobrazen´ı rozehran´e hry • Tlaˇc´ıtko Rozehran´e hry aktivuje obrazovku se seznamem vˇsech uˇzivatelem rozehran´ ych her. Po kliknut´ı na ˇra´dek vybran´e hry se zobraz´ı seznam sebran´ ych ˇc´ast´ı t´e konkr´etn´ı rozehran´e hry. 3. Navigace na GPS souˇradnice ˇc´ asti hry • V detailu ˇc´ asti hry jsou kromˇe informac´ı v podobˇe textu i dvˇe tlaˇc´ıtka. Tlaˇc´ıtko GPS m´ a za u ´kol naˇc´ıst navigaci v pˇr´ıstroji s dan´ ymi GPS souˇradnicemi. 4. Zobrazen´ı m´edia ze hry • V detailu ˇc´ asti hry jsou kromˇe informac´ı v podobˇe textu i dvˇe tlaˇc´ıtka. Tlaˇc´ıtko Obsah m´ edia m´ a za u ´kol otevˇr´ıt v prohl´ıˇzeˇci telefonu URL s konkr´etn´ı ˇc´ast´ı m´edia, kter´e je spojeno s danou ˇc´ast´ı hry. 5. Smazan´ı veˇsker´e historie rozehran´ ych her • Tuto funkci neumoˇzn ˇuje pˇr´ımo aplikace. Prov´ad´ı se smaz´an´ım, vymaz´an´ım ˇci u ´pravou souboru qgameSaves.txt, kter´ y se nal´ez´a ve sloˇzce /sdcard.
Pˇ r´ıloha D
Obsah pˇ riloˇ zen´ eho CD Pˇriloˇzen´e CD m´ a tuto strukturu: / projekt – sloˇzka s projekty Web a App app – sloˇzka se soubory aplikace Android web – sloˇzka se soubory webov´e aplikace test – sloˇzka s pˇr´ılohami z testov´ an´ı .pdf – PDF verze tohoto textu psan´ a v LATEX
67