ˇ 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
Mobiln´ı aplikace pro podporu zimn´ıch sport˚ u Ondˇrej Krejˇc´ıˇr
Vedouc´ı pr´ace: Adam Sporka Ing., Ph.D.
Studijn´ı program: Softwarov´e technologie a management, Bakal´aˇrsk´ y Obor: Web a multimedia 23. kvˇetna 2013
iv
v
Podˇ ekov´ an´ı Na tomto m´ıstˇe bych chtˇel 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ˇel 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 vypracoval 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 24. 5. 2013
.............................................................
viii
Abstract With the increasing popularity of winter resorts and snow parks and also thanks to massive using of social networks, more users have been looking for a quality record of their tricks on obstacles in the park. Due to less availability of high-quality technologies, these shots are available only in a relatively narrow circle of riders. According to this need and constraints, projects supporting records and sharing videos of needed qualities arise. The aim of this work is to create an application that could be a part of such a project. The application is designed for visitors of winter centers that are mainly dedicated for the snow park obstacles jumpers. This application monitores their movements and generates a file that contains the GPS location and information about the moment at which a specific point was passed. Having these data, the server this data is loaded on should be able to reconstruct the entire passage and later generate feedback such as videos or photos. The main contribution of this work is creating the ability to obtain data of the user’s location within the park in such a way that later they can be further processed.
Abstrakt D´ıky stoupaj´ıc´ı oblibˇe zimn´ıch stˇredisek a snowpark˚ u, a tak´e d´ıky masov´emu pouˇz´ıv´ an´ı soci´aln´ıch s´ıt´ı, m´ a st´ ale v´ıce uˇzivatel˚ u z´ajem o kvalitn´ı z´aznam proveden´ı sv´ ych trik˚ u na pˇrek´ aˇzk´ ach v parku. Vzhledem k menˇs´ı dostupnosti kvalitn´ı techniky jsou vˇsak tyto z´abˇery dostupn´e jen relativnˇe u ´zk´emu kruhu jezdc˚ u. D´ıky t´eto potˇrebˇe a omezen´ı vznikaj´ı projekty na podporu nahr´av´ an´ı a sd´ılen´ı kvalitn´ıch vide´ı. C´ılem t´eto bakal´aˇrsk´e pr´ace je vytvoˇrit aplikaci, kter´ a by mohla b´ yt souˇc´ ast´ı takov´eho projektu. Aplikace je urˇcena pro n´avˇstˇevn´ıky zimn´ıch stˇredisek,
ix
x
kteˇr´ı se vˇenuj´ı hlavnˇe skok˚ um pˇres pˇrek´ aˇzky ve snowparc´ıch. Aplikace monitoruje jejich pohyb a generuje soubor, kter´ y obsahuje jejich gps polohu a ˇcas, kdy se v konkr´etn´ım bodˇe nach´azeli. Z tˇechto u ´daj˚ u by mˇel b´ yt server, na kter´ y se tato data nahraj´ı, schopn´ y rekonstruovat cel´ y pr˚ ujezd a pozdˇeji z tˇechto dat i vygenerovat zpˇetnou vazbu v podobˇe napˇr´ıklad videa, ˇci fotografi´ı. Hlavn´ım pˇr´ınosem t´eto bakal´aˇrsk´e pr´ace je tedy moˇznost z´ısk´avat data o poloze uˇzivatele v r´ amci parku v takov´e podobˇe, aby bylo moˇzn´e je pak d´ale zpracov´avat.
Obsah ´ 1 Uvod
1
2 Pr˚ uzkum trhu 2.1 Pˇrehled obdobn´ ych aplikac´ı . . . . . . . 2.1.1 Horsk´ a sluˇzba . . . . . . . . . . . 2.1.2 Runtastic . . . . . . . . . . . . . 2.1.3 Ski info . . . . . . . . . . . . . . 2.1.4 iSki . . . . . . . . . . . . . . . . 2.1.5 Ski Trails Maps . . . . . . . . . . 2.1.6 Mobile Avalanche Safety Tool . . 2.1.7 Meteor - Snˇehov´e zpravodajstv´ı . 2.1.8 Snowhit . . . . . . . . . . . . . . 2.2 Pˇrehled obdobn´ ych instalac´ı . . . . . . . 2.2.1 The ski channel . . . . . . . . . . 2.2.2 Matchstick Productions . . . . . 2.3 Zamˇeˇren´ı tohoto projektu . . . . . . . .
. . . . . . . . . . . . .
3 3 3 4 4 5 5 6 6 7 7 7 7 8
. . . . . . . . . . . . . . . . .
11 11 11 11 12 12 12 12 12 12 12 13 13 13 13 14 14 14
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
3 Techologick´ a reˇ serˇ se 3.1 Smartphone, chytr´ y telefon . . . . . . . . . . . . . . . . 3.1.1 Chytr´ y telefon, jeho v´ yhody a nev´ yhody . . . . . 3.1.2 V´ yznam smartphon˚ u pro projekt . . . . . . . . . 3.1.3 Zastoupen´ı OS na smartphonech . . . . . . . . . 3.2 Moˇznosti v´ yvoje aplikac´ı pro smartphone . . . . . . . . 3.2.1 Monoplatformn´ı v´ yvoj . . . . . . . . . . . . . . . 3.2.2 Multiplatformn´ı v´ yvoj . . . . . . . . . . . . . . . 3.3 V praxi pouˇz´ıv´ an´e postupy a metody pro v´ yvoj aplikac´ı 3.3.1 Monoplatformn´ı v´ yvoj . . . . . . . . . . . . . . . 3.3.1.1 Pro Android . . . . . . . . . . . . . . . 3.3.1.2 Pro iPhone . . . . . . . . . . . . . . . . 3.3.2 Multiplatformn´ı v´ yvoj . . . . . . . . . . . . . . . 3.3.2.1 Marmalade . . . . . . . . . . . . . . . . 3.3.2.2 J2ObjC . . . . . . . . . . . . . . . . . . 3.3.2.3 InTheBox . . . . . . . . . . . . . . . . . 3.3.2.4 ShiVa3D . . . . . . . . . . . . . . . . . 3.3.2.5 Dragonfire SDK . . . . . . . . . . . . .
xi
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
xii
OBSAH
3.4 3.5
3.3.2.6 Unity . . . . 3.3.3 Shrnut´ı moˇznost´ı . . . Propojen´ı aplikace s webov´ ym Distribuce aplikac´ı . . . . . . 3.5.1 Google Play . . . . . . 3.5.2 App Store . . . . . . .
4 Design 4.1 Uˇzivatelsk´e rozhran´ı . . . 4.1.1 Hlavn´ı obrazovka . 4.1.2 Sledov´ an´ı . . . . . 4.1.3 Nastaven´ı baterie . 4.1.4 M´e j´ızdy . . . . . . 4.1.5 Nastaven´ı jazyk˚ u . 4.1.6 O aplikaci . . . . . 4.1.7 O autorech . . . . 4.2 Uˇzivatelsk´e interakce . . . 4.2.1 Hlavn´ı obrazovka . 4.2.2 Sledov´ an´ı zapnuto 4.2.3 Nastaven´ı baterie . 4.2.4 M´e j´ızdy . . . . . . 4.2.5 Nastaven´ı jazyk˚ u . 4.3 Grafick´e vyhodnocen´ı . . 4.3.1 Hlavn´ı u ´ˇcel . . . . 4.3.2 Google Maps . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . port´alem projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
15 15 15 16 16 16
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
17 17 17 17 18 18 18 19 19 20 20 20 21 21 21 21 21 22
. . . . . . . . . . . . . . . . . . .
23 23 23 24 24 24 25 25 25 25 26 26 26 26 27 27 27 27 27 27
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . .
5 Implementace 5.1 Pouˇzit´e technologie . . . . . . . . . . . . . . . . . 5.1.1 Jazyk JAVA . . . . . . . . . . . . . . . . . 5.1.2 Adobe Flash . . . . . . . . . . . . . . . . 5.1.3 Znaˇckovac´ı jazyk XML . . . . . . . . . . . 5.1.4 IDE Eclipse . . . . . . . . . . . . . . . . . 5.1.5 Adobe Flash Professional . . . . . . . . . 5.1.6 Google Maps Android API v2 . . . . . . . 5.1.7 GIT . . . . . . . . . . . . . . . . . . . . . 5.1.8 Business-Presentation-Integration . . . . . 5.2 Aplikace pro Android . . . . . . . . . . . . . . . 5.2.1 Poˇzadavky platformy . . . . . . . . . . . . 5.2.2 Poˇzadavky na implementaci . . . . . . . . 5.2.3 Rozdˇelen´ı vrstev aplikace . . . . . . . . . 5.2.4 Popis implementace jednotliv´ ych usecase . 5.2.4.1 Sledov´ an´ı . . . . . . . . . . . . . 5.2.4.2 Nastaven´ı baterie . . . . . . . . 5.2.4.3 M´e j´ızdy . . . . . . . . . . . . . 5.2.4.4 Nastaven´ı jazyk˚ u. . . . . . . . . 5.2.4.5 Nahr´ an´ı dat na server . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
OBSAH
5.3
xiii
5.2.5 Pˇrehled tˇr´ıd . . . . . . . . . . . . . . . . . Aplikace pro iOS . . . . . . . . . . . . . . . . . . 5.3.1 Poˇzadavky platformy . . . . . . . . . . . . 5.3.2 Poˇzadavky na implementaci . . . . . . . . 5.3.3 Popis implementace jednotliv´ ych usecase . 5.3.3.1 Sledov´ an´ı . . . . . . . . . . . . . 5.3.3.2 Nahr´ an´ı dat na server . . . . . . 5.3.4 Probl´emy pˇri v´ yvoji . . . . . . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
6 Testov´ an´ı 6.1 N´ avrh uˇzivatelsk´eho rozhran´ı a testov´an´ı bez uˇzivatel˚ u 6.1.1 Pr˚ ubˇeh n´ avrhu . . . . . . . . . . . . . . . . . . 6.1.2 Paper prototyping . . . . . . . . . . . . . . . . 6.1.3 Kognitivn´ı pr˚ uchod . . . . . . . . . . . . . . . . 6.2 Uˇzivatelsk´e testov´ an´ı . . . . . . . . . . . . . . . . . . . ´ castn´ıc´ı testu . . . . . . . . . . . . . . . . . . 6.2.1 Uˇ 6.2.2 Dotazn´ık pˇred testov´an´ım . . . . . . . . . . . . 6.2.3 Pr˚ ubˇeh testov´ an´ı . . . . . . . . . . . . . . . . . ´ 6.2.4 Ukoly participant˚ u . . . . . . . . . . . . . . . . 6.2.5 Shrnut´ı poznatk˚ u z testov´an´ı . . . . . . . . . . 6.2.6 Probl´emy a n´ avrh ˇreˇsen´ı . . . . . . . . . . . . . 6.2.7 Dotazn´ık po testov´an´ı . . . . . . . . . . . . . . 6.3 Testov´ an´ı v provozu . . . . . . . . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
. . . . . . . . . . . . .
. . . . . . . .
28 30 30 30 30 30 30 30
. . . . . . . . . . . . .
31 31 31 31 31 32 32 34 36 36 36 37 37 39
7 Z´ avˇ er
41
A Slovn´ıˇ cek pojm˚ u
47
B Seznam zkratek
49
C Instalaˇ cn´ı a uˇ zivatelsk´ a pˇ r´ıruˇ cka C.1 Instalaˇcn´ı pˇr´ıruˇcka . . . . . . . . . . . . . . . . . . ´ C.1.1 Uprava adres zdrojov´ ych server˚ u . . . . . . ´ C.1.2 Uprava text˚ u a jazykov´ ych mutac´ı . . . . . C.2 Uˇzivatelsk´ a pˇr´ıruˇcka . . . . . . . . . . . . . . . . . C.2.1 N´ aroky a poˇzadavky aplikace . . . . . . . . C.2.2 Jednotliv´e u ´kony . . . . . . . . . . . . . . . C.2.2.1 Spojen´ı dat z aplikace se serverem C.2.2.2 Z´ısk´ an´ı identifik´atoru . . . . . . . C.2.2.3 Sledov´ an´ı . . . . . . . . . . . . . . C.2.2.4 Nahr´ av´ an´ı dat na server . . . . . . C.2.2.5 Nastaven´ı baterie . . . . . . . . . C.2.2.6 Nastaven´ı jazyka . . . . . . . . . . C.2.2.7 Zobrazeni vlastn´ıch j´ızd . . . . . . C.2.2.8 Ukonˇcen´ı aplikace . . . . . . . . . D Obsah pˇ riloˇ zen´ eho CD
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
51 51 51 52 52 52 52 52 52 52 53 53 53 53 53 55
xiv
OBSAH
Seznam obr´ azk˚ u 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9
Horsk´ a sluˇzba, pˇrevzato z [4] . . . . . . . . . . . . . . . . . . . . . . . . Runtastic, pˇrevzato z [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . Ski info, pˇrevzato z [6] . . . . . . . . . . . . . . . . . . . . . . . . . . . . iSki, pˇrevzato z [7] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ski Trails Maps, pˇrevzato z [8] . . . . . . . . . . . . . . . . . . . . . . . Mobile Avalanche Safety Tool, pˇrevzato z [9] . . . . . . . . . . . . . . . Meteor - Snˇehov´e zpravodajstv´ı, pˇrevzato z [10] . . . . . . . . . . . . . . Snowhit, pˇrevzato z [11] . . . . . . . . . . . . . . . . . . . . . . . . . . . N´ akres pouˇzit´ı aplikace v kontextu subsyst´emu, design vedouc´ıho pr´ace
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
3 4 4 5 5 6 6 7 9
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9
Hlavn´ı obrazovka . . . . . . . . . . . Sledov´ an´ı . . . . . . . . . . . . . . . Nastaven´ı baterie . . . . . . . . . . . M´e j´ızdy . . . . . . . . . . . . . . . . Nastaven´ı jazyk˚ u . . . . . . . . . . . O aplikaci . . . . . . . . . . . . . . . O autorech . . . . . . . . . . . . . . Seznam soubor˚ u k zobrazen´ı . . . . . Zobrazen´ı j´ızdy pomoc´ı Google Maps
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
17 18 18 19 19 20 20 22 22
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Android
xv
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . API v2
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
xvi
´ U ˚ SEZNAM OBRAZK
Seznam tabulek 6.1 6.2 6.3
V´ ysledky dotazn´ıku screener - participanti, kteˇr´ı byli vybr´ani pro testov´an´ı . V´ ysledky pre-test dotazn´ıku . . . . . . . . . . . . . . . . . . . . . . . . . . . . V´ ysledky post-test dotazn´ıku . . . . . . . . . . . . . . . . . . . . . . . . . . .
xvii
33 35 38
xviii
SEZNAM TABULEK
Kapitola 1
´ Uvod Rozvoj adrenalinov´ ych sport˚ u, mezi kter´e patˇr´ı tak´e snowboarding, se tˇeˇs´ı ˇc´ım d´al vˇetˇs´ı oblibˇe v amat´ersk´e veˇrejnosti. Snowboardist´e ˇcasto navˇstˇevuj´ı parky, kter´e jim mohou poskytnout umˇele vytvoˇren´e pˇrek´ aˇzky, r˚ uzn´e snˇehov´e hrboly, laviˇcky, ale i roury, vhodn´e k pˇrekon´ av´ an´ı r˚ uzn´ ymi triky, jako jsou pˇremety, otoˇcky ˇci skluzy. Tyto lokality se naz´ yvaj´ı snowparky. Snowpark b´ yv´ a vˇetˇsinou souˇca´st´ı vˇetˇs´ıho lyˇzaˇrsk´eho are´alu neboli lyˇzaˇrsk´eho parku. Je to plocha ˇci u ´sek are´ alu, kter´ y obsahuje r˚ uzn´e m˚ ustky, rampy a jin´e pˇrek´aˇzky. Snowpark je obvykle doplnˇen o vlastn´ı vlek, coˇz ovˇsem nen´ı pravidlem. J´ızda ve snowparc´ıch b´ yvala dˇr´ıve spojov´ ana jen s u ´zk´ ym okruhem lid´ı, vˇetˇsinou snowboardist˚ u, kteˇr´ı se tomuto sportu vˇenovali profesion´ alnˇe. V souˇcasnosti jsou vˇsak snowparky zpˇr´ıstupnˇeny i amat´ersk´ ym jezdc˚ um, kteˇr´ı tak maj´ı moˇznost vyzkouˇset si sv´e schopnosti. Mimojin´e i d´ıky komfortu, kter´ y tyto parky poskytuj´ı, se skupina freeride jezdc˚ u st´ale rozˇsiˇruje. V posledn´ı dobˇe st´ ale v´ıce stoup´a obliba soci´aln´ıch s´ıt´ı jako je facebook, twitter apod. Jejich uˇzivatel´e mezi sebou sd´ılej´ı jak sv´e myˇslenky v podobˇe text˚ u, tak i multimedi´aln´ı obsah v podobˇe obr´ azk˚ u, fotek ˇci vide´ı. Uˇzivatel´e soci´aln´ıch s´ıt´ı chtˇej´ı sd´ılet sv´e dojmy, z´aˇzitky, ˇci sv´e kon´ıˇcky. D´ıky tomu vznik´ a potˇreba je zaznamen´avat, fotit popˇr´ıpadˇe nat´aˇcet. V kontextu snowpark˚ u je tato potˇreba orientov´ana zejm´ena na nahr´av´an´ı pr˚ ujezd˚ u uˇzivatel˚ u pˇres pˇrek´aˇzky. U profesion´ aln´ıch jezdc˚ u a pˇri z´avodech je k dispozici cel´ y ˇst´ab, kter´ y sc´enu nat´ aˇc´ı. Amat´erˇst´ı jezdci jsou vˇsak odk´ az´ani na sv´e vlastn´ı zaˇr´ızen´ı, coˇz b´ yv´a nejˇcastˇeji mobiln´ı telefon v rukou kamar´ ada. Tyto vˇetˇsinou ne pˇr´ıliˇs kvalitn´ı z´abˇery pak publikuj´ı na zm´ınˇen´ ych soci´aln´ıch s´ıt´ıch. Z´aznamy pr˚ ujezd˚ u pˇrek´ aˇzkami nemusej´ı b´ yt urˇceny pouze pro publikov´an´ı ostatn´ım uˇzivatel˚ um, ale tak´e jako feedback umoˇzn ˇuj´ıc´ı vlastn´ı rozvoj. Tento postup v´ yuky se naz´ yv´ a videocoaching. V j´ızdˇe na lyˇz´ıch ˇci snowboardech b´ yv´a velmi cenˇen zejm´ena pro pochopen´ı sv´ ych vlastn´ıch chyb jako je napˇr´ıklad drˇzen´ı tˇela nebo ˇspatn´e pˇresouv´an´ı tˇeˇziˇstˇe, kter´e si uˇzivatel´e bez videa neuvˇedom´ı. C´ılem projektu, kter´eho m˚ uˇze b´ yt tato pr´ace souˇc´ast´ı, je umoˇznit uˇzivatel˚ um z´ısk´ avat kvalitn´ı z´ abˇery pˇri minim´ aln´ıch n´akladech a u ´sil´ı. Aplikace, kterou se zab´ yv´a tato bakal´aˇrsk´ a pr´ace, m´ a v cel´em projektu v´ yznam jako zdroj dat potˇrebn´ ych pro generov´an´ı videa pr˚ ujezd˚ u uˇzivatel˚ u pˇres pˇrek´ aˇzky ve snowparc´ıch.
1
2
´ KAPITOLA 1. UVOD
Kapitola 2
Pr˚ uzkum trhu V t´eto kapitole je pops´ ano pozad´ı trhu, pˇrehled pˇr´ıbuzn´ ych aplikac´ı a instalac´ı. V posledn´ı kapitole je pops´ an smysl a c´ıl jak t´eto bakal´aˇrsk´e pr´ace, tak projektu, jehoˇz m˚ uˇze b´ yt souˇc´ ast´ı.
2.1 2.1.1
Pˇ rehled obdobn´ ych aplikac´ı Horsk´ a sluˇ zba
Obr´ azek 2.1: Horsk´a sluˇzba, pˇrevzato z [4] ˇ m´a za u Aplikace Horsk´ a sluˇzba CR ´kol pomoci n´avˇstˇevn´ık˚ um ˇcesk´ ych hor v pˇr´ıpadˇe ˇ ˇ nouze. Tato origin´ aln´ı aplikace od Horsk´e sluˇzby CR ve spolupr´aci s Ceskou pojiˇst’ovnou nab´ız´ı celou ˇradu r˚ uzn´ ych funkc´ı, mezi kter´e patˇr´ı zejm´ena rychl´e pˇrivol´an´ı pomoci a lokalizace volaj´ıc´ıho, rychl´e a snadn´e pˇrivol´an´ı pomoci nejbliˇzˇs´ı hl´ıdky Horsk´e sluˇzby. Tato funkce pracuje s lokalizac´ı pomoc´ı GPS, takˇze nen´ı tˇreba datov´eho pˇripojen´ı. Dalˇs´ı funkce jsou odesl´an´ı SMS s polohou telefonu a informace o horsk´ ych stˇredisc´ıch, infocentrech, stanic´ıch Horsk´e sluˇzby apod. ˇ poskytuje tak´e z´akladn´ı informace o aktu´aln´ıch snˇehov´ Aplikace Horsk´ a sluˇzba CR ych podm´ınk´ ach, lavinov´em nebezpeˇc´ı a poˇcas´ı na dan´em m´ıstˇe. Poskytuje rovnˇeˇz fotografie z vybran´eho lyˇzaˇrsk´eho stˇrediska, informace o vybaven´ı stˇrediska ˇci o are´alu, poˇctu vlek˚ u, stavu sjezdovek a dalˇs´ı podrobnˇejˇs´ı informace. Mezi dalˇs´ı funkce aplikace patˇr´ı i r˚ uzn´a sdˇelen´ı ˇci varov´an´ı Horsk´e sluˇzby, kter´e se t´ ykaj´ı chov´an´ı na svahu, pˇredch´ azen´ı r˚ uzn´ ych nebezpeˇc´ı ˇci jak se chovat v krizov´ ych situac´ıch.
3
˚ KAPITOLA 2. PRUZKUM TRHU
4
Zdroj: Google Play [4]
2.1.2
Runtastic
Obr´ azek 2.2: Runtastic, pˇrevzato z [5] Runtastic je treninkov´ a aplikace, kter´ a vyuˇz´ıv´a GPS k mapov´an´ı aktivit uˇzivatele. Sleduje zlepˇsen´ı v´ ykon˚ u uˇzivatele a umoˇzn ˇuje sd´ılet informace o aktivit´ach pˇres soci´aln´ı s´ıtˇe mezi nˇeˇz patˇr´ı zejm´ena facebook ˇci twitter. Mezi z´akladn´ı funkce n´ aleˇz´ı ukl´ ad´ an´ı v´ ysledk˚ u pod sv˚ uj runtastic u ´ˇcet na internetu, mapov´an´ı trenink˚ u v re´ aln´em ˇcase d´ıky GPS v telefonu, pˇrehled aktivit, zobrazov´an´ı statistik, grafy aktivity jako jsou informace o nadmoˇrsk´e v´ yˇsce, tempo, rychlost ˇci informace o tepov´e frekvenci (informace o tepov´e frekvenci je dostupn´a pouze s extern´ım zaˇr´ızen´ım pro sn´ım´an´ı t´eto hodnoty). V pˇr´ıpadˇe st´ ahnut´ı PRO verze, kter´ a jiˇz nen´ı ˇs´ıˇrena jako freeware, je moˇzno vyuˇz´ıvat dalˇs´ı funkce, mezi kter´e patˇr´ı zejm´ena rozˇs´ıˇren´e moˇznosti nastaven´ı treninkov´ ych jednotek, informace o poˇcas´ı a teplotˇe ˇci optimalizace treninku. Tato verze aplikace je distribuov´ana bez reklam. Zdroj: Google Play [5]
2.1.3
Ski info
Obr´ azek 2.3: Ski info, pˇrevzato z [6] ˇ a Sitour SK. Tato Ski Info je vyv´ıjena firmou Samsung CZ ve spolupraci s Sitour CR ˇ aplikace nab´ız´ı pˇrehled informac´ı o lyˇzaˇrsk´ ych stˇredisc´ıch v Cesk´e a Slovensk´e republice.
ˇ ´ 2.1. PREHLED OBDOBNYCH APLIKAC´I
5
Aplikace informuje pˇredevˇs´ım o poˇcas´ı, at’ uˇz aktu´aln´ım ˇci ve formˇe pˇredpovˇedi, snˇehu, stavu sjezdovek a vlek˚ u, ale pˇrin´ aˇs´ı i z´abˇery z webkamer, kontaktn´ı informace nebo aktuality ze stˇredisek. Zdroj: Google Play [6]
2.1.4
iSki
Obr´azek 2.4: iSki, pˇrevzato z [7] Aplikace iSki poskytuje servis snˇehov´eho zpravodajstv´ı a aktu´aln´ıch informac´ı ze zimn´ıch ˇ e republiky. Aktu´ stˇredisek Cesk´ alnˇe poskytuje informace z nˇekolika des´ıtek lyˇzaˇrsk´ ych are´ al˚ u vˇcetnˇe ˇziv´eho vys´ıl´ an´ı z panoramatick´ ych ˇci webov´ ych kamer. Poskytuje i pˇrehled panoramatick´ ych map. Zdroj: Google Play [7]
2.1.5
Ski Trails Maps
Obr´ azek 2.5: Ski Trails Maps, pˇrevzato z [8] Aplikace Ski Trail Maps dovoluje stahovat, ukl´adat a zobrazovat mapy lyˇzaˇrsk´ ych are´ al˚ u z cel´eho svˇeta. Zobrazuje t´eˇz polohu jezdce v r´amci are´alu a informace o sjezdovk´ach. Zdroj: Google Play [8]
˚ KAPITOLA 2. PRUZKUM TRHU
6
Obr´ azek 2.6: Mobile Avalanche Safety Tool, pˇrevzato z [9]
2.1.6
Mobile Avalanche Safety Tool
Aplikace Mobile Avalanche Safety Tool je zaˇr´ızen´ı pom´ahaj´ıc´ı vyhodnotit m´ıru rizika sesunu laviny a zahrnuje i d˚ uleˇzit´e tipy, kter´e zabraˇ nuj´ı vzniku laviny a zvyˇsuj´ı ˇsance na pˇreˇzit´ı. N´astroj zahrnuje pr˚ uvodce, kter´ y vyuˇz´ıv´a nejnovˇejˇs´ı lavinov´ y v´ yzkum, statistiky a vestavˇen´ y sklonometr pro minimalizov´ an´ı rizika vzniku lavin vinou uˇzivatele. Sklonometr vyˇzaduje pouˇzit´ı gyroskopu v mobiln´ım zaˇr´ızen´ı a pracuje bez pˇripojen´ı k internetu ˇci mobiln´ıho pokryt´ı. K dispozici jsou informativn´ı obr´ azky a texty s informacemi, jak se vyhnout lavin´am a pˇreˇz´ıt v pˇr´ıpadˇe, ˇze doˇslo k zasaˇzen´ı lavinou. N´astroj zahrnuje t´eˇz odkazy pro zjiˇstˇen´ı lavinov´eho nebezpeˇc´ı ˇci zobrazen´ı vide´ı uk´azkov´ ych situac´ı pro pˇreˇzit´ı. Zdroj: Google Play [9]
2.1.7
Meteor - Snˇ ehov´ e zpravodajstv´ı
Obr´ azek 2.7: Meteor - Snˇehov´e zpravodajstv´ı, pˇrevzato z [10] Aplikace Meteor jsou zamˇeˇren´e na zprostˇredkov´av´an´ı informac´ı o aktu´aln´ım poˇcas´ı pˇr´ımo uˇzivateli. Meteor - Snˇehov´e zpravodajstv´ı je specializovan´e na informace o snˇehu a poˇcas´ı t´ ykaj´ıc´ı se hor. Mezi jeho hlavn´ı funkce patˇr´ı z´ısk´av´an´ı a zobrazov´an´ı aktu´aln´ıch snˇehov´ ych podm´ınek ve stˇredisc´ıch, rychl´e stahov´ an´ı dat, pˇr´ıjemn´e uˇzivatelsk´e rozhran´ı a moˇznost poznamen´an´ı obl´ıben´ ych stˇredisek. Zdroj: Google Play [10]
ˇ ´ 2.2. PREHLED OBDOBNYCH INSTALAC´I
7
Obr´ azek 2.8: Snowhit, pˇrevzato z [11]
2.1.8
Snowhit
Snowhit je aplikace zamˇeˇren´ a na informov´an´ı uˇzivatele o lyˇzaˇrsk´ ych stˇredisc´ıch. Mezi informace, kter´e aplikace poskytuje, patˇr´ı snˇehov´e zpravodajstv´ı, poˇcas´ı, ceny skipas˚ u ˇci z´abˇery webov´ ych kamer a dalˇs´ı funkce. Zobrazuje i re´aln´e mapy sjezdovek, bˇeˇzkaˇrsk´ ych trat´ı vˇcetnˇe vlek˚ u a lanovek v´ yznamn´ ych skicenter nejen u n´as, ale v cel´e stˇredn´ı Evropˇe. Uˇzivatel˚ um poskytuje moˇznost zapisovat sv´e zkuˇsenosti z navˇst´ıven´ ych stˇredisek, nebo ˇc´ıst koment´ aˇre ostatn´ıch uˇzivatel˚ u. Aplikace je schopn´ a fungovat i v offline reˇzimu bez internetov´eho pˇripojen´ı. Zdroj: Google Play [11]
2.2 2.2.1
Pˇ rehled obdobn´ ych instalac´ı The ski channel
Ski channel je horsk´ a sportovn´ı televizn´ı s´ıt’ a multimedi´aln´ı platforma. Je to tak´e velk´ y producent multimedi´ aln´ıho obsahu zamˇeˇren´eho na sportovn´ı horsk´e t´ema, vˇcetnˇe film˚ u, televizn´ıch poˇrad˚ u, reklam a ˇcl´ ank˚ u. Televizn´ı program lze nal´ezt v On Demand sekci pro asi 45 milion˚ u televizn´ıch dom´ acnost´ı v USA. Kan´al je pro spotˇrebitele zdarma a nab´ız´ı ve sv´e tˇr´ıdˇe to nejlepˇs´ı z lyˇzov´ an´ı, snowboardingu, horolezectv´ı a dalˇs´ıch sport˚ u. Ski channel disponuje tak´e p˚ ujˇcovnou lyˇz´ı, snowboard˚ u a dalˇs´ı techniky. Mobiln´ı aplikace Ski Channel existuje pouze pro iPhone ˇci iPad a slouˇz´ı jako informaˇcn´ı prostˇredek pro pomoc s rozhodov´an´ım, kter´e hory zvolit. Tato aplikace m˚ uˇze b´ yt pouˇzita i jako marketingov´ y kan´ al. Mobiln´ı aplikaci si jiˇz st´ahlo pˇres mili´on uˇzivatel˚ u. Zakladatel Ski Channelu je Steve Bellamy. Zdroj: ofici´ aln´ı web [2]
2.2.2
Matchstick Productions
Ski movie je projekt Matchstick Productions. Tento projekt se zab´ yv´a filmov´an´ım lyˇzaˇr˚ u a snowboardist˚ u na svahu. Matchstick Productions disponuj´ı nˇekolika ˇst´aby a profesion´aln´ım vybaven´ım, coˇz jim umoˇzn ˇuje z´ıskat z´abˇery vysok´e kvality. Cel´ y ˇst´ab lze za urˇcitou sumu najmout a poˇr´ıdit tak velmi kvalitn´ı film. V r´amci sluˇzeb, jeˇz Matchstick Productions nab´ız´ı,
˚ KAPITOLA 2. PRUZKUM TRHU
8
je i postprodukˇcn´ı proces zahrnuj´ıc´ı zejm´ena sestˇr´ıh´an´ı nahr´avek ˇci pˇrimixov´an´ı zvukov´ ych stop. Matchstick Productions jsou d´ıky sv´ ym cen´am dostupn´e nejen pro sportovn´ı ˇspiˇcku, ovˇsem pro ˇsirokou veˇrejnost jsou jejich sluˇzby st´ale nedostupn´e. Zdroj: ofici´ aln´ı web [3]
2.3
Zamˇ eˇ ren´ı tohoto projektu
C´ılem t´eto bakal´ aˇrsk´e pr´ ace je vytvoˇren´ı aplikace pro smartphony, kter´a bude sn´ımat informace o poloze uˇzivatele. Tato aplikace by mˇela spolupracovat se serverem, kter´ y bude pˇrij´ımat z´ıskan´ a data z aplikace. Pro velk´e rozˇs´ıˇren´ı smartphon˚ u s operaˇcn´ımi syst´emy Android a iOS bude tato aplikace naps´ ana pro oba tyto syst´emy. Hlavn´ı smyslem cel´eho projektu, kter´eho m˚ uˇze b´ yt tato aplikace souˇc´ast´ı, by mˇelo b´ yt zpˇr´ıstupnit uˇzivateli snowpark˚ u ˇci vodn´ıch park˚ u videa jeho pr˚ ujezd˚ u pˇres pˇrek´aˇzky. Napˇr´ıklad pˇri pr˚ ujezdu snowparkem uˇzivatel proj´ıˇzd´ı r˚ uzn´e pˇrek´aˇzky, rampy ˇci jin´e sektory, kde se nach´az´ı v z´abˇeru kamery. Uˇzivatel bude d´ıky aplikaci, kterou by pˇri pr˚ ujezdu pouˇz´ıval, monitorov´an a data o jeho pr˚ ujezdu budou odesl´ ana na server, kter´ y je zpracuje. Na jejich z´akladˇe server urˇc´ı kameru, v jej´ımˇz z´ abˇeru se uˇzivatel nach´azel a konkr´etn´ı ˇcasov´ yu ´sek, kdy se uˇzivatel nach´azel pˇred touto kamerou. T´ım server z´ısk´a dostateˇcn´e informace k tomu, aby uˇzivateli zpˇr´ıstupnil videoz´ aznam jeho pr˚ ujezdu danou pˇrek´aˇzkou. Obr´azek 2.9 zachycuje pr´avˇe tento proces. Pˇri tvorbˇe aplikace by mˇel b´ yt kladen d˚ uraz na zachov´an´ı soukrom´ı uˇzivatel˚ u a nasn´ıman´a data tedy budou vyfiltrov´ ana jeˇstˇe pˇred odesl´an´ım na server. Aplikace pro svou funkci bude vyˇzadovat GPS sn´ımaˇc a alespoˇ n obˇcasn´e internetov´e pˇripojen´ı.
ˇ REN ˇ ´I TOHOTO PROJEKTU 2.3. ZAME
Obr´ azek 2.9: N´ akres pouˇzit´ı aplikace v kontextu subsyst´emu, design vedouc´ıho pr´ace
9
10
˚ KAPITOLA 2. PRUZKUM TRHU
Kapitola 3
Techologick´ a reˇ serˇ se Tato kapitola se vˇenuje rychl´emu popisu a zaˇrazen´ı chytr´ ych telefon˚ u. V nˇekolika odstavc´ıch informuje o v´ yznamu tˇechto telefon˚ u zejm´ena pro myˇslenku tohoto projektu, zmiˇ nuje t´eˇz probl´em v´ıce operaˇcn´ıch syst´em˚ u a sloˇzitˇejˇs´ıho v´ yvoje pro nˇe. Porovn´av´a moˇzn´e zp˚ usoby v´ yvoje aplikac´ı mezi sebou i s bˇeˇznˇe pouˇz´ıvanou prax´ı. V z´avˇeru kapitoly se vˇenuje probl´emu propojen´ı aplikace s webov´ ym port´alem.
3.1 3.1.1
Smartphone, chytr´ y telefon Chytr´ y telefon, jeho v´ yhody a nev´ yhody
Smartphone je telefon, kter´ y poskytuje pokroˇcil´e funkce. Zde je d˚ uleˇzit´e zd˚ uraznit slovo pokroˇcil´e. Chytr´ y telefon jiˇz nen´ı nejaktu´alnˇejˇs´ım, pˇrest´av´a b´ yt chytr´ ym telefonem ale nastupuje nov´ a generace dalˇs´ıch telefon˚ u, kter´a ho nahrad´ı. Mezi charakteristick´e znaky patˇr´ı aplikaˇcn´ı rozhran´ı, kter´e umoˇzn´ı instalaci nebo u ´pravy program˚ u, ale z´aroveˇ n pokroˇcil´e funkce, jako je dnes napˇr´ıklad Video hovor. Mezi hlavn´ı v´ yhody tˇechto telefon˚ u patˇr´ı velk´a podpora aplikac´ı a moˇznost jejich instalace, moˇznost pˇropojen´ı k internetu i d´ıky wifi s´ıti, ˇci integrovan´e zaˇr´ızen´ı GPS. Velkou nev´ yhodou vˇsak i pˇres rychl´ y v´ yvoj z˚ ust´av´a menˇs´ı v´ ydrˇz baterie neˇz u klasick´ ych telefon˚ u. Zdroj: wikipedia.org [12], mobilmania.cz [13]
3.1.2
V´ yznam smartphon˚ u pro projekt
Hlavn´ı v´ yznam smartphon˚ u pro tento projekt spoˇc´ıv´a v jejich popularitˇe a ˇs´ıˇri moˇznost´ı. D´ıky GPS a moˇznosti pˇr´ıstupu na internet se z chytr´ ych telefon˚ u st´av´a vhodn´e zaˇr´ızen´ı pro lokalizov´ an´ı uˇzivatel˚ u na pˇrek´aˇzk´ach. Velkou v´ yhodou chytr´ ych telefon˚ u je relativnˇe snadn´ y v´ yvoj aplikac´ı pro nˇe a jejich n´asledn´ a distribuce. Na druhou stranu rozmanitost pouˇz´ıvan´ ych operaˇcn´ıch syst´em˚ u tˇechto zaˇr´ızen´ı naruˇsuje jednotn´ y konzistentn´ı v´ yvoj a je nutn´e tento probl´em ˇreˇsit.
11
´ RESER ˇ SE ˇ KAPITOLA 3. TECHOLOGICKA
12
3.1.3
Zastoupen´ı OS na smartphonech
Operaˇcn´ı syst´em se star´ a o bˇeh a spr´ avu aplikac´ı telefonu. D´ıky tomuto syst´emu mohou b´ yt do telefonu instalov´ any nov´e aplikace ˇci mohou b´ yt vyuˇz´ıv´any r˚ uzn´e periferie zaˇr´ızen´ı. Souˇcasnˇe existuje nˇekolik operaˇcn´ıch syst´em˚ u, mezi nˇeˇz patˇr´ı Android (Google), iOS (Apple), Windows Phone (Microsoft), Symbian a dalˇs´ı. Dle serveru gartner.com je nejˇcastˇejˇs´ı pouˇz´ıvan´ ym operaˇcn´ım syst´emem Android (64,1%), n´asledov´an iOS (18,8%) a Symbianem (5,9%). Vzhledem k tˇemto skuteˇcnostem by mˇela b´ yt tato aplikace vyv´ıjena pro Android a iOS. D´ıky t´eto okolnosti je d˚ uleˇzit´e zv´aˇzit, zda aplikace vyv´ıjet souˇcasnˇe pomoc´ı n´ astroj˚ u pro multiplatformn´ı v´ yvoj, ˇci kaˇzdou z aplikac´ı vytvoˇrit ’ zvl´aˇst . Zdroj: Smartphone statistics and market share [14]
3.2 3.2.1
Moˇ znosti v´ yvoje aplikac´ı pro smartphone Monoplatformn´ı v´ yvoj
Tento zp˚ usob v´ yvoje je ˇcasovˇe n´ aroˇcnˇejˇs´ı neˇz multiplatformn´ı v´ yvoj, ale pˇrin´aˇs´ı mnoh´e v´ yhody. Mezi hlavn´ı pˇrednosti tohoto postupu patˇr´ı v´ yvoj aplikace pˇr´ımo pro konkr´etn´ı operaˇcn´ı syst´em. D´ıky t´eto vlastnosti je pouˇz´ıv´an jak pro mal´e tak i vˇetˇs´ı projekty, kdy m˚ uˇze na tvorbˇe aplikace pracovat v´ıce v´ yvoj´ aˇrsk´ ych t´ ym˚ u paralelnˇe pro kaˇzd´ y operaˇcn´ı syst´em zvl´aˇst’, coˇz m˚ uˇze zv´ yˇsit n´ aklady. Pokud na projektu pracuje pouze jeden t´ ym v´ yvoj´aˇr˚ u, d´a se monoplatformn´ı v´ yvoj pˇrirovnat k v´ yvoji v´ıce aplikac´ı, kdy se jednotliv´e aplikace, pro kaˇzd´ y operaˇcn´ı syst´em, vytv´ aˇr´ı s´eriovˇe po sobˇe. V t´eto podobˇe jde tedy o v´ yraznˇejˇs´ı ˇcasovou n´aroˇcnost, kdy mus´ı v´ yvoj´ aˇri programovat ten sam´ y k´od v nˇekolika podob´ach.
3.2.2
Multiplatformn´ı v´ yvoj
Na prvn´ı pohled se m˚ uˇze zd´ at jednoduch´ ym ˇreˇsen´ım v´ yvoje stejn´e aplikace pro v´ıce operaˇcn´ıch syst´em˚ u. Jedn´ a se o programov´an´ı pomoc´ı frameworku ˇci SDK (Software Development Kit), kdy jedinou verzi k´ odu pouˇz´ıvan´ y n´astroj dok´aˇze exportovat pro nˇekolik operaˇcn´ıch syst´em˚ u najednou. Velk´a nev´ yhoda tohoto v´ yvoje je v jeho nedokonalosti a menˇs´ı podpoˇre v´ yvoj´aˇrsk´e komunity. V pˇr´ıpadˇe v´ yvoje pro iOS tento zp˚ usob nar´aˇz´ı i na probl´em ze strany technick´e nedokonalosti. Apple totiˇz poˇc´ıt´ a s t´ım, ˇze v´ yvoj´aˇri iOS budou pracovat na stroj´ıch, kde bude iOS nainstalov´ an. To konstrastuje se skuteˇcnost´ı, ˇze vˇetˇsina kvalitn´ıch n´astroj˚ u pro multiplatformn´ı v´ yvoj je naps´ ana pro Windows.
3.3 3.3.1 3.3.1.1
V praxi pouˇ z´ıv´ an´ e postupy a metody pro v´ yvoj aplikac´ı Monoplatformn´ı v´ yvoj Pro Android
V´ yvoj pro platformu Android prob´ıh´a nejˇcastˇeji ve v´ yvojov´em prostˇred´ı Eclipse s nainstalovan´ ym Android SDK pluginem. Nejˇcastˇeji pouˇz´ıvan´ ym jazykem pro tvorbu aplikac´ı
ˇ´IVAN ´ E ´ POSTUPY A METODY PRO VYVOJ ´ 3.3. V PRAXI POUZ APLIKAC´I
13
b´ yv´a Java. Tak´e d´ıky tomu mohou b´ yt aplikace vyv´ıjeny pod r˚ uzn´ ymi operaˇcn´ımi syst´emy, jako jsou Windows, Linux ˇci OS X od firmy Apple. Zdroj: zdrojak.cz [15][16] Aplikace pro Android je vˇsak moˇzn´e programovat i pomoc´ı jazyka Flash, kter´ y se hod´ı zejm´ena pro tvorbu her ˇci jin´ ych animac´ı. Pro tvorbu aplikac´ı tohoto druhu b´ yv´a jako v´ yvojov´e prostˇred´ı nejˇcastˇeji zvolen Adobe Flash a Adobe Flash Builder. I tento zp˚ usob programov´ an´ı dovoluje v´ yvoj aplikace pod r˚ uzn´ ymi operaˇcn´ımi syst´emy. Dalˇs´ı pouˇz´ıvan´e jazyky pro v´ yvoj aplikac´ı pro Android jsou C, C++ a Ruby, ty je ovˇsem tˇreba sloˇzitˇeji kompilovat. 3.3.1.2
Pro iPhone
V´ yvoj aplikac´ı pro operaˇcn´ı syst´em iOS je komplikovanˇejˇs´ı v omezen´ıch, kter´e vznikaj´ı nekompatibilitou ofici´ aln´ıho IDE a frameworku s ostatn´ımi pouˇz´ıvan´ ymi operaˇcn´ımi syst´emy. Tvorba pro iPhone ˇci iPad vyˇzaduje v´ yvoj v prostˇred´ı XCode s frameworkem Cocoa a nainstalovan´ ym SDK pro iOS. Tyto poˇzadavky velmi omezuj´ı v´ yvoj´aˇre, kteˇr´ı nevlastn´ı stroje firmy Apple. Zdroj: zdrojak.cz [17] Moˇznosti v´ yvoje pod syst´emy Windows a Linux sice existuj´ı, ale jsou znaˇcnˇe komplikovan´e a dost ˇcasto je nutn´e vznikl´e projekty kompilovat opˇet na stroj´ıch Apple. Mezi nejpouˇz´ıvanˇejˇs´ı n´ astroje patˇr´ı GNUStep s frameworkem Cocotron, ˇci r˚ uzn´e frameworky umoˇzn ˇuj´ıc´ı programov´ an´ı v jin´em jazyce a kompilov´an´ı do jazyka Objective-C. Zdroj: GNUstep [31], Cocotron [30] Dalˇs´ım zp˚ usobem jak programovat aplikace pro chytr´e telefony firmy Apple je pouˇzit´ı jazyka Flash ve v´ yvojov´em prostˇred´ı Adobe Flash a Adobe Flash Builder.
3.3.2 3.3.2.1
Multiplatformn´ı v´ yvoj Marmalade
Marmalade, SDK pro tvorbu aplikac´ı napˇr´ıˇc mobiln´ımi platformami, je vyv´ıjen firmou Ideaworks3D Limited. Obsahuje knihovny, uk´azkov´e pˇr´ıklady, dokumentaci a dalˇs´ı n´astroje pro v´ yvoj a testov´ an´ı aplikac´ı pro mobiln´ı telefony. Marmalade, dˇr´ıve AirPlay, bylo zpoˇc´ atku vyv´ıjeno jako knihovna pro podporu firemn´ıch projekt˚ u, pouˇziteln´a pˇri pr´aci na videohr´ ach pro mobiln´ı telefony. Tento projekt se pozdˇeji rozˇs´ıˇril aˇz do podoby placen´eho SDK. Marmalade SDK je vytvoˇren pro v´ yvoj aplikac´ı v jazyku C nebo C++, v´ ystupem z Marmalade mohou b´ yt aplikace pro operaˇcn´ı syst´emy Android, BlackBerry PlayBook, iOS, LG Smart TV, Mac OS X Desktop, Windows Desktop, Windows Phone 8. M˚ uˇze b´ yt ˇs´ıˇren pod zkuˇsebn´ı verz´ı. Zdroj: Ofici´ aln´ı web [18] 3.3.2.2
J2ObjC
J2ObjC, open-source n´ astroj od Googlu, je vyvinut pro u ´ˇcely pˇreloˇzen´ı Java k´odu, Android aplikace, do Objective-C pro iOS, tedy iPhone a iPad aplikace. Tento n´astroj umoˇzn ˇuje
´ RESER ˇ SE ˇ KAPITOLA 3. TECHOLOGICKA
14
Java k´odu st´at se souˇc´ ast´ı aplikace pro iOS s minim´aln´ımi zmˇenami vygenerovan´ ych soubor˚ u. C´ılem J2ObjeC je napsat aplikaci bez UI tak, aby mohla b´ yt ˇs´ıˇrena jako Android i iOS aplikace. J2ObjC podporuje vˇetˇsinu funkc´ı, kter´e poskytuje jazyk Java, potˇrebn´ ych na klientsk´e stranˇe v´ yvoj´aˇr˚ u aplikac´ı. Mezi tyto funkce patˇr´ı napˇr´ıklad vyj´ımky, vnitˇrn´ı ˇci anonymn´ı funkce, generick´e typy, vl´ akna ˇci reflexe. Dalˇs´ı d˚ uleˇzitou podporovanou funkc´ı jsou JUnit testy. J2ObjC je st´ ale ve v´ yvoji a nyn´ı se nach´az´ı ve stavu kdesi mezi alpha a beta verz´ı. Nˇekolik projekt˚ u Google jiˇz d´ıky tomuto n´ astroji zpracoval, ale s nov´ ym projektem se vynoˇruj´ı nov´e chyby, kter´e by mˇely b´ yt opraveny. Velkou nev´ yhodou je neschopnost reagovat na r˚ uzn´e styly programov´an´ı (co program´ ator, to vlastn´ı styl). Tento n´astroj je zdarma. Zdroj: Ofici´ aln´ı web [19]
3.3.2.3
InTheBox
Projekt InTheBox se zab´ yv´ a portov´ an´ım Dalvik VM a Gingerbread rozhran´ı androidu na operaˇcn´ı syst´em iOS. To umoˇznuje program´ator˚ um pro Android spustit jejich aplikace i pod iOS. V´ yhodou projektu je moˇznost programovat na platform´ach Linux, Windows ˇci Mac, ovˇsem kompilaci lze prov´ adˇet opˇet pouze na syst´emu Mac. Tento n´astroj je zdarma. Zdroj: Ofici´ aln´ı web [20]
3.3.2.4
ShiVa3D
ShiVa3D je v´ yvoj´ aˇrsk´ y n´ astroj pro jednoduch´e vytv´aˇren´ı hlavnˇe 3D her ˇci aplikac´ı pro Windows, Mac OS, Linux, iPhone, iPad, Android, BlackBerry a dalˇs´ı. ShiVa je siln´ y n´astroj pro multiplatformn´ı v´ yvoj obsahuj´ıc´ı WYSIWYG 3D Editor ˇci MMO Server. Placen´ y n´astroj. Zdroj: Ofici´ aln´ı web [21]
3.3.2.5
Dragonfire SDK
Dragonfire je podobn´e SDK jako Airplay/Marmalade s velk´ ym rozd´ılem v kompilaci. Na’ rozd´ıl od Marmalade, kde se kompilace aplikac´ı zajiˇst uje v r´amci SDK, Dragonfire zajiˇst’uje tuto funkci pˇres webov´e rozhran´ı. Nutnost internetov´eho pˇripojen´ı je silnˇe omezuj´ıc´ı prostˇredek. Stejnˇe jako Marmalade je Dragonfire naps´an pro jazyk C/C++. Placen´ y n´astroj. Zdroj: Ofici´ aln´ı web [22]
´ PORTALEM ´ 3.4. PROPOJEN´I APLIKACE S WEBOVYM PROJEKTU
3.3.2.6
15
Unity
Unity je hern´ı v´ yvoj´ aˇrsk´ y ekosyst´em. Siln´ y vykreslovac´ı stroj, s plnˇe integrovan´ ym syst´emem intuitivn´ıch n´ astroj˚ u a rychl´ ych workflows k tvorbˇe interaktivn´ıch her a jin´eho obsahu. Umoˇzn ˇuje jednoduchou distribuci na v´ıce platforem a kvalitn´ı podporu v komunitˇe v´ yvoj´ aˇr˚ u. Placen´ y n´ astroj. Zdroj: Ofici´ aln´ı web [23]
3.3.3
Shrnut´ı moˇ znost´ı
Pro v´ yvoj pro v´ıce platforem souˇcasnˇe se velmi jednoduˇse jev´ı moˇznost vyuˇz´ıvat r˚ uzn´ ych SDK, knihoven a n´ astroj˚ u, kter´e umoˇzn ˇuj´ı snadn´ y export ˇci kompilaci do potˇrebn´eho form´ atu. Bohuˇzel vˇetˇsina takov´ ychto n´ astroj˚ u nen´ı urˇcena k freeware distribuci, nebo jejich free verze nesplˇ nuje n´ aroky t´eto bakal´ aˇrsk´e pr´ace. Pˇri srovn´an´ı funkc´ı a vlastnost´ı se jako nejlepˇs´ı volbou pro v´ yvoj aplikace jev´ı Marmalade SDK, kter´ y je sice ve zkuˇsebn´ı verzi ˇs´ıˇren zdarma, ale st´ale se jedn´ a o mlad´ y projekt, kter´ y jeˇstˇe nem´a rozs´ahlou podporu v komunitˇe uˇzivatel˚ u a programov´ an´ı v tomto frameworku si vyˇzaduje ˇreˇsen´ı ˇspatnˇe popsan´ ych probl´em˚ u. Dalˇs´ı moˇznost´ı je pˇreloˇzen´ı ˇci konvertov´an´ı jiˇz napsan´e aplikace pro Android, coˇz lze prov´ezt pomoc´ı dvou n´ astroj˚ u: InTheBox a J2ObjC. J2ObjC je bohuˇzel m´alo podporovan´a knihovna, kter´a je zat´ım ve f´ azi post-afla distribuce, coˇz znamen´a, ˇze obsahuje mnoho chyb, kter´e je tˇreba odstranit. InTheBox je oproti tomu dobˇre podporovan´a knihovna s jednoduch´ ym pouˇzit´ım, ovˇsem bez vlastn´ı platformy Mac je jeho pouˇzit´ı t´emˇeˇr nemoˇzn´e. V´ yvoj tohoto projektu je tedy veden smˇerem k naprogramov´an´ı dvou v podstatˇe nez´avisl´ ych aplikac´ı. Jedn´e pro Android a druh´e pro iPhone. Android aplikaci lze vyv´ıjet bez probl´em˚ u na platformˇe Windows ˇci Linux. Aplikace pro iPhone vˇsak vyˇzaduje pro sv˚ uj v´ yvoj platformu Mac, ˇci pouˇzit´ı speci´ aln´ıho n´ astroje pod Windows. V kontextu t´eto bakal´aˇrsk´e pr´ace to znamen´a pouˇzit´ı Adobe Flash a naps´an´ı aplikace v jazyce ActionScript, kter´ y by mˇel umoˇznit pr´aci se vˇsemi n´ astroji, kter´e jsou tento projekt potˇreba.
3.4
Propojen´ı aplikace s webov´ ym port´ alem projektu
Aplikace je urˇcena zejm´ena ke sbˇeru dat, kter´a pˇredstavuj´ı ˇcas a GPS polohu, kde se uˇzivatel aplikace nach´ azel. Aplikace by mˇela umoˇznit nahr´avat tato data na server, kter´ y je d´ale zpracuje. Pˇri z´ısk´ an´ı zpˇetn´e vazby je vˇsak tˇreba rozliˇsovat uˇzivatele, kteˇr´ı data na server nahr´ avaj´ı. Mnohdy je tak´e nutn´e, aby se data z aplikace provazovala na serveru pˇr´ımo su ´ˇcty registrovan´ ych uˇzivatel˚ u. Z v´ yˇse zm´ınˇen´ ych d˚ uvod˚ u je tedy tˇreba z´ısk´avat unik´atn´ı identifik´ator kaˇzd´e instalace. Generov´ an´ı tohoto kl´ıˇce se dˇeje na stranˇe serveru a aplikace pouze z´ısk´a v´ ysledn´ y ˇretˇezec znak˚ u, kter´ y slouˇz´ı jako kl´ıˇc. Kl´ıˇc by mˇel b´ yt pro pˇrehlednost zobrazen uˇzivateli aplikace na u ´vodn´ı obrazovce. Soubory vytv´aˇren´e v r´amci aplikace budou v n´azvu obsahovat tento identifik´ ator a nebude pak pro server pˇr´ıliˇs obt´ıˇzn´e urˇcit, ke kter´emu uˇzivateli dan´a data patˇr´ı.
´ RESER ˇ SE ˇ KAPITOLA 3. TECHOLOGICKA
16
3.5 3.5.1
Distribuce aplikac´ı Google Play
Google Play je distribuˇcn´ı sluˇzba firmy Google, kter´a vznikla slouˇcen´ım sluˇzeb Android Market a Google Music. Tato sluˇzba je dostupn´a jak pˇres aplikaci pˇr´ımo ve smartphonech s operaˇcn´ım syst´emem Android, tak i pˇres webov´e rozhran´ı. Hlavn´ı ˇc´ast cel´e sluˇzby je pˇrevzata z b´ yval´eho Android marketu a m´a za u ´kol ˇs´ıˇrit aplikace pro chytr´e telefony a tablety se syst´emem Android. Tato ˇc´ ast se jmenuje Google Play Store. Google Play Store je urˇcena zejm´ena v´ yvoj´aˇr˚ um tˇret´ıch stran. Odesl´an´ı aplikace skrze tuto sluˇzbu se ˇr´ıd´ı nˇekolika podm´ınkami ˇs´ıˇren´ı aplikace, coˇz jsou zejm´ena bezpeˇcnost aplikace, pouˇzit´ ych dat a dalˇs´ı podobn´e. Tyto podm´ınky maj´ı chr´anit jak koncov´eho uˇzivatele ˇci z´akazn´ıka, tak samotn´ y Google pˇres zneuˇzit´ım. Z tohoto d˚ uvodu nov´e aplikace proch´az´ı nˇekolika automatick´ ymi kontrolami, hodnocen´ım uˇzivatel˚ u a dalˇs´ımi testy. Pro distribuci vlastn´ı aplikace sluˇzbou Google Play je tˇreba m´ıt vlastn´ı developersk´ yu ´ˇcet, kter´ y je narozd´ıl od Apple zdarma. Pod t´ımto u ´ˇctem pak lze ˇs´ıˇrit vlastn´ım kl´ıˇcem podepsanou aplikaci. Zdroj: zdrojak.cz [24]
3.5.2
App Store
App Store je distribuˇcn´ı sluˇzba firmy Apple zamˇeˇren´a zejm´ena na aplikace pro operaˇcn´ı syst´eme iOS. App Store se od Google Play Store velmi liˇs´ı z pohledu v´ yvoj´aˇre zejm´ena v otevˇrenosti v´ yvoje. Pro distribuci na App Store je nutn´e m´ıt zakoupen´ y roˇcn´ı poplatek za developersk´ y u ´ˇcet, kter´ y v roce 2013 ˇcin´ı 99 americk´ ych dolar˚ u. Oproti Googlu tak´e proch´az´ı tvrdˇs´ımi kontrolami, kter´e nejsou tak benevolentn´ı jako u aplikac´ı pro Android, coˇz m˚ uˇze b´ yt z´aroveˇ n v´ yhoda i nev´ yhoda. Apple se tˇemito kontrolami velmi u ´ˇcinˇe br´an´ı nevhodn´ ym ˇci ˇskodliv´ ym aplikac´ım, ovˇsem v´ yvoj´ aˇre tato omezen´ı nut´ı programovat urˇcit´ ym zp˚ usobem, kter´ y nemus´ı b´ yt vˇzdy nejefektivnˇejˇs´ı. Zdroj: Ofici´ aln´ı web developer.apple.com [25]
Kapitola 4
Design Tato kapitola se vˇenuje pops´ an´ı uˇzivatelsk´eho rozhran´ı, interakc´ı uˇzivatel˚ u s aplikac´ı a zp˚ usobu grafick´eho vyhodnocen´ı sesb´ıran´ ych dat.
4.1 4.1.1
Uˇ zivatelsk´ e rozhran´ı Hlavn´ı obrazovka
Obr´azek 4.1: Hlavn´ı obrazovka Hlavn´ı obrazovka je z´ aroveˇ n tak´e hlavn´ı rozcestn´ıkem a hlavn´ım informaˇcn´ım kan´ alem s informac´ı, v jak´em stavu se cel´ a aplikace nach´az´ı. Uˇzivatel dok´aˇze z obrazovky pˇreˇc´ıst sv´e identifikaˇcn´ı ˇc´ıslo, popˇr´ıpadˇe kr´ atkou zpr´avu o doporuˇcen´em dalˇs´ım kroku. Tato obrazovka obsahuje rovnˇeˇz kontextov´e menu, kter´e se aktivuje pˇr´ısluˇsnou kl´avesou mobiln´ıho telefonu.
4.1.2
Sledov´ an´ı
Obrazovka pˇri sledov´ an´ı je shodn´a s hlavn´ı obrazovkou, pouze se zmˇen´ı nˇekter´a tlaˇc´ıtka a informaˇcn´ı text, kter´ y se bude zamˇeˇrovat na informov´an´ı uˇzivatele o jeho souˇradnic´ıch.
17
18
KAPITOLA 4. DESIGN
Obr´ azek 4.2: Sledov´an´ı
4.1.3
Nastaven´ı baterie
Obr´ azek 4.3: Nastaven´ı baterie Tato obrazovka m´ a za u ´kol umoˇznit uˇzivateli nastavovat minim´aln´ı hranici stavu baterie, pˇri kter´e je aplikaci jeˇstˇe umoˇznˇeno pouˇz´ıvat GPS zaˇr´ızen´ı v telefonu. Tyto limity jsou nastaveny na hodnoty 20% baterie, 10% baterie a na moˇznost nevyp´ınat pˇri jak´emkoliv stavu baterie.
4.1.4
M´ e j´ızdy
Jde o zobrazen´ı historie j´ızd uˇzivatele. Pro vykreslen´ı trasy je vyuˇz´ıv´an bal´ık Google Maps, kter´ y umoˇzn ˇuje zpracov´ avat mapu i s uˇzivatelsk´ ymi vstupy. Pro samotn´e zobrazen´ı trasy je pouˇzita funkce popisovaˇce mapy. Samotn´e mapˇe j´ızdy pˇredch´az´ı obrazovka obsahuj´ıc´ı seznam soubor˚ u k zobrazen´ı.
4.1.5
Nastaven´ı jazyk˚ u
Jedn´a se o velmi podobnou obrazovku jako je Nastaven´ı baterie. Nastaven´ı jazyk˚ u m´a za u ´kol umoˇzn ˇit uˇzivateli volbu pouˇz´ıvan´eho jazyka. Jako defaultn´ı jazyk je pouˇzita an-
ˇ ´ ROZHRAN´I 4.1. UZIVATELSK E
19
Obr´azek 4.4: M´e j´ızdy
Obr´azek 4.5: Nastaven´ı jazyk˚ u
gliˇctina.
4.1.6
O aplikaci
Stejnˇe jako obrazovka O autorech, slouˇz´ı tato obrazovka pouze k zobrazen´ı textu. Obsah t´eto obrazovky je z´ aroveˇ n n´ avodem jak aplikaci pouˇz´ıvat.
4.1.7
O autorech
Stejnˇe jako obrazovka O aplikaci, slouˇz´ı tato obrazovka pouze k zobrazen´ı textu. Obsah t´eto obrazovky slouˇz´ı k zobrazen´ı firemn´ıch ˇci autorsk´ ych dat.
20
KAPITOLA 4. DESIGN
Obr´ azek 4.6: O aplikaci
Obr´ azek 4.7: O autorech
4.2 4.2.1
Uˇ zivatelsk´ e interakce Hlavn´ı obrazovka
Interakce s hlavn´ı obrazovkou spoˇc´ıvaj´ı hlavnˇe v odeˇc´ıt´an´ı informac´ı uˇzivatelem aplikace. Tyto informace mohou b´ yt uvedeby v podobˇe n´avod˚ u a moˇznost´ı, jak m˚ uˇze uˇzivatel pokraˇcovat d´ale, ˇci jako identifik´ ator aplikace. Dalˇs´ı velmi d˚ uleˇzitou souˇc´ast´ı hlavn´ı obrazovky je navigace v podobˇe nˇekolika tlaˇc´ıtek. Hlavn´ı obrazovka funguje jako rozcestn´ık a hlavn´ı ovl´adac´ı prvek cel´e aplikace. Odtud se m˚ uˇze uˇzivatel dostat k nastaven´ı baterie, zapnut´ı ˇci vypnut´ı sledov´ an´ı jeho pohybu, nahr´ an´ı soubor˚ u na server nebo aktivovat kontextovou nab´ıdku a pouˇz´ıt dalˇs´ı n´ astroje, jako je zobrazen´ı sv´ ych zaznamenan´ ych j´ızd, nastaven´ı jazyk˚ u popˇr´ıpadˇe zobrazen´ı informac´ı o aplikaci ˇci o autorech.
4.2.2
Sledov´ an´ı zapnuto
Obrazovka pˇri aktivn´ım sledov´ an´ı je aˇz na p´ar detail˚ u totoˇzn´a s hlavn´ı obrazovkou. Jedin´e rozd´ıly jsou v pojmenov´ an´ı a funkci tlaˇc´ıtka obstar´avaj´ıc´ıho zastaven´ı sledov´an´ı.
´ VYHODNOCEN´I 4.3. GRAFICKE
21
Pˇri zapnut´em sledov´ an´ı je vˇsak zobrazeno upozornˇen´ı, ˇze doch´az´ı k monitorov´an´ı uˇzivatele. Toto upozornˇen´ı se nach´ az´ı v panelu Androidu um´ıstˇen´em obvykle v horn´ı ˇc´asti obrazovky a i pˇri vypnut´ı ˇci zavˇren´ı aplikace je st´ale aktivn´ı. Uˇzivatel pak m˚ uˇze vyvolat celou aplikaci prost´ ym poklep´ an´ım na ikonu notifikace.
4.2.3
Nastaven´ı baterie
Nastaven´ı baterie uˇzivateli aplikace umoˇzn ˇuje zadat nejniˇzˇs´ı moˇzn´ y stav baterie, pˇri kter´em bude aplikace moci monitorovat jeho j´ızdu. Tato obrazovka dovoluje mˇenit stav baterie a n´aslednˇe tuto zmˇenu uloˇzit a zavˇr´ıt obrazovku nastaven´ı ˇci odej´ıt z t´eto obrazovky bez uloˇzen´ı. Obrazovka tak´e zobrazuje aktu´alnˇe nastavenou hladinu baterie.
4.2.4
M´ e j´ızdy
M´e j´ızdy slouˇz´ı k zobrazen´ı j´ızd uloˇzen´ ych v telefonu. Samotn´emu zobrazen´ı trasy j´ızdy pˇredch´ az´ı obrazovka se seznamem soubor˚ u pˇredstavuj´ıc´ıch jednotliv´e dny sledov´an´ı. Pro zobrazen´ı z´ aznamu z dan´eho dne lze aktivovat ˇr´adek s datem a n´azvem pˇr´ısluˇsn´eho souboru, coˇz vyvol´ a mapu vykreslenou pomoc´ı modulu Google Maps. Samotn´ a trasa je vykreslena na mapˇe pomoc´ı Google Maps a vyuˇz´ıv´a tak vˇetˇsiny dostupn´ ych funkc´ı pro tento modul. Uˇzivatel si m˚ uˇze mapu pˇribliˇzovat ˇci oddalovat, nat´aˇcet ˇci se m˚ uˇze po mapˇe pohybovat. Jako poˇc´ateˇcn´ı pozice stˇredu z´abˇeru mapy je zvolen posledn´ı zaznamenan´ y bod.
4.2.5
Nastaven´ı jazyk˚ u
Velmi obdobn´ a obrazovka jako nastaven´ı baterie, uˇzivatel zde m˚ uˇze nastavit jazyk cel´e aplikace. Toto nastaven´ı m˚ uˇze b´ yt uloˇzeno, nebo m˚ uˇze b´ yt cel´a obrazovka zavˇrena bez uloˇzen´ı zmˇen.
4.3 4.3.1
Grafick´ e vyhodnocen´ı Hlavn´ı u ´ˇ cel
Hlavn´ı u ´ˇcel grafick´eho vyhodnocen´ı je umoˇznit a zpˇr´ıstupnit uˇzivateli aplikace zpˇetnou vazbu jeho j´ızd. Uˇzivatel by mˇel ze zobrazen´ı z´aznamu poznat o jakou j´ızdu se jednalo a kde se j´ızda konala. Pro pˇrehledn´e zobrazen´ı polohy je pouˇzito rozhran´ı Google Maps pro Android, kter´e umoˇzn ˇuje pohodlnou interakci uˇzivatele aplikace s mapou. Cel´e vykreslen´ı trasy j´ızdy je v podobˇe bod˚ u, kter´e zn´azorˇ nuj´ı m´ısto, kde byla zaznamen´ana uˇzivatelova poloha. Pˇri interakci s tˇemito body m˚ uˇze b´ yt zobrazen popisek s pˇresn´ ym datem a ˇcasem, kdy byl urˇcit´ ym bod zaznamen´ an.
22
KAPITOLA 4. DESIGN
Obr´ azek 4.8: Seznam soubor˚ u k zobrazen´ı
Obr´ azek 4.9: Zobrazen´ı j´ızdy pomoc´ı Google Maps Android API v2
4.3.2
Google Maps
Google Maps je webov´ a aplikace poskytuj´ıc´ı zdarma online mapy pro nekomerˇcn´ı pouˇzit´ı spoleˇcnost´ı Google. Tato sluˇzba je pouˇz´ıv´ ana na mnoha webov´ ych str´ank´ach, ˇci dalˇs´ıch online webov´ ych sluˇzb´ ach d´ıky pˇrehledn´emu Google Maps API, kter´e umoˇzn ˇuje zpracov´avat u ´daje od uˇzivatele. Tato sluˇzba nab´ız´ı pˇrev´ aˇznˇe satelitn´ı mapy ulic, navigaci ˇci pl´anovaˇc tras jak pro automobil tak pro veˇrejnou dopravu ˇci ch˚ uzi pˇeˇsky. Pomoc´ı speci´aln´ı funkce dok´aˇze vyhled´avat nejbliˇzˇs´ı podniky a zaˇr´ızen´ı jako jsou bankomaty, restaurace apod. Pro Android existuje speci´ aln´ı rozhran´ı, kter´e se implementuje do aplikace jako cel´a knihovna. Tato knihovna je volnˇe dostupn´a a st´ahnuteln´a pomoci Android SDK Tools. Zdroj: Ofici´ aln´ı web [26]
Kapitola 5
Implementace V t´eto kapitole jsou uvedeny konkr´etn´ı pouˇzit´e technologie a popis implementace obou aplikac´ı spolu s nˇekolika pˇr´ıklady. Vzhledem k nedostatku ˇcasu na implementov´an´ı vˇsech funkc´ı ve verzi aplikace pro iPhone je tato kapitola vˇenov´ana hlavnˇe popisu implementace verze pro Android.
5.1 5.1.1
Pouˇ zit´ e technologie Jazyk JAVA
Tento jazyk je v posledn´ıch letech jedn´ım z nejpouˇz´ıvanˇejˇs´ıch jazyk˚ u v˚ ubec. D´ıky Java Virtual Machine je program napsan´ y v Javˇe pˇrenositeln´ y mezi platformami, coˇz mu velmi pˇrid´av´ a na popularitˇe. Syntaxe jazyka vych´az´ı z jazyk˚ u C a C++, jen je velmi zjednoduˇsena a upravena. Java plnˇe podporuje objektov´e programov´an´ı a sama s vyj´ımkou nˇekolika primitivn´ıch datov´ ych typ˚ u pracuje pouze s datov´ ymi typy objektov´ ymi. ’ Java je navrˇzena pro podporu s´ıt ov´ ych aplikac´ı, pr´aci se vzd´alen´ ymi soubory a dok´ aˇze pracovat s r˚ uzn´ ymi u ´rovnˇemi s´ıt’ov´eho spojen´ı, coˇz umoˇzn ˇuje vytv´aˇret v Javˇe distribuovan´e klientsk´e aplikace ˇci servery. Jak uˇz bylo v´ yˇse zm´ınˇeno, Java pro svou interpretaci vyuˇz´ıv´ a virtu´ aln´ı stroj nazvan´ y Java Virtual Machine. D´ıky tomuto interpretu je moˇzn´e zdojov´ y k´ od kompilovat na libovoln´e platformˇe, na kter´e je Java Virtual Machine k dispozici. Java je urˇcena pro psan´ı spolehliv´eho softwaru, z tohoto d˚ uvodu neumoˇzn ˇuje nˇekter´e program´ atorsk´e konstrukce, kter´e b´ yvaj´ı ˇcastou pˇr´ıˇcinou chyb. Je zde zavedena t´eˇz siln´ a typov´a kontrola, coˇz znamen´ a, ˇze veˇsker´e promˇenn´e mus´ı m´ıt definovan´ y sv˚ uj datov´ y typ. Java je jazyk v´ıce´ ulohov´ y a k tomuto u ´ˇcelu pouˇz´ıv´a vl´akna. Java je interpretovan´ y jazyk, coˇz m˚ uˇze znamenat nev´ yhodu v rychlosti zpracov´an´ı. Programy v Javˇe jsou pˇri startu pomalejˇs´ı neˇz jazyky se statickou kompilac´ı, jako je napˇr´ıklad C nebo C++. Pro zrychlen´ı cel´eho programu je vˇsak moˇznost pouˇz´ıt mechanismy JIT a HotSpot, kter´e dovoluj´ı pˇreloˇzit ˇcasto prov´adˇen´e nebo neefektivn´ı ˇc´asti k´odu do strojov´eho jazyka. Dalˇs´ı z nev´ yhod m˚ uˇze b´ yt i vˇetˇs´ı pamˇet’ov´a n´aroˇcnost pˇri bˇehu, kter´a vznik´a nutnost´ı m´ıt v pamˇeti cel´e prostˇred´ı. Java, oproti jazyku C, Java neobsahuje bezznam´enkov´e typy nebo skokov´e pˇr´ıkazy goto, toto opatˇren´ı lze vysvˇetlit snahou znemoˇznit program´atorovi ps´at problematick´e konstrukce. Zdroj: Ofici´ aln´ı web [29]
23
24
KAPITOLA 5. IMPLEMENTACE
5.1.2
Adobe Flash
Flash je grafick´ y vektorov´ y program, kter´ y po spoleˇcnosti Macromedia pˇrevzal Adobe Systems. Pouˇz´ıv´ a se pˇredevˇs´ım k tvorbˇe animac´ı, interaktivn´ıch animac´ı, prezentac´ı ˇci her. Pouˇzitelnost Flashe na internetov´e s´ıti pomohla jeho vektorov´a orientace, jej´ımˇz v´ ysledkem jsou relativnˇe mal´e soubory. Flash je nejvˇetˇs´ım konkurentem form´atu GIF, kter´ y pouˇz´ıval pro animovan´e ˇc´ asti web˚ u dˇr´ıve. Souˇc´ast´ı Flashe je programovac´ı jazyk ActionScript, kter´ y umoˇzn ˇuje rozvinut´ı animac´ı do interaktivn´ıho form´ atu. V souˇcasnosti je ActionScript uˇz pomˇernˇe vyspˇel´ y objektovˇe orientovan´ y jazyk pˇrirovn´ avan´ y syntax´ı k javascriptu. D´ıky tomuto jazyku se z Flashe st´av´a siln´ y n´astroj pro tvorbu her a interaktivn´ıch animac´ı. D´ıky mal´e velikosti v´ ystupn´eho souboru a moˇznosti spuˇstˇen´ı aplikace pˇr´ımo v oknˇe prohl´ıˇzeˇce, bez nutnosti stahov´an´ı, jsou tyto hry ˇci animace velmi popul´ arn´ı mezi n´ avˇstˇevn´ıky internetu.
5.1.3
Znaˇ ckovac´ı jazyk XML
XML, cel´ ym n´ azvem Extensible Markup Language, je obecn´ y znaˇckovac´ı jazyk vyvinut´ y a standartizovan´ y konsorciem W3C. Pouˇz´ıv´a se k snadn´emu vytv´aˇren´ı konkr´etn´ıch znaˇckovac´ıch jazyk˚ u pro r˚ uzn´e u ´ˇcely a typy dat. Zpracov´an´ı XML je podporov´ano ˇradou n´astroj˚ u a knihoven v programovac´ıch jazyc´ıch. Jazyk je urˇcen pro ukl´ad´an´ı a distribuov´an´ı dat mezi aplikacemi. Pro sv˚ uj jednoduˇse ˇciteln´ y form´at je velmi rozˇs´ıˇren´ y a pouˇz´ıv´a se tak´e pro tvorbu web˚ u jako jazyk XHTML. Mezi jeho pˇredn´ı konkurenty patˇr´ı JSON a YAML. Nejvˇetˇs´ı nev´ yhodou XML je jeho rozvl´aˇcnost, kdy k pops´an´ı jednoduch´ ych dat pouˇz´ıv´a mnoho znaˇcek, takˇze velikost v´ ysledn´eho souboru m˚ uˇze b´ yt v´ıce ovlivnˇena pouˇzit´ım znaˇckovac´ıho jazyka XML neˇz samotn´ ym objemem dat. Zdroj: Ofici´ aln´ı web [27]
5.1.4
IDE Eclipse
IDE Eclipse je open source v´ yvojov´ a platforma urˇcen´a zejm´ena pro v´ yvoj aplikac´ı v jazyce Java. Moˇznost instalace r˚ uzn´ ych doplˇ nk˚ u a plugin˚ u dovoluje mezi podporovan´e jazyky i C/C++ ˇci PHP. Pr´ avˇe pluginy jsou velk´ ym bonusem oproti konkurenˇcn´ım v´ yvojov´ ym platform´am jako je napˇr´ıklad Netbeans, kter´e nejsou zaloˇzeny na tak masivn´ı rozˇsiˇritelnosti jako Eclipse. Sama rozˇsiˇritelnost Eclipse o r˚ uzn´e pluginy m˚ uˇze b´ yt tak´e velkou nev´ yhodou, protoˇze v z´akladn´ı verzi obsahuje pouze nˇekolik n´astroj˚ u pro v´ yvoj a dalˇs´ı je nutno doinstalovat. V porovn´ an´ı s Netbeans je toto ztr´atou, protoˇze Netbeans po instalaci obsahuj´ı velk´e mnoˇzstv´ı r˚ uzn´ ych doplˇ nk˚ u. Eclipse se v posledn´ı dobˇe vyuˇz´ıv´ a nejv´ıce pro v´ yvoj aplikac´ı pro platformu Android. N´astroje pro tento syst´em nejsou obsaˇzeny defaulnˇe v ˇz´adn´em v´ yvojov´em prostˇred´ı, proto mus´ı b´ yt do v´ yvojov´ ych prostˇred´ı doinstalov´an pomoc´ı plugin˚ u. I pˇres to, ˇze existuje v´ıce plugin˚ u na r˚ uzn´ a v´ yvojov´ a prostˇred´ı, nejv´ıce se pouˇz´ıv´a n´astroj pr´avˇe do Eclipse, pojmenovan´ y Android SDK a Android ADT. Tyto n´astroje dovoluj´ı v´ yvvoj a kompilaci zdrojov´eho k´odu do spustiteln´ ych soubor˚ u, deploy neboli pˇrenesen´ı aplikace do re´aln´eho, nebo simulovan´eho zaˇr´ızen´ı zaˇr´ızen´ı Android. V neposledn´ı ˇradˇe tento plugin dok´aˇze stahovat aktu´aln´ı knihovny a API pro pr´ aci s r˚ uzn´ ymi verzemi Androidu.
ˇ E ´ TECHNOLOGIE 5.1. POUZIT
5.1.5
25
Adobe Flash Professional
Adobe Flash Professional je prostˇred´ı pro tvorbu flash aplikac´ı. Tyto aplikace nemus´ı b´ yt pouˇzity pouze na internetov´ ych str´ank´ach, ale mohou sloˇzit i jako aplikace pro mobiln´ı a jin´a zaˇr´ızen´ı. D´ıky knihovn´ am pro ActionScript je tak moˇzno vytv´aˇret aplikace pro iOS i na platformˇe Windows, coˇz z Flashe dˇel´a velmi siln´ y n´astroj.
5.1.6
Google Maps Android API v2
Google Maps Android API v2 je v jiˇz druh´a verze rozhran´ı pro pouˇzit´ı velmi rozˇs´ıˇren´ ych online map od spoleˇcnosti Google. Toto rozhran´ı dovoluje zobrazovat, zpracovat mapy, ˇci dokonce reagovat na uˇzivatelsk´e interakce. Tyto mapy mohou b´ yt volnˇe pouˇzity pro nekomerˇcn´ı u ´ˇcely. Druh´ a verze tohoto API obsahuje oproti pˇredchoz´ı verzi r˚ uzn´e moˇznosti interakce jako je nat´aˇcen´ı obrazovky ˇci multitouch ovl´ad´an´ı. Dalˇs´ı novinkou je pouˇzit´ı 3D map, d´ıky t´eto funkci je moˇzn´e vidˇet mapu v perspektivˇe.
5.1.7
GIT
Git je distribuovan´ y syst´em spr´avy verz´ı vytvoˇren´ y Linusem Torvaldsem a p˚ uvodnˇe je urˇcen pro v´ yvoj j´ adra Linuxu. Git je inspirov´an syst´emy BitKeeper a Monotone. P˚ uvodnˇe n´ızko´ urovˇ nov´ y n´ astroj se rozrostl v kompletn´ı n´astroj pro spr´avu reviz´ı. Proti jin´ ym syst´em˚ um Git umoˇzn ˇuje neline´arn´ı v´ yvoj aplikac´ı, coˇz zahrnuje tvorbu a sl´ev´an´ı vˇetv´ı, vyspˇelou navigaci a grafickou vizualizaci histori´ı projektu. Umoˇzn ˇuje t´eˇz snadnou tvorbu repozit´ aˇr˚ u a klonov´ an´ı tˇechto u ´loˇziˇst’ mezi v´ yvoj´aˇri. Git m˚ uˇze b´ yt dokonce nasazen, pomoc´ı r˚ uzn´ ych doplˇ nk˚ u, i na u ´loˇziˇstˇe n´astroj˚ u Subversion. Zdroj: Ofici´ aln´ı web [28]
5.1.8
Business-Presentation-Integration
Architektura skl´ adaj´ıc´ı se z business, presentation a integration vrstvy vznikla na z´akladˇe potˇreby implementovat architekturu MVC pro prostˇred´ı webov´ ych aplikac´ı. Tyto dvˇe architektury jsou si velmi podobn´e a mohou b´ yt ˇcasto zamˇen ˇov´any, avˇsak jsou zde principialn´ı odliˇsnosti. Jedn´ım z modern´ıch framework˚ u, kter´ y pracuje s touto architekturou, je napˇr´ıklad Nette. Prezentaˇcn´ı vrstva je velmi podobn´a vrstvˇe view, ale je obohacena o ˇradu funkc´ı, kter´e maj´ı za u ´kol zpracov´ avat data a spravovat napˇr´ıklad obsluhu formul´aˇr˚ u a vol´an´ı funkc´ı z business vrstvy. Na prvn´ı pohled tedy tato vrstva m˚ uˇze vypadat jako kombinace view a controller z architektury MVC. Business vrstva obsahuje dvˇe podvrstvy, coˇz jsou model a usecases. Podvrstva model je urˇcena pro datov´e typy, kter´e slouˇz´ı k uchov´av´an´ı informac´ı. Obsahuje funkce pro nastavov´ an´ı a z´ısk´ av´ an´ı parametr˚ u, ale nezajiˇst’uje uˇz pr´aci s nimi. Usecases je oproti modelu ˇcistˇe funkˇcn´ı vrstva, kter´ a m´ a za u ´kol zpracov´avat modelov´a data, ukl´adat je d´ıky integraˇcn´ı vrstvˇe do u ´loˇziˇstˇe ˇci je pos´ılat do presenteru a zobrazovat je. Tato vrstva tedy m˚ uˇze b´ yt kombinac´ı vrstvy controller a model z archiutektury MVC.
26
KAPITOLA 5. IMPLEMENTACE
Vrstva integration zajiˇst’uje komunikaci s datab´az´ı ˇci jin´ ym u ´loˇziˇstˇem. Tyto funkce jsou v architektuˇre MVC uloˇzeny ve vrstvˇe model. V´ ystup z integraˇcn´ı vrstvy mohou b´ yt datov´e typy z vrstvy model. D´ıky pˇrenesen´ı funkc´ı pro komunikaci s u ´loˇziˇstˇem je moˇzno pouˇz´ıvat stejn´e rozhran´ı pro naˇc´ıt´ an´ı soubor˚ u jako pro pr´aci s datab´az´ı, coˇz znamen´a, ˇze ve vyˇsˇs´ıch vrstv´ach k obˇema uloˇziˇst´ım m˚ uˇzeme pˇristupovat naprosto stejnˇe.
5.2 5.2.1
Aplikace pro Android Poˇ zadavky platformy
Vzhledem k pouˇzit´ı Google Maps API v2 je aplikace programov´ana pro verzi operaˇcn´ıho syst´emu Android, kter´ y obsahuje patˇriˇcnou verzi Android API. Konkr´etnˇe se zde jedn´a o Android API verze 10, coˇz odpov´ıd´ a OS Android 2.3.3 zvan´e Gingerbread. Pouˇzit´ı t´eto technologie znemoˇzn´ı pouˇzit´ı t´eto aplikace uˇzivately, kteˇr´ı vlastn´ı starˇs´ı verzi syst´emu. Vzhledem k pokryt´ı trhu je vˇsak u ´bytek tˇechto uˇzivatel˚ u minim´aln´ı.
5.2.2
Poˇ zadavky na implementaci
Pro z´apis dat do souboru je pouˇzito vlastn´ı form´atov´an´ı v textov´em souboru (viz Zdrojov´ y k´od 5.1). Tento zp˚ usob byl vybr´ an jako n´ahrada za zaveden´ y znaˇckovac´ı jazyk xml, kter´ y vˇsak sv´ ym zp˚ usobem znaˇcen´ı m˚ uˇze datov´e soubory rozˇs´ıˇrit nˇekolikan´asobnˇe. Dalˇs´ı moˇznost´ı bylo pouˇz´ıt JSON, kter´ y je vˇsak m´ırnˇe pomalejˇs´ı neˇz pouˇzit´ı vlastn´ıho form´atu, kter´ y je pro uloˇzen´ı dat postaˇcuj´ıc´ı. 1 2 3 4 5 6
50.08942098 N14 .35439833 E1367341176960 50.08943626 N14 .35439576 E1367341177954 50.08943592 N14 .35441331 E1367341178922 50.08944199 N14 .35442237 E1367341179948 50.08944072 N14 .35447505 E1367341180958 50.08944732 N14 .35451543 E1367341181925
Zdrojov´ y k´ od 5.1: Uk´azka form´atu dat
5.2.3
Rozdˇ elen´ı vrstev aplikace
Aplikace pro Android je postavena na architektuˇre odvozen´e od vzoru MVC, BusinessPresentation-Integration. Tato architektura je p˚ uvodnˇe urˇcen´a pro webov´e aplikace, avˇsak syst´em Android se v mnoh´em tˇemto aplikac´ım podob´a. K zobrazen´ı uˇzivatelsk´eho rozhran´ı pouˇz´ıv´a tˇr´ıdu Activity, kter´ a se funkc´ı velmi podob´a presenter˚ um napˇr´ıklad z php frameworku Nette, dokonce pouˇz´ıv´ a i ˇsablony pro zobrazen´ı ˇcist´eho view. Vˇsechny tˇr´ıdy odvozen´e od Activity se nach´ azej´ı ve vrstvˇe Presentation. Vˇetˇsina v´ ypoˇct˚ u a vnitˇrn´ı pr´ ace aplikace je obsaˇzena ve vrstvˇe Business. Jsou zde modelov´e tˇr´ıdy, tˇr´ıdy usecase a oproti webov´ ym aplikac´ım jsou zde obsaˇzeny i procesy, kter´e jsou spouˇstˇeny na pozad´ı cel´e aplikace.
5.2. APLIKACE PRO ANDROID
27
Integraˇcn´ı vrstva zde m´ a za u ´kol spr´avu soubor˚ u, konstant a u ´loˇziˇstˇe ve vnitˇrn´ı pamˇeti telefonu. D´ıky t´eto vrstvˇe lze k r˚ uzn´ ym druh˚ um u ´loˇziˇst’ pˇristupovat stejn´ ym zp˚ usobem.
5.2.4 5.2.4.1
Popis implementace jednotliv´ ych usecase Sledov´ an´ı
Tento proces bˇeˇz´ı na pozad´ı aplikace. Samotn´e sledov´an´ı zaˇcne spuˇstˇen´ım service TrackingService, kter´ y prov´ ad´ı kontroly stavu telefonu. Pokud je vˇse v poˇr´adku, spust´ı se listener GPSListener, kter´ y sleduje kaˇzdou zmˇenu polohy podle zaˇr´ızen´ı GPS. Na pˇr´ıpadnou zmˇenu t´eto polohy reaguje t´ım, ˇze z´ıskan´a data pˇrevede do tˇr´ıdy Coords, zkontroluje, zda nem´ a pˇrehr´at zvuk pomoc´ı tˇr´ıdy PlaySound a uloˇz´ı data do souboru pomoc´ı tˇr´ıdy SaveCoords. Pˇri kaˇzd´e zmˇenˇe polohy a pˇri startu sledov´an´ı je kontrolov´an stav baterie. Pokud aktu´aln´ı stav baterie klesne pod nastaven´ y limit, aplikace automatick´ y ukonˇc´ı vˇsechny procesy vyuˇz´ıvaj´ıc´ı GPS zaˇr´ızen´ı. 5.2.4.2
Nastaven´ı baterie
Nastaven´ı baterie vyuˇz´ıv´ a pˇr´ımou komunikaci mezi prezentaˇcn´ı a integraˇcn´ı vrstvou. BatterySettingActivity z´ısk´ av´ a vstupy od uˇzivatele a reaguje na nˇe sign´aly pˇr´ımo tˇr´ıdou BaterrySetting, kter´ a tyto vstupy ukl´ad´a jako nastaven´ı. 5.2.4.3
M´ e j´ızdy
Zobrazen´ı j´ızd je vyˇreˇseno naˇcten´ım vˇsech soubor˚ u ze sloˇzek reprezentuj´ıc´ıch soubory, kter´e jeˇstˇe nebyly nahr´ any na server a ty, kter´e byly na server nahr´any. Toto zobrazen´ı je vyˇreˇseno pomoc´ı samostatn´e activity RideListActivity. Samotn´a reprezentace jednoho souboru je vyˇreˇsena pomoc´ı knihovny Google Maps Android API verze 2, kter´a umoˇzn ˇuje zamˇeˇrit stˇred obrazovky na urˇcitou pozici a vykreslit jednotliv´e souˇradnice pomoc´ı datov´eho typu Marker, kter´ y je moˇzno k mapˇe pˇriloˇzit. Pˇri vykreslov´an´ı mapy je tedy naˇcten a zpracov´an zvolen´ y datov´ y soubor a jednotliv´e polohy jsou zobrazeny jako znaˇcky na mapˇe. K tˇemto znaˇck´ am je jeˇstˇe pˇrid´ ana reakce na kliknut´ı zobrazen´ım ˇcasov´eho u ´daje. 5.2.4.4
Nastaven´ı jazyk˚ u
Nastaven´ı jazyk˚ u vyuˇz´ıv´ a pˇr´ımou komunikaci mezi prezentaˇcn´ı a integraˇcn´ı vrstvou. LanguageSettingActivity z´ısk´ av´ a vstupy od uˇzivatele a reaguje na nˇe sign´aly pˇr´ımo tˇr´ıdou LanguageSetting, kter´ a tyto vstupy ukl´ad´a jako nastaven´ı. 5.2.4.5
Nahr´ an´ı dat na server
Nahr´ av´ an´ı dat na server je obdobn´ y proces jako sledov´an´ı uˇzivatele. Prvn´ı je spuˇstˇen proces UploadingService, kter´ y kontroluje samotn´e vl´akno pro nahr´av´an´ı soubor˚ u UploadingTask. Toto vl´ akno je potomek tˇr´ıdy AsyncTask, kter´a umoˇzn ˇuje snadn´e zpracov´av´ an´ı a reakci na pr˚ ubˇeh procesu. V r´amci procesu UploadingService je staˇzen nejnovˇejˇs´ı soubor se seznamem kamery a jejich um´ıstˇen´ı. Je zkontrolov´an, popˇr´ıpadˇe staˇzen, identifik´ ator
28
KAPITOLA 5. IMPLEMENTACE
cel´e aplikace. Pokud obˇe tyto operace probˇehnou v poˇr´adku, naˇcte se tˇr´ıdou GetCameraList validn´ı soubor obsahuj´ıc´ı data o kamer´ach a pot´e se pˇrejde k filtraci soubor˚ u pomoc´ı tˇr´ıdy FilterFile. V t´eto tˇr´ıdˇe je naˇcten soubor urˇcen´ y k filtraci a pot´e pomoc´ı IsCoordInShow je zkontrolov´ano zda soubor leˇz´ı v nˇejak´em z´abˇeru kamery. Pokud ano, zaˇrad´ı ho do seznamu poloh v modelov´e tˇr´ıdˇe Pass. Tˇr´ıda IsCoordInShow proch´az´ı kaˇzd´ y z´aznam v souboru kamer a porovn´av´ a s kontrolovanou souˇradnic´ı. Z´aznamy v tˇr´ıdˇe Pass jsou pot´e uloˇzeny tˇr´ıdou SaveFilteredPass jako vyfiltrovan´ y soubor urˇcen´ y k nahr´an´ı. Pokud je soubor nepr´azdn´ y, je nahr´an pomoc´ı tˇr´ıdy UploadFile a informace o pr˚ ubˇehu je aktualizov´ana.
5.2.5
Pˇ rehled tˇ r´ıd
• Business vrstva – TrackerBusinessOperationNotAllowedException Tˇr´ıda vyj´ımky nepovolen´e operace – TrackerBusinessNotFinishRightException Tˇr´ıda vyj´ımky nespr´ avnˇe proveden´e operace – BoundingRectangle Modelov´ a tˇr´ıda souˇradnic z´ abˇeru kamery – Camera Modelov´ a tˇr´ıda informac´ı o kameˇre – CameraList Modelov´ a tˇr´ıda seznamu kamer – Coord Modelov´ a tˇr´ıda jednoho bodu polohy vˇcetnˇe ˇcasu – Pass Modelov´ a tˇr´ıda seznamu bod˚ u polohy – TrackerDate Tˇr´ıda data dˇed´ıc´ı java.util.Date upraven´ a pro projekt – BatteryStatus Tˇr´ıda pro sbˇer dat o stavu baterie – GetApplicationInfoTask Tˇr´ıda pro sbˇer a aktualizaci z´ akladn´ıch informac´ı aplikace – GPSListener Tˇr´ıda pro sbˇer dat o poloze pˇr´ıstroje pomoc´ı GPS – TrackingService Tˇr´ıda ovl´ adaj´ıc´ı sledov´ an´ı polohy uˇzivatele – UploadingService Tˇr´ıda ovl´ adaj´ıc´ı nahr´ av´ an´ı dat na server – UploadingTask Tˇr´ıda pro nahr´ av´ an´ı dat na server – CheckBatteryStatus Tˇr´ıda pro kontrolu stavu baterie – CheckIsOnline Tˇr´ıda pro kontrolu pˇripojen´ı k internetu – RebuildStructure Tˇr´ıda pro kontrolu adres´ aˇrov´e struktury dat aplikace – IsCoordInPolygon Tˇr´ıda pro kontrolu zda je dan´y bod v dan´em polygonu, z´ abˇeru kamery – IsCoordInShow Tˇr´ıda pro kontrolu zda je dan´y bod v z´ abˇeru nˇejak´e kamery – PlaySound Tˇr´ıda pro pˇrehr´ an´ı zvuku – DownloadIdFromServer Tˇr´ıda pro z´ısk´ an´ı id aplikace ze serveru – DownloadResortsDefinitionFile Tˇr´ıda pro z´ısk´ an´ı aktu´ aln´ıho souboru s informacemi o poloze kamer v jednotliv´ych parc´ıch
5.2. APLIKACE PRO ANDROID
29
– CopyFile Tˇr´ıda pro kop´ırov´ an´ı souboru – DeleteFile Tˇr´ıda pro vymaz´ an´ı soubor – FilterFile Tˇr´ıda pro filtrov´ an´ı souboru – GetCameraList Tˇr´ıda pro z´ısk´ an´ı seznamu kamer odpov´ıdaj´ımu soubor k filtraci – ParseSavedCoords Tˇr´ıda pro naˇcten´ı a rozˇrazen´ı uloˇzen´ych poloh – ParseXML Tˇr´ıda pro naˇcten´ı a rozˇrazen´ı souboru s informacemi o poloze kamer v jednotliv´ych parc´ıch – GenerateFileName Tˇr´ıda pro vygenerov´ an´ı aktu´ aln´ıho jm´ena datov´eho souboru – SaveCoords Tˇr´ıda pro uloˇzen´ı dat o poloze do datov´eho souboru – SaveFilteredPass Tˇr´ıda pro uloˇzen´ı vyfiltrovan´ych dat o poloze do souboru – UploadFile Tˇr´ıda pro nahr´ an´ı souboru na server – TrackerBusinessException Obˇecn´ a tˇr´ıda vyj´ımky v business vrstvˇe • Presentation vrstva – AboutActivity Tˇr´ıda Activity pˇredstavuj´ıc´ı obrazovku o aplikaci – BatterySettingActivity Tˇr´ıda Activity pˇredstavuj´ıc´ı obrazovku Nastaven´ı baterie – CreditsActivity Tˇr´ıda Activity pˇredstavuj´ıc´ı obrazovku o autorech – LanguageSettingActivity Tˇr´ıda Activity pˇredstavuj´ıc´ı obrazovku Nastaven´ı jazyka – MainActivity Tˇr´ıda Activity pˇredstavuj´ıc´ı u ´vodn´ı obrazovku – RideListActivity Tˇr´ıda Activity pˇredstavuj´ıc´ı obrazovku se seznamem soubor˚ u/j´ızd – RideMapActivity Tˇr´ıda Activity pˇredstavuj´ıc´ı obrazovku Zobrazen´ı vlastn´ıch j´ızd • Integration vrstva – Constants Tˇr´ıda pro pr´ aci s konstantami aplikace – FileStructure Tˇr´ıda pro pr´ aci s adres´ aˇrov´ymi konstantami aplikace – Language Tˇr´ıda pro pr´ aci s jazyky – TrackerIntegrationKeyNotFoundException Tˇr´ıda vyj´ımky nenalezen´eho kl´ıˇce – TrackerIntegrationOperationNotAllowedException Tˇr´ıda vyj´ımky nepovolen´e operace – CoordFileRepository Tˇr´ıda pro pr´ aci s datov´ym souborem – BaterrySetting Tˇr´ıda pro pr´ aci s u ´loˇziˇstˇem nastaven´ı baterie – IdentificatorSetting Tˇr´ıda pro pr´ aci s u ´loˇziˇstˇem identifik´ atoru aplikace – LanguageSetting Tˇr´ıda pro pr´ aci s u ´loˇziˇstˇem nastaven´ı jazyka aplikace – ConstantRepository Obecn´ a tˇr´ıda pro pr´ aci s konstantami – FileRepository Obecn´ a tˇr´ıda pro pr´ aci se soubory – IRepository Rozhran´ı pro pr´ aci s u ´loˇziˇsti, soubory a konstantami
30
KAPITOLA 5. IMPLEMENTACE
– MemoryRepository Obecn´ a tˇr´ıda pro pr´ aci s u ´loˇziˇsti – TrackerIntegrationException Obecn´ a tˇr´ıda vyj´ımky integraˇcn´ı vrstvy • Mimo vrstvy – TrackerException Obecn´ a tˇr´ıda vyj´ımky aplikace – TrackerLog Tˇr´ıda v´ypisu pro pomoc pˇri lazen´ı
5.3 5.3.1
Aplikace pro iOS Poˇ zadavky platformy
Vzhledem k v´ yvoji v nejnovˇejˇs´ı verzi jazyka ActionScript s pouˇzit´ım knihovny AIR bylo nutn´e aplikaci testovat i na aktu´ aln´ı verzi iPhone. Bohuˇzel vˇsak tato verze nebyla pro v´ yvoj dostupn´a. Aplikace tedy nebyla testov´ ana na fyzick´em zaˇr´ızen´ı, ale pouze v emul´atoru obsaˇzen´em v prostˇred´ı Adobe Flash Professional.
5.3.2
Poˇ zadavky na implementaci
Z d˚ uvodu nedostatku ˇcasu bylo implementov´ano jen nˇekolik z´akladn´ıch funkc´ı pro spr´avn´ y bˇeh cel´e aplikace. Mezi tyto funkce patˇr´ı monitorov´an´ı uˇzivatele, ukl´ad´an´ı z´ıskan´ ych dat a jejich nahr´an´ı na server projektu. Proto bude tato verze pˇredstavena jako prototyp, kter´ y je vhodn´ y k otestov´ an´ı a ˇs´ıˇren´ı v uˇzˇs´ım kruhu uˇzivatel˚ u. Form´at uloˇzen´ ych dat je stejn´ y jako u verze pro Android.
5.3.3 5.3.3.1
Popis implementace jednotliv´ ych usecase Sledov´ an´ı
Sledov´an´ı je implementov´ ano pomoc´ı bal´ıku Geolocation, kter´ y umoˇzn ˇuje spr´avn´e sn´ım´an´ı polohy telefonu pomoc´ı zaˇr´ızen´ı GPS. 5.3.3.2
Nahr´ an´ı dat na server
Nahr´av´an´ı bylo implementov´ ano pomoc´ı bal´ıku Filesystem, kter´ y umoˇzn ˇuje pr´aci se soubory. Pro spr´avn´e nahr´ an´ı dat na server je nutn´e m´ıt nastaven´ y indetifik´ator aplikace, kter´ y se st´ahne s´am pˇri prvn´ım spuˇstˇen´ı.
5.3.4
Probl´ emy pˇ ri v´ yvoji
D´ıky komplikac´ım pˇri v´ yvoji aplikace pro iOS, kter´e vznikly d´ıky nutnosti pouˇz´ıvat nestandartn´ı n´ astroje, bylo implementov´ano jen nˇekolik z´akladn´ıch funkc´ı, kter´e zaruˇcuj´ı pouˇzitelnost aplikace. Aplikace v t´eto podobˇe je vˇsak urˇcena jako prototyp, kter´ y bude d´ale vyv´ıjen. D´ıky poznatk˚ um, kter´e jsem pˇri tvorbˇe z´ıskal, dalˇs´ı v´ yvoj t´eto verze nebudu vytv´aˇret v prostˇred´ı Flash a ActionScript, ale r´ ad bych pouˇz´ıval ofici´aln´ı programy od firmy Apple. Tyto programy jsou dostupn´e pouze pro platformu Mac a operaˇcn´ı syst´em OS X a proto jsem je nebyl schopn´ y pouˇz´ıt v r´ amci operaˇcn´ıho syst´emu Windows.
Kapitola 6
Testov´ an´ı V t´eto kapitole jsou uvedeny zp˚ usoby a pr˚ ubˇeh testov´an´ı pouˇzit´e pro v´ yvoj uˇzivatelsky pˇr´ıstupn´e aplikace. V posledn´ı ˇc´ asti je rozebr´an pr˚ ubˇeh testov´an´ı pˇr´ımo v provozu. Toto testov´an´ı prob´ıhalo na prvn´ı verzi aplikace pro operaˇcn´ı syst´em Android, kter´a byla k dispozici jiˇz v zimˇe 2012/2013 a splˇ novala z´akladn´ı n´aroky pro provoz v r´amci vˇetˇs´ıho projektu. Testov´an´ı prob´ıhalo v pilotn´ım provozu syst´emu pro automatizovan´ y z´aznam vide´ı v V´ıtkovic´ıch v Krkonoˇs´ıch.
6.1 6.1.1
N´ avrh uˇ zivatelsk´ eho rozhran´ı a testov´ an´ı bez uˇ zivatel˚ u Pr˚ ubˇ eh n´ avrhu
Testov´ an´ı aplikace bez uˇzivatel˚ u bylo pouˇzito hlavnˇe pˇri n´avrhu uˇzivatelsk´eho rozhran´ı. Proces n´ avrhu uˇzivatelsk´eho rozhran´ı se skl´adal z cykl˚ u samotn´eho n´avrhu, vytvoˇren´ı pap´ırov´eho prototypu aplikace a n´ asledn´eho pr˚ uchodu aplikac´ı. Pˇri dobr´ ych v´ ysledc´ıch bylo toto rozhran´ı implementov´ ano pˇr´ımo do aplikace a znovu otestov´ano pomoc´ı metody kognitivn´ıho pr˚ uchodu aplikac´ı. V pˇr´ıpadˇe nalezen´ı nedostatk˚ u bylo cel´e rozhran´ı upraveno a n´avrh zaˇcal od vytvoˇren´ı pap´ırov´eho prototypu.
6.1.2
Paper prototyping
Vytv´ aˇren´ı pap´ırov´ ych prototyp˚ u je pouˇz´ıv´ano pˇri poˇcateˇcn´ıch kroc´ıch tvorby uˇzivatelsk´eho rozhran´ı. D´ıky t´eto metodˇe je moˇzn´e rychle mˇenit a pˇrizp˚ usobovoat model pˇri minim´aln´ıch ˇcasov´ ych n´ akladech a u ´sil´ı. Pr´ avˇe d´ıky t´eto schopnosti je tvorba pap´ırov´ ych prototyp˚ u ˇcasto pouˇz´ıv´ ana pˇri tvorbˇe uˇzivatelsk´ ych rozhran´ı.
6.1.3
Kognitivn´ı pr˚ uchod
Kognitivn´ı pr˚ uchod je technika, kterou m˚ uˇze n´avrh´aˇr ˇci v´ yvoj´aˇr uˇzivatelsk´eho rozhran´ı testovat pr˚ uchodnost aplikace. S´ am zde vystupuje jako uˇzivatel aplikace a pln´ı pˇredem nadefinovan´e u ´koly. V jednotliv´ ych kroc´ıch si klade ot´azky, kter´e se obecnˇe t´ ykaj´ı srozumitelnosti dalˇs´ıch u ´kon˚ u, zda uˇzivatel v´ı ˇci vid´ı, jak m´a d´ale reagovat a co oˇcek´av´a. V´ ysledky z tˇechto
31
´ ´I KAPITOLA 6. TESTOVAN
32
test˚ u se vkl´adaj´ı do vyhodnocovac´ı tabulky, d´ıky kter´e m˚ uˇze n´avrh´aˇr zjistit, kter´e kroky jsou obt´ıˇzn´e ˇci ˇspatnˇe navrˇzen´e a zajistit tak jejich opravu. Toto testov´an´ı by mˇelo b´ yt pouˇz´ıv´ano sp´ıˇse bˇehem n´ avrhu rozhran´ı zejm´ena pro svou nepˇresnost, protoˇze pokud je participant stejn´a osoba jako v´ yvoj´ aˇr, pˇredpokl´ ad´ a urˇcit´ y pr˚ uchod aplikac´ı, kter´ y s´am tak´e navrhuje. Pro pˇresnˇejˇs´ı v´ ysledky je pouˇz´ıvano testov´an´ı s vzorkem re´aln´ ych uˇzivatel˚ u.
6.2
Uˇ zivatelsk´ e testov´ an´ı
Tato ˇc´ast kapitoly se vˇenuje testov´ an´ı uˇzivatelsk´e rozhran´ı pˇr´ımo uˇzivateli. C´ılem tohoto testov´an´ı bylo zjistit, v jak´e m´ıˇre se podaˇrilo vytvoˇrit uˇzivatelsky srozumiteln´e a snadno pr˚ uchodn´e uˇzivatelsk´e rozhran´ı, jeho pˇr´ıpadn´e chyby a nedostatky. Testov´an´ı samotn´e prob´ıhalo v simulovan´em prostˇred´ı, protoˇze testov´an´ı nebylo provedeno v zimˇe za re´ aln´ ych podm´ınek. Pro testov´an´ı byl tedy vyhrazen urˇcit´ y prostor na fotbalov´em hˇriˇsti, kde byla vyznaˇcena pˇrek´ aˇzka. V aplikaci byl pouˇzit soubor, kter´ y mˇel za u ´kol definovat z´abˇer kamery na pˇrek´ aˇzku. V r´amci testov´an´ı bylo toto prostˇred´ı dostaˇcuj´ıc´ı. Samotn´e testov´ an´ı prob´ıhalo na aplikaci pro platformu Android.
6.2.1
´ castn´ıc´ı testu Uˇ
K testov´an´ı bylo vybr´ ano ˇsest participant˚ u, kteˇr´ı pˇredstavuj´ı v´ ybˇer napˇr´ıˇc c´ılovou skupinou uˇzivatel˚ u aplikace. Hlavn´ım poˇzadavkem bylo, aby mˇeli zkuˇsenosti se snowboardingem ˇci lyˇzov´an´ım, byli sportovnˇe aktivn´ı a mˇeli zkuˇsenosti s operaˇcn´ım syst´emem Android, ˇci iPhone. Pˇredbˇeˇzn´e z´ ajemce jsem vyb´ıral mezi pˇr´ateli jak pomoc´ı soci´aln´ı s´ıtˇe Facebook, tak pˇr´ım´ ym osloven´ım. K v´ ybˇeru participant˚ u slouˇzil screener dotazn´ık (pˇr´ıloha screener je um´ıstˇena na CD). T´ımto zp˚ usobem jsem ze ˇctrn´ acti osloven´ ych z´ıskal ˇsest participant˚ u, kteˇr´ı splˇ novali m´e poˇzadavky. Pro testov´ an´ı jsem vybral jednu ˇzenu a pˇet muˇz˚ u ve vˇekov´ ych kategori´ıch 2025, 26-35 let, se zkuˇsenostmi se smartphone (krom jednoho, kter´eho jsem zvolil pr´avˇe kv˚ uli nulov´ ym zkuˇsenostem s tˇemito telefony). Podm´ınka pro vˇsechny vˇsak byla zkuˇsenost s j´ızdou na snowboardu ˇci na lyˇz´ıch. Vyplnˇen´e odpovˇedi vˇsech z´ajemc˚ u o testov´an´ı jsou zaznamen´any do tabulky 6.1.
Pohlav´ı muˇz
Vˇ ek 20 - 25
Vzdˇ el´ an´ı? vysokoˇskolsk´e
Povol´ an´ı? student
2
ˇzena
20 - 25
3
muˇz
26 - 35
administraˇcn´ı pracovn´ık manaˇzer prodejny
4
muˇz
26 - 35
5 6
muˇz muˇz
20 - 25 20 - 25
stˇredn´ı s maturitou stˇredn´ı bez maturity stˇredn´ı s maturitou studuj´ıc´ı vˇs studuj´ıc´ı vˇs
kod´er, grafik student student
Zkuˇ senosti se smartphonem? vlastn´ım smartphone v´ıce jak 6 mˇes´ıc˚ u vlastn´ım smartphone v´ıce jak 6 mˇes´ıc˚ u vlastn´ım smartphone v´ıce jak 6 mˇes´ıc˚ u vlastn´ım smartphone v´ıce jak 6 mˇes´ıc˚ u mal´ a zkuˇsenost vlastn´ım smartphone v´ıce jak 6 mˇes´ıc˚ u
pravidelnˇe 1-2x za 3 roky pˇr´ıleˇzitostnˇe pravidelnˇe 1-2x za 3 roky pravidelnˇe 1x roˇcnˇe pravidelnˇe 1-2x za 3 roky
ˇ ´ TESTOVAN ´ ´I 6.2. UZIVATELSK E
Poˇ rad´ı 1
Zkuˇ senosti s lyˇ zov´ an´ım ˇ ci snowboardingem? pravidelnˇe 1x roˇcnˇe
Tabulka 6.1: V´ ysledky dotazn´ıku screener - participanti, kteˇr´ı byli vybr´ ani pro testov´ an´ı
33
´ ´I KAPITOLA 6. TESTOVAN
34
6.2.2
Dotazn´ık pˇ red testov´ an´ım
Pˇred samotn´ ym testem byl kaˇzd´ y participant poˇz´ad´an o vyplnˇen´ı kr´atk´eho dotazn´ıku, tzv. pre-test (obsahem pˇriloˇzen´eho CD), kter´ ym upˇresnil informace o sv´ ych znalostech. D˚ uleˇzit´e bylo, zda m´ a zkuˇsenosti sp´ıˇse s operaˇcn´ım syst´emem Android nebo s iOS, ˇci zda aktivnˇe vyuˇz´ıv´ a snowpark˚ u. V neposledn´ı ˇradˇe jsem sb´ıral informace o tom, zda uˇzivatel pracuje s podobn´ ymi aplikacemi ˇci nikoliv. Kv˚ uli d´elce text˚ u byly ot´azky dotazn´ıku i odpovˇedi participant˚ u pˇri pˇreps´ an´ı do tabulky upraveny, pro pˇresn´e znˇen´ı ot´azek i odpovˇed´ı je nutn´e porovnat tuto tabulku s pˇr´ılohou pˇr´ısluˇsn´eho dotazn´ıku.
nepouˇz´ıv´am
1-2x za 3 roky
5
mal´ a zkuˇsenost
mal´ a zkuˇsenost
pravidelnˇe jednou roˇcnˇe
6
mal´ a zkuˇsenost
mal´ a zkuˇsenost
1x roˇcnˇe
jezd´ım pr˚ umˇernˇe 1-2x za 3 roky 1-2x za 3 roky
Pˇ r´ınosem?
v´ıce jak 6 mˇes´ıc˚ u
o jak´ em?
4
Podobn´ em projektu?
v´ıce jak 6 mˇes´ıc˚ u
Jak´ e?
3
v´ıce jak 6 mˇes´ıc˚ u nepouˇz´ıv´am
snwb
Sledovac´ı aplikace?
nepouˇz´ıv´ am
pravidelnˇe jednou roˇcnˇe nˇekolikr´at vyzkouˇsel/a nikdy jsem to nevyzkouˇsel/a nikdy nevyzkouˇsel/a
Zkuˇ senost se snowparky ˇ ci freeride
2
pravidelnˇe jednou roˇcnˇe 1-2x za 3 roky nˇekolikr´at vyzkouˇsel/a
Snowboard ˇ ci lyˇ ze?
Zkuˇ senost s lyˇ zov´ an´ım
Zkuˇ senost se snowboardingem?
Zkuˇ senost s OS iPhone
Zkuˇ senost s OS Android
nepouˇz´ıv´am
Participant
v´ıce jak 6 mˇes´ıc˚ u
nikdy jsem toto nevyuˇzil nikdy neslyˇsel/a nikdy neslyˇsel/a
ano
Runtastic (Android)
ne
nevid´ım jak
ano
iOS iPhone
ne
nev´ım
ne
nev´ım
lyˇze
nikdy nevyuˇzil/a
ano
ne
nevid´ım jak
lyˇze
p´arkr´at jsem vyzkouˇsel
ne
ne
nev´ım
lyˇze
pˇrednost pˇred sjezdovkou
ne
ne
nev´ım
snwb lyˇze
ne
Motorola Dashboard (Android)
ˇ ´ TESTOVAN ´ ´I 6.2. UZIVATELSK E
1
Tabulka 6.2: V´ ysledky pre-test dotazn´ıku
35
´ ´I KAPITOLA 6. TESTOVAN
36
6.2.3
Pr˚ ubˇ eh testov´ an´ı
Testov´an´ı prob´ıhalo ve venkovn´ıch prostor´ach mal´eho hˇriˇstˇe v are´alu petˇr´ınsk´ ych sad˚ u. K testov´an´ı byl pouˇzit telefon HTC Desire X s operaˇcn´ım syst´emem Android ve verzi 4.1.1. Uˇzivatel´e dostali telefon se spuˇstˇenou aplikac´ı a zapnut´em sn´ım´an´ı GPS. Po celou dobu sledov´an´ı byli pod dohledem moder´ atora, kter´ y t´eˇz zaznamen´aval pr˚ ubˇeh test˚ u. Kaˇzd´ y participant pˇred samotn´ ym testov´an´ım vyplnil pre-test dotazn´ık, pot´e mu byl pˇred´an seznam u ´kol˚ u. Po pˇreˇcten´ı u ´kol˚ u byl participantovi svˇeˇren smartphone a byly mu ˇcteny u ´koly a kroky, kter´e mˇel vykonat. Pˇred i bˇehem testov´an´ı byl kaˇzd´ y participant vyz´ yv´an ke koment´aˇr˚ um a vyjadˇrov´ an´ı sv´ ych myˇslenek nahlas.
6.2.4
´ Ukoly participant˚ u
1. Spuˇstˇen´ı sledov´ an´ı • Spust’te sledov´ an´ı • Simulujte pr˚ ujezd pˇres pˇrek´ aˇzku • Vrat’te se na zaˇc´ atek 2. Zmˇena kontroly stavu baterie na 10% a uloˇzen´ı • Zmˇen ˇte nastaven´ı doln´ı hranice stavu baterie na 10% a uloˇzte 3. Zmˇena jazyka z angliˇctiny na ˇceˇstinu • Zmˇen ˇte nastaven´ı jazyka z angliˇctiny na ˇceˇstinu a uloˇzte 4. Zobrazen´ı sv´e posledn´ı j´ızdy • Zobrazte svou posledn´ı j´ızdu na mapˇe 5. Zobrazen´ı informace o autorech • Zobrazte informace o autorech aplikace 6. Ukonˇcen´ı aplikace • Ukonˇcete aplikaci
6.2.5
Shrnut´ı poznatk˚ u z testov´ an´ı
Takˇrka vˇsechny testy prob´ıhaly naprosto totoˇznˇe, hlavn´ı funkce jako je spuˇstˇen´ı/zastaven´ı sledov´an´ı ˇci zmˇena stavu baterie probˇehla bez probl´em˚ u. M´ırn´e pot´ıˇze naznaˇcovalo pouˇzit´ı kontextov´eho menu. Aˇz na participanta, kter´ y nemˇel zkuˇsenosti s Androidem, dok´azali vˇsichni bez pomoci zobrazit jak sv´e j´ızdy, tak i dalˇs´ı u ´koly. Participant bez zkuˇsenost´ı s t´ımto OS byl informov´ an o moˇznostech syst´emu a pot´e mu uˇz zadan´e u ´koly neˇcinily pot´ıˇze. Jedin´ ym ˇ ast participant˚ dalˇs´ım probl´emem byl restart aplikace pro zobrazen´ı vybran´eho jazyka. C´ u nebyla ani schopna urˇcit, zda se v´ yzva zobrazila ˇci nikoliv, nevˇenovali j´ı pozornost. Pˇri pohybu byli uˇzivatel´e zpoˇc´ atku zmateni zvuky aplikace, nevˇedˇeli co znamenaj´ı ˇci vyjadˇruj´ı, po nˇekolika pokusech vˇsak zjistili jejich u ´ˇcel a po delˇs´ı dobˇe byli schopni urˇcit i zvuk ohlaˇsuj´ıc´ı konkr´etn´ı akci.
ˇ ´ TESTOVAN ´ ´I 6.2. UZIVATELSK E
6.2.6
37
Probl´ emy a n´ avrh ˇ reˇ sen´ı
Hlavn´ım nalezen´ ym probl´emem bylo pˇr´ıliˇs rychl´e zmizen´ı v´ yzvy k restartu aplikace pˇri zmˇenˇe pouˇzit´eho jazyka. Uˇzivatel´e d´ıky rychlosti nˇekdy ani nezaznamenali, ˇze byla v´ yzva zobrazena a byli velmi pˇrekvapeni, kdyˇz se jazyk okamˇzitˇe nezmˇenil. Jako ˇreˇsen´ı tohoto probl´emu by tedy bylo vhodn´e zobrazit v´ yzvu po delˇs´ı dobu a popˇr´ıpadˇe jeˇstˇe pˇridat varov´an´ı do informaˇcn´ıho textu pˇr´ımo na str´ance s nastave´ım jazyka. Dalˇs´ım probl´emem, na kter´ y toto testov´an´ı upozornilo, je matouc´ı pouˇzit´ı zvukov´ ych sign´al˚ u pˇri vjezdu a v´ yjezdu do z´abˇeru kamery. Aplikace v tˇechto situac´ıch vyd´av´a dva r˚ uzn´e zvuky. Uˇzivatel´e pˇri prvn´ım setk´an´ı s tou funkc´ı nedok´azali urˇcit d˚ uvod proˇc aplikace zvuky vyd´ av´ a a zda to souvis´ı s jejich polohou. Pokud souvislost dok´azali urˇcit, nastal probl´em rozeznat, kter´ y zvuk oznaˇcuje jakou situaci. Tento stav byli po chv´ıli ale schopni rozpoznat. Tento probl´em podle mne vznikl pod vlivem simulovan´eho prostˇred´ı. Na svahu budou uˇzivatel´e v´ıce pˇripraveni na zpˇetnou vazbu. Informace o zvuc´ıch by vˇsak mˇela b´ yt pˇrid´ana do n´ avodu obsluhy aplikace.
6.2.7
Dotazn´ık po testov´ an´ı
Dotazn´ık po testov´ an´ı, tzv. post-test (obsahem pˇriloˇzen´eho CD), participanti vyplˇ novali po testov´ an´ı. Tento dotazn´ık slouˇz´ı k urˇcen´ı m´ıry faktor˚ u, kter´e mohli participanta ovlivnit a k upˇresnˇen´ı v´ ysledk˚ u z testov´ an´ı.
Zaujala V´ as nˇ eˇ c´ım testovan´ a aplikace?
Jak jste se v programu orientoval/a?
Co V´ am ˇ cinilo nejvˇ etˇ s´ı obt´ıˇ ze?
1
pˇr´ıjemnˇe, ale m´ırnˇe nejistˇe nejistˇe, nepochopila jsem souvislost mezi ot´ azkami smartphone a lyˇzov´an´ı dobˇre
hlavnˇe u ´ˇcelem
velmi jednoduˇse
zmˇena jazyka
ano, i kdyˇz ji bohuˇzel moc nevyuˇziji
dobˇre
podle mˇe nic
ano, pokud bych byla aktivn´ı lyˇzaˇrka
cel´ y je n´apad
aplikace je velmi pˇrehledn´a
naj´ıt kontextov´e menu
pˇr´ıjemnˇe velmi nejistˇe hlavnˇe pˇri pr´aci s OS, kter´ y jsem vidˇel t´emˇeˇr poprv´e dobˇre
ne dobr´ y n´apad
velmi dobˇre s menˇs´ımi probl´emy
zmˇena jazyka kontextov´e menu
bohuˇzel pˇr´ıliˇs nelyˇzuji, ale dovedu si pˇredstavit ˇze bych aplikaci vyuˇz´ıval ne nejsem si jist´ y
zaj´ımav´ y n´apad
mysl´ım, ˇre dobˇre
pˇrep´ın´ an´ı jazyka
2
3
4 5
6
projekt zaj´ımav´ y
Tabulka 6.3: V´ ysledky post-test dotazn´ıku
Mysl´ıte si, ˇ ze by ste tento programpouˇ z´ıval/a i v re´ aln´ em prostˇ red´ı? urˇcitˇe ano
ano, r´ ad si aplikaci vyzkouˇs´ım
´ ´I KAPITOLA 6. TESTOVAN
Jak jste se bˇ ehem testov´ an´ı c´ıtil/a
38
Poˇ rad´ı
´ ´I V PROVOZU 6.3. TESTOVAN
6.3
39
Testov´ an´ı v provozu
Testov´ an´ı v provozu je urˇceno zejm´ena ke zjiˇstˇen´ı chyb cel´e aplikace, n´arok˚ u uˇzivatel˚ u na funkce a moˇznost´ı aplikace. T´ımto testov´an´ım bylo odhaleno mnoho probl´em˚ u, kter´e se t´ ykaly zejm´ena ˇspatn´e funkˇcnosti nˇekter´ ych algoritm˚ u. D´ıky nov´ ym poznatk˚ um z´ıskan´ ym z toho zp˚ usobu testov´ an´ı bylo odstranˇeno ˇspatn´e a pomal´e filtrov´an´ı dat nahr´avan´ ych na serˇ ver. Casov´ y rozsah jednotliv´ ych soubor˚ u tak mohl pˇrej´ıt z nˇekolika minut na cel´e dny, aniˇz by to bˇeh aplikace v´ yraznˇe naruˇsilo. Vznikly t´eˇz podnˇety na funkce implementovan´e ve druh´e verzi aplikace, jako je napˇr´ıklad vyd´av´an´ı zvuk˚ u pˇri vstupu ˇci v´ yjezdu ze z´abˇeru kamery. Tento druh testov´ an´ı byl pro mne velkou zkuˇsenost´ı, kdy jsem mˇel k dispozici zpˇetnou vazbu od nˇekolika uˇzivatel˚ u, kteˇr´ı aplikaci opravdu aktivnˇe pouˇz´ıvali. Velk´e firmy, pr´avˇe pˇred distribuc´ı nov´ ych program˚ u, vyuˇz´ıvaj´ı tzv. closed beta test, kdy uvoln´ı mezi urˇcit´ y okruh uˇzivatel˚ u verzi, kter´ a by mohla obsahovat relativnˇe dost chyb, ale v´ yvoj´aˇri ji nejsou schopni sami bez zpˇetn´ ych vazeb odladit. Dalˇs´ı f´az´ı je tzv. open beta test, kdy je aplikace spuˇstˇena a distribuov´ ana jako beta verze a testuje ji mnoho uˇzivatel˚ u, kteˇr´ı si ji mohou jiˇz volnˇe stahovat. Po t´eto f´ azi b´ yv´ a aplikace nasazena a distribuov´ana jako pln´a verze. Pˇri kaˇzd´e z tˇechto f´ az´ı jsou nahl´ aˇsen´e chyby opravov´ any a opraven´e aplikace jsou co nejdˇr´ıve distribuov´any. Vzhledem k potˇrebˇe rychl´e reakce na podnˇety, jejichˇz zdrojem se stalo testov´an´ı verze pro Android, byla v prvn´ı ˇc´ asti t´eto pr´ace vyv´ıjena hlavnˇe aplikace pro tento operaˇcn´ı syst´em. Tato verze sice byla d´ıky tˇemto u ´prav´am odladˇena a vytvoˇrena do velmi pokroˇcil´e podoby, ale verze pro iOS byla d´ıky tomuto postupu upozadˇena a na jej´ı v´ yvoj tak nezbyl dostatek ˇcasu.
40
´ ´I KAPITOLA 6. TESTOVAN
Kapitola 7
Z´ avˇ er C´ılem m´e bakal´ aˇrsk´e pr´ ace bylo vytvoˇren´ı aplikace pro podporu zimn´ıch sport˚ u, kter´ a by umoˇzn ˇovala sbˇer dat o pohybu uˇzivatele a n´asledn´e poskytnut´ı u ´daj˚ u k dalˇs´ımu zpracov´ an´ı. Mezi nejvˇetˇs´ı probl´emy, se kter´ ymi jsem se pˇri pr´aci na tomto projektu pot´ ykal, je zejm´ena programov´ an´ı pro platformu iPhone. Tato platforma vyˇzaduje v z´akladu v´ yvoj na stroj´ıch Mac a silnˇe znev´ yhodˇ nuje program´atory, kteˇr´ı chtˇej´ı pracovat na jin´ ych platform´ach, napˇr´ıklad Windows ˇci Linux. Tento probl´em lze pˇrekonat pouˇzit´ım nˇejak´eho z SDK, kter´e by umoˇzn ˇovalo takzvan´ y cross-platform v´ yvoj, tedy v´ yvoj napˇr´ıˇc platformami. Bˇehem pr´ace jsem se vˇsak setkal s velk´ ymi probl´emy pˇri programov´an´ı s tˇemito SDK. Nejvˇetˇs´ım probl´emem je velk´ y poˇcet chyb v takto mlad´ ych v´ yvoj´aˇrsk´ ych n´astroj´ıch, dalˇs´ım je mal´a podpora a slab´a dokumentace i profesion´ alnˇe pouˇz´ıvan´ ych SDK. Dalˇs´ı moˇznost´ı byl pro mne export jiˇz hotov´ ych zdrojov´ ych k´ od˚ u v Javˇe pro platformu iPhone, avˇsak i zde jsem narazil na ˇradu chyb, kter´e jsem s d˚ uvodu nedostatku ˇcasu nebyl schopen vˇcas vyˇreˇsit. Proto jsem se uch´ ylil k programov´an´ı t´eto aplikace ve Flashi. Verze aplikace pro Android je jiˇz vhodn´a k distribuci a lze ji nal´ezt na serveru Google Play pod n´azvem net-o-peer Tracker App, kde je volnˇe staˇzen´ı. Tato verze aplikace byla testov´ ana v pilotn´ım provozu syst´emu pro automatizovan´ y z´aznam vide´ı ve V´ıtkov´ıch v Krkonoˇs´ıch. V r´amci testov´ an´ı byly vzneseny poˇzadavky na zdokonalen´ı a doplnˇen´ı funkc´ı aplikace. Druh´ a verze t´eto aplikace je prozat´ım pl´anov´ana jako fin´aln´ı, ale v bl´ızk´e budoucnosti se poˇc´ıt´ a s jej´ım doplnˇen´ım o funkce umoˇzn ˇuj´ıc´ı ˇcten´ı a prohl´ıˇzen´ı vlastn´ıch videi´ı a dalˇs´ı. Aplikace pro platformu iPhone existuje pouze ve verzi prototypu, kter´ y je st´ale ve v´ yvoji. Jiˇz nyn´ı ale splˇ nuje z´ akladn´ı poˇzadavky na funkcionalitu aplikace. Kv˚ uli nedostatku ˇcasu a komplikac´ım pˇri hled´ an´ı vhodn´eho v´ yvojov´eho postupu je verze pro iOS zaostal´a oproti verzi pro Android. I pˇres velk´e komplikace s platformou iOS se mi podaˇrilo hlavn´ı c´ıle bakal´aˇrsk´e pr´ace splnit a vytvoˇrit tak aplikaci, kter´ a je vhodn´a pro podporu zimn´ıch sport˚ u v r´amci vˇetˇs´ıch projekt˚ u. V r´amci t´eto bakal´ aˇrsk´e pr´ ace tak byly vytvoˇreny dvˇe aplikace, verze pro Android je plnˇe funkˇcn´ı a pˇripraven´ a k distribuci pomoc´ı Google Play, verze pro iPhone existuje ve verzi prototypu, kter´ y m˚ uˇze b´ yt ˇs´ıˇren uˇz nyn´ı, ale bylo by vhodn´e jej dopracovat do stejn´e podoby jako je aplikace pro Android. Pro distribuci iOS aplikace je tˇreba vygenerovat, pomoc´ı n´astroje Adobe Flash, spustiteln´ y soubor .ipa, podepsan´ y distribuˇcn´ım kl´ıˇcem. Verze pro Android lze podepsat i po vygenerov´ an´ı instalaˇcn´ıho souboru.
41
42
´ ER ˇ KAPITOLA 7. ZAV
Literatura [1]Google Play Store play.google.com/store [online]. 2010, 1. bˇrezen [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store [2]The Ski Channel www.theskichannel.com/ [online]. [cit. 2013-03-15]. Dostupn´e z: http://www.theskichannel.com/ [3]Matchstick Productions skimovie.com/ [online]. [cit. 2013-03-15]. Dostupn´e z: http://www.skimovie.com/ [4]Horsk´ a sluˇzba play.google.com/store [online]. 2013, 8. u ´nor [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=cz.eman.android.hosl [5]Runtastic play.google.com/store [online]. 2013, 26. duben [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=com.runtastic.android.pro2 [6]Ski info play.google.com/store [online]. 2013, 22. duben [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=cz.ulikeit.ski [7]iSki play.google.com/store [online]. 2013, 29. leden [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=intermaps.iskiczech [8]Ski Trails Maps play.google.com/store [online]. 2011, 22. prosinec [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=com.almeesoft.fullresorts.activities [9]Mobile Avalanche Safety Tool play.google.com/store [online]. 2011, 11. duben[cit. 201305-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=com.fitclimb.android [10]Meteor - snˇehov´e zpravodajstv´ı play.google.com/store [online]. 2013, 12. duben [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=org.androworks.snih [11]Snowhit play.google.com/store [online]. 2013, 13. leden [cit. 2013-05-10]. Dostupn´e z: https://play.google.com/store/apps/details?id=net.skimap [12]Wikipedia, smartphone wikipedia.org [online]. 2013, 8. bˇrezen [cit. 2013-05-20]. Dostupn´e z: http://cs.wikipedia.org/wiki/Smartphone
43
44
LITERATURA
[13]Ondˇrej Fiala, Co je to vlastnˇe “Smartphone”? smartphone.blog.mobilmania.cz [online]. 2009, 29. kvˇeten [cit. 2013-05-10]. Dostupn´e z: http://smartphone.blog.mobilmania.cz/2009/05/co-je-to-vlastne-smartphone/ [14]Mark Brownlow, Smartphone statistics and market share email-marketing-reports.com [online]. 2012, ˇr´ıjen [cit. 2012-11-12]. Dostupn´e z: http://www.email-marketing-reports.com/wireless-mobile/smartphone-statistics.htm [15]Pavel Petˇrek, V´ yvoj pro Android – I zdrojak.cz [online]. 2010, 10. kvˇeten [cit. 2012-1112]. Dostupn´e z: http://www.zdrojak.cz/clanky/vyvoj-pro-android-i/ [16]Pavel Petˇrek, V´ yvoj pro Android – II zdrojak.cz [online]. 2010, 17. kvˇeten [cit. 2012-1112]. Dostupn´e z: http://www.zdrojak.cz/clanky/vyvoj-pro-android-ii/ [17]Petr Reichl, V´ yvoj aplikac´ı pro iPhonezdrojak.cz [online]. 2010, 20. leden [cit. 2013-0117]. Dostupn´e z: http://www.zdrojak.cz/clanky/vyvoj-aplikaci-pro-iphone/ [18]Marmalade madewithmarmalade.com [online]. 2012 [cit. 2013-02-10]. Dostupn´e z: http://www.madewithmarmalade.com/ [19]J2ObjC code.google.com/p/j2objc [online]. 2012, 10. z´aˇr´ı [cit. 2013-02-10]. Dostupn´e z: https://code.google.com/p/j2objc/ [20]In-the-box in-the-box.org [online]. 2011, 6. ˇcerven [cit. 2013-02-10]. Dostupn´e z: http://www.in-the-box.org/ [21]ShiVa3D shivaengine.com [online]. 2013, 15. kvˇeten [cit. 2013-02-10]. Dostupn´e z: http://www.shivaengine.com/developer/ [22]Dragonfire SDK dragonfiresdk.com [online]. 2012 [cit. 2013-02-10]. Dostupn´e z: http://www.dragonfiresdk.com/ [23]Unity3D unity3d.com [online]. 2013 [cit. 2013-02-10]. Dostupn´e z: http://unity3d.com/unity/ [24]Matˇej Koneˇcn´ y, Vyv´ıj´ıme pro Android: Nahrav´ame aplikaci na Google Play Store zdrojak.cz [online]. 2012, 7. z´ aˇr´ı [cit. 2012-11-08]. Dostupn´e z: http://www.zdrojak.cz/clanky/vyvijime-pro-android-nahravame-aplikacina-google-play-store/ [25]iOS Developer Program developer.apple.com/programs/ios/ [online]. 2013 [cit. 2013-0110]. Dostupn´e z: https://developer.apple.com/programs/ios/
LITERATURA
45
[26]Google Maps Android API v2 developers.google.com/maps/documentation/android/start [online]. 2013, 12. bˇrezen [cit. 2013-04-15]. Dostupn´e z: https://developers.google.com/maps/documentation/android/start [27]XML w3.org [online]. 2012, 24. leden [cit. 2013-05-20]. Dostupn´e z: http://www.w3.org/XML/ [28]Chacon, Scott Pro GIT vydal CZ.NIC, z.s.p.o., 2009, Edice CZ.NIC, ISBN 978-80904248-1-4. ˇ e Budˇejovice: Kopp, 2007, [29]HEROUT, Pavel. Uˇcebnice jazyka Java. 3., rozˇs. vyd. Cesk´ 381 s. ISBN 978-80-7232-323-4. [30]Christopher Lloyd, Cocotron cocotron.org [online]. 2008 [cit. 2013-02-10]. Dostupn´e z: http://www.cocotron.org/ [31]Gnustep gnustep.org [online]. 2007, 2. duben [cit. 2013-02-10]. Dostupn´e z: http://www.gnustep.org/ [32]Developer Android developer.android.com [online]. 2013 [cit. 2013-05-24]. Dostupn´e z: http://developer.android.com [33]StackOverFlow stackoverflow.com [online]. 2013 [cit. 2013-05-24]. Dostupn´e z: http://stackoverflow.com/ [34]Adobe Flash Help help.adobe.com [online]. 2013 [cit. 2013-05-24]. Dostupn´e z: http://help.adobe.com/en US/FlashPlatform/reference/actionscript/3/index.html
46
LITERATURA
Pˇ r´ıloha A
Slovn´ıˇ cek pojm˚ u Adobe Flash Prostˇred´ı pro v´ yvoj flash aplikac´ı Adobe Flash Builder Prostˇred´ı pro v´ yvoj flash aplikac´ı Android Operaˇcn´ı syst´em pro smartphony zaloˇzen´ y na unixov´em j´adru Apple Americk´ a firma zab´ yvaj´ıc´ı se v´ yvojem poˇc´ıtaˇc˚ u a aplikac´ı ActionScript Jazyk pouˇz´ıvan´ y pro tvorbu flash aplikac´ı BitKeeper Verzovac´ı syst´em C/C++ Programovac´ı jazyk, C++ vych´az´ı z jazyka C Cocotron Knihovna pro v´ yvoj aplikac´ı pro Mac Dalvik VM Virtu´ aln´ı stroj pro Android Eclipse V´ yvojov´e prostˇred´ı Feedback Zpˇetn´ a vazba Framework Software pro podporu v´ yvoje aplikac´ı Freeride Voln´ a j´ızda, styl lyˇzov´ an´ı/snowboardingu, kdy je jezdci umoˇznˇeno pˇrekon´avat r˚ uzn´e pˇrek´ aˇzky Gingerbread Verze OS Android GNUStep Knihovna pro v´ yvoj aplikac´ı pro Mac HTC Desire X Typ telefonu iPad Tablet firmy Apple iPhone Smartphone firmy Apple Linux Rodina voln´ ych operaˇcn´ıch syst´em˚ u Monoplatformn´ı v´ yvoj V´ yvoj pro jednu platformu z´aroveˇ n Monotone Verzovac´ı syst´em Multiplatformn´ı v´ yvoj V´ yvoj pro v´ıce platforem z´aroveˇ n Multitouch V´ıce-dotykov´ a interakce, nejˇcastˇejˇs´ı spojen´ı je v´ıcedotykov´a obrazovka Netbeans V´ yvojov´e studio Objectiv C Programovac´ı jazyk, vych´az´ı z jazyka C Operace Jeden u ´kon procesu
47
48
ˇ ´ILOHA A. SLOVN´ICEK ˇ ˚ PR POJMU
OS X Operaˇcn´ı syst´em v´ yv´ıjen´ y firmou Apple pro Mac ´ Participant Uˇcastn´ık testu Perspektiva Optick´ y jev pracuj´ıc´ı se vzd´alenost´ı a velikost´ı objekt˚ u Platforma Hardware ˇci software prostˇred´ı Plugin Doplnˇek Prototype Vzorov´ y ˇci pokusn´ y v´ yrobek Rozhran´ı Z´akladn´ı struktura u objektov´eho programov´an´ı Sklonometr N´ astroj pro mˇeˇren´ı sklonu svahu Smartphone Chytr´ y telefon Snowpark M´ısto upraven´e pro jezdce, kteˇr´ı si chtˇej´ı vyzkouˇset pˇrekon´av´an´ı r˚ uzn´ ych pˇrek´aˇzek Soci´ aln´ı s´ıt’ Internetov´ y port´ al vˇenovan´ y navazov´an´ı a udrˇzov´an´ı soci´aln´ıch vztah˚ u Subversion Verzovac´ı syst´em Tˇ r´ıda Z´akladn´ı struktura u objektov´eho programov´an´ı Unix Operaˇcn´ı syst´em Videocoaching Tr´enov´ an´ı zpˇetnou vazbou pomoc´ı videa Vl´ akno Proces Wifi Bezdr´atov´e pˇripojen´ı k s´ıti Windows Operaˇcn´ı syst´em firmy Microsoft Workflow Schema sloˇzitˇejˇs´ıho procesu
Pˇ r´ıloha B
Seznam zkratek API Application Programming Interface 3D Three-Dimensional APP Application, Aplikace GPS Global Positioning System IDE Integrated Development Environment iOS iPhone Operation System JSON JavaScript Object Notation MVC Model-View-Controller OS Operation System PHP Hypertext Preprocessor SDK Software Development Kit SMS Short Message Service Snwbd Snowboard UI User Interface W3C World Wide Web Consorcium WIFI Wireless Fidelity XHTML Extensible Hypertext Markup Language XML Extensible Markup Language YAML Ain’t Markup Language
49
50
ˇ ´ILOHA B. SEZNAM ZKRATEK PR
Pˇ r´ıloha C
Instalaˇ cn´ı a uˇ zivatelsk´ a pˇ r´ıruˇ cka Instalaˇcn´ı a uˇzivatelsk´ a pˇr´ıruˇcka aplikace pro Android.
C.1
Instalaˇ cn´ı pˇ r´ıruˇ cka
Aplikace nen´ı pˇredem urˇcena pouze pro jedin´ y projekt a pro byl uˇz pˇri jej´ım v´ yvoji kladen d˚ uraz na snadnou upravitelnost url adres server˚ u a text˚ u v aplikaci pouˇzit´ ych. Tyto u ´pravy lze prov´est otevˇren´ım pˇr´ısluˇsn´ ych soubor˚ u a upraven´ım konstant dle n´avodu.
C.1.1
´ Uprava adres zdrojov´ ych server˚ u
Pro zmˇenu zdrojov´ ych server˚ u je tˇreba pˇrepsat konstanty v souboru Constants.java. • serverUpload Adresa skriptu ˇci serveru pro pˇr´ıjem datov´ych soubor˚ u z aplikace • serverId Adresa skriptu ˇci serveru generuj´ıc´ıho identifikator aplikace • serverResorts Adresa skriptu ˇci serveru pro z´ısk´ an´ı nejnovˇejˇs´ıho souboru se seznamem kamer
1 2
3
4
5 6
private void setUpValues () { this . setValueByKey (" serverUpload " , " http :// api . net -o - peer . com / rideup / gps / upload . php ") ; this . setValueByKey (" serverId " , " http :// api . net -o - peer . com / rideup / init / get - tdid . php ") ; this . setValueByKey (" serverResorts " , " http :// api . net -o - peer . com / resorts / NOPResorts . xml ") ; this . setValueByKey (" batteryDefault " , "20") ; }
Zdrojov´ y k´od C.1: Constants.java
51
ˇ ´ILOHA C. INSTALACN ˇ ´I A UZIVATELSK ˇ ´ PR ˇ ´IRUCKA ˇ PR A
52
C.1.2
´ Uprava text˚ u a jazykov´ ych mutac´ı
Pro zmˇenu text˚ u ˇci jejich jazykov´ ych mutac´ı je tˇreba pˇrepsat konstanty v souboru Language.java. Tyto zmˇeny jsou sloˇzitˇejˇs´ı neˇz nastaven´ı server˚ u hlavnˇe v rozdˇelen´ı text˚ u na defaultn´ı texty, kter´e se nepˇrekl´ adaj´ı a na texty pˇreklad˚ u. Texty pˇreklad˚ u je moˇzn´e upravovat stejn´ ym zp˚ usobem jako konstanty ze souboru Constants.java, ale v pˇr´ıpadˇe z´ajmu o dalˇs´ı jazykovou mutaci je doporuˇcen´e vyˇckat na dalˇs´ı ofici´aln´ı aktualizace aplikace. Pro velk´ y poˇcet moˇzn´ ych textov´ ych konstant zde nebudou pops´any.
C.2
Uˇ zivatelsk´ a pˇ r´ıruˇ cka
Uˇzivatelsk´a pˇr´ıruˇcka se vˇenuje pomoci uˇzivatel˚ um v poˇc´atc´ıch pr´ace s aplikac´ı, naveden´ı k z´akladn´ım ˇcinnostem a doporuˇcen´ım ohlednˇe pouˇz´ıv´an´ı aplikace.
C.2.1
N´ aroky a poˇ zadavky aplikace
Vzhledem k pouˇz´ıv´ an´ı knihovny Google Maps je pro instalaci a spr´avn´e spuˇstˇen´ı aplikace nutn´a minim´aln´ı verze operaˇcn´ıho syst´emu Android v2.3.3 Gingerbread. Pro procesy aplikace je potˇreba, aby byla v telefonu instalov´ ana SD karta, na kterou se budou nasn´ıman´a data ukl´adat. Dalˇs´ı d˚ uleˇzit´e podm´ınky pro spr´avn´ y chod aplikace je internetov´e pˇripojen´ı, d´ıky kter´emu se aplikace aktualizuje a zaˇr´ızen´ı GPS, kter´e zaznamen´av´a polohu uˇzivatele.
C.2.2 C.2.2.1
Jednotliv´ eu ´ kony Spojen´ı dat z aplikace se serverem
K tomuto u ´ˇcelu slouˇz´ı identifik´ ator aplikace, kter´ y je po staˇzen´ı zobrazen na u ´vodn´ı obrazovce. Pokud na u ´vodn´ı obrazovce zobrazen nen´ı, je moˇzn´e, ˇze se st´ahl, ale nezobrazil. V tomto pˇr´ıpadˇe je k zobrazen´ı nutn´e aplikaci restartovat. Tento identifik´ator pot´e lze pouˇz´ıt pro naˇcten´ı dat na webu projektu. Tento proces m˚ uˇze b´ yt u kaˇzd´eho projektu jin´ y. C.2.2.2
Z´ısk´ an´ı identifik´ atoru
Identifik´ator aplikace je z´ısk´ av´ an pˇri dvou momentech. Prvn´ı moment je pˇri dostupn´em internetov´em pˇripojen´ı pˇri zapnut´ı aplikace, v t´eto chv´ıli se kontroluj´ı aktualizace a stahuje nejnovˇejˇs´ı soubor kamer. Druh´ y takov´ yto moment nast´av´a pˇri nahr´av´an´ı dat na server, kdy je nutn´e pˇripojen´ı k internetu. C.2.2.3
Sledov´ an´ı
Sledov´an´ı je ovl´ ad´ ano pˇr´ımo z hlavn´ı obrazovky tlaˇc´ıtkem k tomu urˇcen´ ym. T´ımto tlaˇc´ıtkem se tak´e sledov´ an´ı vyp´ın´ a. Ke sledov´an´ı je potˇreba zapnut´e zaˇr´ızen´ı GPS, kter´e umoˇzn ˇuje z´ıskat souˇradnice aktu´ aln´ı pozice uˇzivatele. Tento proces bˇeˇz´ı na pozad´ı.
ˇ ´ PR ˇ ´IRUCKA ˇ C.2. UZIVATELSK A
C.2.2.4
53
Nahr´ av´ an´ı dat na server
D˚ uleˇzit´ a souˇc´ ast k z´ısk´ an´ı zpˇetn´e vazby je nahr´av´an´ı dat z´ıskan´ ych aplikac´ı na server. Ke spuˇstˇen´ı procesu, kter´ y bˇeˇz´ı na pozad´ı, slouˇz´ı tlaˇc´ıtko Nahr´at data na hlavn´ı obrazovce. Pro tento u ´kon je tˇreba aby mˇela aplikace pˇr´ıstup na internet. C.2.2.5
Nastaven´ı baterie
Hlavn´ı obrazovka umoˇzn ˇuje nastavovat minim´aln´ı u ´roveˇ n nabit´ı baterie, kdy je jeˇstˇe moˇzn´e, aby aplikace vyuˇz´ıvala zaˇr´ızen´ı GPS. Toto opatˇren´ı je zejm´ena bezpeˇcnostn´ı, protoˇze na hor´ ach m˚ uˇze b´ yt i ˇzivotnˇe d˚ uleˇzit´e, aby mˇel uˇzivatel moˇznost kontaktovat z´achrannou sluˇzbu ˇci dalˇs´ı akce, kter´e mu mohou pomoci pˇreˇz´ıt krizovou situaci. Proto je i defaultn´ı nastaven´ı baterie zvoleno na 20%, pro pˇr´ıpad, ˇze uˇzivatel zaˇcne aplikaci vyuˇz´ıvat ihned, bez nastavov´ an´ı. Po vybr´ an´ı pˇr´ısluˇsn´eho stavu baterie lze obrazovku opustit bez uloˇzen´ı, ˇci s uloˇzen´ım zmˇen. C.2.2.6
Nastaven´ı jazyka
Nastaven´ı jazyka lze nal´ezt v kontextov´em menu, kter´e se vyvol´av´a vˇetˇsinou hardwarov´ ym tlaˇc´ıtkem telefonu. Nastaven´ı jazyka je obdobn´a obrazovka jako nastaven´ı baterie. Po vybr´ an´ı pˇr´ısluˇsn´eho jazyka lze obrazovku opustit bez uloˇzen´ı, ˇci s uloˇzen´ım zmˇen. C.2.2.7
Zobrazeni vlastn´ıch j´ızd
Pˇri grafick´em zobrazen´ı sv´ ych j´ızd lze pouˇz´ıt funkci M´e j´ızdy v kontextov´em menu. Nejprve se vyvol´ a obrazovka, kter´ a vyb´ız´ı k v´ ybˇeru souboru ˇci dne, kter´ y m´a b´ yt zobrazen. Po vybr´ an´ı souboru je zobrazena mapa zamˇeˇren´a na posledn´ı naˇcten´ y bod, kter´a zobraz´ı vˇsechny zaznamenan´e body pomoc´ı ˇzlut´ ych teˇcek. C.2.2.8
Ukonˇ cen´ı aplikace
Spr´ avn´e ukonˇcen´ı aplikace je vypnut´ı sledov´an´ı a pot´e pomoc´ı kontextov´eho menu zvolit poloˇzku Exit.
54
ˇ ´ILOHA C. INSTALACN ˇ ´I A UZIVATELSK ˇ ´ PR ˇ ´IRUCKA ˇ PR A
Pˇ r´ıloha D
Obsah pˇ riloˇ zen´ eho CD Pˇriloˇzen´e CD m´ a tuto strukturu: / projekt – sloˇzka s projekty android a ios applications – sloˇzka s instalaˇcn´ımi soubory aplikac´ı sources android – sloˇzka se zdrojov´ymi k´ ody aplikace pro Android iphone – sloˇzka se zdrojov´ymi k´ ody aplikace pro iPhone test – sloˇzka s pˇr´ılohami z testov´ an´ı krejcon3 2013bach.pdf – PDF verze tohoto textu psan´ a v LATEX
55