Univerzita Hradec Králové Fakulta informatiky a managementu Katedra informatiky a kvantitativních metod
Návrh a realizace mobilní aplikace pro trénink TRX Bakalářská práce
Autor: Kristýna Kamenická Studijní obor: Aplikovaná informatika Vedoucí práce: doc. Ing. Filip Malý, Ph.D.
Hradec Králové
duben 2015
Prohlášení:
Prohlašuji, že jsem bakalářskou práci zpracovala samostatně a s použitím
uvedené literatury.
V Hradci Králové dne 29.4.2015
Kristýna Kamenická
Poděkování:
Ráda bych touto cestou poděkovala vedoucímu své bakalářské práce doc. Ing. Filipu
Malému, Ph.D. za vstřícnost a cenné rady během zpracovávání této práce.
Anotace Bakalářská práce se zaměřuje na postupný vývoj mobilní aplikace pro platformu
Android. Dále jsou vybrány a popsány důležité kroky a doporučení při vývoji mobilních
aplikací. Na základě získaných znalostí je popsán vývoj vlastní aplikace pro trénink TRX podle zadaných požadavků. K programové části je využíváno Android Studio a další
doplňkové aplikace, které jsou následně popsány. Práce popisuje řešení jednotlivých
problémů, které vyvstaly při vývoji aplikace. Je rozebráno a zpracováno vhodné uživa-
telské rozhraní aplikace a jeho přizpůsobení na vícero zařízení. Práce dále popisuje
konečnou propagaci aplikace na Google Play. Součástí práce je také uživatelská doku-
mentace vytvořené aplikace.
Annotation Title: Design and realization of mobile application for TRX training This Bachelor Thesis focuses on gradual development of mobile application for
Android platform. In this thesis there are selected and described steps and recommen-
dations which are important for development of mobile applications. Application for TRX training was created on the the basics of theoretical part of thesis and according on
specific requirements. For programming part was used Android Studio and others addi-
tional applications, which are described below. This thesis describes solutions to
individual problems encountered during development of the application. Is analyzes and
creates suitable user interface and it's adaptation for multiple devices. The work descri-
bes the final promotion of application on Google Play. The work also included user documentation of created application.
Obsah 1
2
Úvod.............................................................................................................................................................. 1
1.1
1.2
Cíl práce .............................................................................................................................................. 1 Metodika zpracování ..................................................................................................................... 1
Popis zkoumané oblasti ........................................................................................................................ 3
2.1
Od historie po současnost mobilních aplikací ..................................................................... 5
2.1.1
2.1.2
2.2
Budoucnost ........................................................................................................................... 7
TRX ....................................................................................................................................................... 7
2.2.1
Vznik a účel ........................................................................................................................... 7
2.2.3
Konstrukce ............................................................................................................................ 8
2.2.2
2.3
Trénink s TRX ....................................................................................................................... 8
Operační systém Android ............................................................................................................ 9
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5 3
Využití ..................................................................................................................................... 6
2.3.6
Vznik ........................................................................................................................................ 9 Charakteristika OS ............................................................................................................ 10 Architektura OS ................................................................................................................. 11 Struktura aplikace ............................................................................................................ 12
Historie verzi ...................................................................................................................... 14 Bezpečnost .......................................................................................................................... 15
Analýza a návrh aplikace ................................................................................................................... 16
3.1
Příprava ........................................................................................................................................... 17
3.1.1
3.1.2
Průzkum trhu a cílové skupiny.................................................................................... 18
Tvorba uceleného podnikatelského plánu.............................................................. 18
3.2
Návrh aplikace .............................................................................................................................. 19
3.4
Android Developers .................................................................................................................... 22
3.3
Vzhled aplikace ............................................................................................................................. 20
3.5
SDK .................................................................................................................................................... 23
3.7
Zálohování a verzování .............................................................................................................. 23
3.6 3.8
4
3.9
Android studio .............................................................................................................................. 23 Testování aplikace ....................................................................................................................... 24
Propagace a zavedení ................................................................................................................. 24
Implementace ........................................................................................................................................ 25
4.1
Myšlenka ......................................................................................................................................... 26
4.3
Požadavky ....................................................................................................................................... 26
4.2
4.4
4.5
4.6
4.7
4.8
4.9
Rešerše, srovnání a průzkum trhu ........................................................................................ 26 Použité technologie a jejich zhodnocení ............................................................................. 26
Vzhled a struktura aplikace ..................................................................................................... 28 Funkcionalita ................................................................................................................................. 30 Testování ......................................................................................................................................... 34
Propagace a zavedení ................................................................................................................. 34
Využití............................................................................................................................................... 35
4.10 Uživatelská dokumentace ......................................................................................................... 36 4.10.1 Seznámení............................................................................................................................ 36
4.10.2 Funkce ................................................................................................................................... 36 5
6
4.10.3 Podpora zařízení ............................................................................................................... 36
Závěr .......................................................................................................................................................... 37
5.1
5.2
Shrnutí výsledků .......................................................................................................................... 37
Doporučení ..................................................................................................................................... 38
Seznam použité literatury ................................................................................................................. 39
Seznam obrázků Obr. 1 Zjednodušený životní cyklus aktivity ...................................................................................... 13 Obr. 2 Výřez z webové aplikace Adobe Color CC .............................................................................. 29
Obr. 3 Ikona aplikace zpracovaná nástrojem Android Asset Studio ......................................... 30 Obr. 4 Seznam cviků vytvořený na dvou samostatných fragmentech...................................... 31
Obr. 5 Implementace časovače CutDownTimer ................................................................................ 32
Seznam tabulek Tabulka 1 Architektura operačního systému Android ................................................................... 12
Tabulka 2 Historie verzí platformy Android. ..................................................................................... 15
Seznam zdrojových kódů Zdrojový kód 1 Propojení dat s aplikací .............................................................................................. 28 Zdrojový kód 2 Implementace SubMenu ............................................................................................. 30 Zdrojový kód 3 Editace souboru pro zobrazení seznamu............................................................. 31 Zdrojový kód 4 Předávání dat mezi jednotlivými aktivitami ...................................................... 33
Zdrojový kód 5 Nastavení rodičovské aktivity v souboru AndroidManifest.xml ................ 33
Seznam Grafů
Graf 1 Počet nainstalovaných aplikací v telefonu z roku 2014 ..................................................... 6 Graf 2 Verze softwaru na používaných zařízeních Android v únoru 2015 ............................ 14
1 Úvod Se stále se zvyšujícím výkonem mobilních zařízení a s příchodem chytrých telefonů
a tabletů na trh, se otevřely dveře mnohým možnostem. Specifickou vlastností tzv. chyt-
rého telefonu je umožnění třetím stranám instalovat do zařízení aplikace. Tím lze následně zásadně ovlivnit vlastnosti telefonu.
Zásadní rozdíl oproti starším telefonům je operační systém a hardwarové vybavení
telefonu. Mezi nejvíce známé platformy patří např. iOS, Android, Windows Phone a Symbian. Následující kapitoly jsou zaměřeny výhradně na operační systém Android.
Práce se zabývá jednotlivými aspekty ve vývoji mobilní aplikace pro platformu Android. Teoretická část práce zkoumá jednotlivé kroky vývoje mobilní aplikace pro tuto plat-
formu. V práci jsou zdůrazněna důležitá fakta a znalosti potřebné pro vývoj aplikace. Jsou zde zohledněny, jak otázky týkající se funkcí a použitých technologií, tak i grafické
zpracování, následný marketing a konečná propagace aplikace. V praktické části jsou vybrané znalosti aplikovány a realizovány.
1.1 Cíl práce
Cílem práce je shrnout historii a oblast vývoje mobilních aplikací. Tato oblast zasa-
huje do několika odvětví, a proto budou vybrány ty významnější kroky. Na základě získaných informací a znalostí si práce klade za cíl vytvořit vlastní aplikaci pro trénink TRX. Dále si práce klade za cíl popsat použité technologie a zdůvodnit výběr platformy
Android a ostatních zvolených nástrojů. Dalším cílem bude zmínit problémy, které během tvorby aplikace vyvstaly a popsat jejich řešení.
1.2 Metodika zpracování
Při zpracování rešeršní části práce bylo čerpáno převážně z webových zdrojů
z důvodu aktuálnosti, dále z odborných článků a z webových diskuzí na dané téma, aby
bylo možné získat objektivní pohled na celou problematiku. Pro práci bylo čerpáno také z vlastních zkušeností v dané oblasti. Získané znalosti byly shrnuty a byl sestaven vlastní
ucelený postup, na jehož základě byla zvoleným způsobem realizována vlastní aplikace a znalosti byly tímto ověřeny v praxi.
1
Programová část aplikace byla vytvářena v programu Android Studio s využitím
rozšíření na propojení se systémem GitHub. Pro programátorské postupy bylo čerpáno hlavně z oficiální dokumentace a průvodce programování pro platformu Android, kterou poskytuje Android Developers na svých webových stránkách [1].
Pro grafickou část práce bylo využíváno softwaru Adobe Photoshop a Adobe
Illustrator. Pro zpracování návrhu uživatelského rozhraní, byl využit program Pencil. Pro práci s ikonami byla využívána sada webových aplikací od Asset Studio. Grafické zpracovaní snímků obrazovky, bylo vytvořeno pomocí webové aplikace přímo od Android Developers.
Textový obsah aplikace byl čerpán převážně z vlastních zkušeností a oficiálního
webu o TRX [2].
2
2 Popis zkoumané oblasti Pojmem mobilní aplikace se rozumí program, který je implementován pomocí SDK
určených pro mobilní zařízení. Nejčastěji pro tzv. chytré telefony a tablety. Pod názvem
chytrý telefon se označuje takové zařízení, které je kromě klasických funkcí pro telefo-
nickou komunikaci, rozšířeno o další funkce, jako jsou například multimediální
přehrávač, fotoaparát, GPS nebo osobní organizátor. Důležitou skutečností je především možnost instalace aplikací třetími stranami přímo do paměti zařízení.
Před vlastním vývojem mobilní aplikace by se měl vývojář především zamyslet nad
tím, která forma prezentace koncovým uživatelům bude pro danou věc nejužitečnější
a která nelépe pokryje předpokládaný výsledek a přínos. Měly být zváženy aspekty, jako například z jakých zařízení budou uživatelé nejčastěji přistupovat, pomocí jaké sítě, za jaké situace a tak dále. Průzkum od Ofcom research z roku 2014 ukazuje, že ze všech zařízení, které přistupují k Internetu 1 je 30% talbetů a 22% chytrých telefonů [3].
„Samozřejmě, kromě lepší konektivity jsou tu i další vymoženosti - ovládání dotykem,
vestavěný fotoaparát, kompas, akcelerometr, gyroskop, snímač vnějšího osvětlení a další senzory. To vše dotváří uživatelský zážitek, který stojí za obchodním úspěchem inteligentních telefonů. Dobrá mobilní aplikace by měla využívat alespoň některé z těchto zajímavých věcí. “ [4]
Jsou rozšířeny tři hlavní typy aplikací využívaných mobilními zařízeními, a to
mobilní webové, nativní a hybridní. Mobilní webové aplikace jsou aktuálně asi nejrozšířenější forma z hlediska přístupu pomocí mobilních zařízení k informacím. Většina moderních zařízení je schopná přistoupit pomocí webového prohlížeče
k webové aplikaci bez větších obtíží. Důležitým pozitivem je nezávislost na platformě přistupujícího zařízení. Případné aktualizace se provedou pouze na hostujícím serveru
a všichni uživatelé ihned dostávají k dispozici nejnovější verzi aplikace. Tak odpadá stahování aktualizací a instalování do každého zařízení separátně. Je to také výhodnější
a jednodušší cesta pro mnohé vývojáře, jak existující webovou aplikaci zpřístupnit i z mobilních zařízení [5].
1
výraz Internet zde reprezentuje Celosvětovou informační a komunikační síť
3
Používají se zde tzv. mobile-friendly 2 modifikace stávajícího webu. Téměř
standardním požadavkem při tvorbě webových stránek se stal responzivní design, který umožňuje široké škále zařízení přizpůsobovat obsah stránky tak, aby je uživatel mohl
používat co nejpohodlněji. Taková webová prezentace přizpůsobená mobilním zaříze-
ním hraje velkou roli v celkové propagaci. Vývojář také nepotřebuje mnoho rozdílných znalostí, jako tomu je u vývoje samostatné mobilní aplikace. K vytvoření základního
funkčního responzivního webu prakticky stačí znalosti totožné, jako pro vývoj běžné
webové prezentace např. HTML5, CSS, JavaScriptu, popř. frameworku. [5].
Nevýhodou u webových aplikací využívaných mobilními telefony je omezený pří-
stup k hardwarovým částem telefonu. K vnitřnímu zařízení se u podporovaných
prohlížečů lze dostat pomocí speciálního API, ale přístup např. k senzorům a kameře je
touto cestou prakticky nemožný. Další nevýhodou webové aplikace je její závislost na
internetovém připojení či k připojení na daný server, kde aplikace pracuje. Existují aplikace, u kterých je offline komunikace do jisté míry možná. Většina však tuto možnost nepodporuje a aplikace se tak bez připojení k Internetu stávají nefunkčními [5].
Druhým typem je aplikace nativní, která je specifická tím, že je uložená přímo na
vnitřní paměti daného zařízení. Tím pádem zpravidla pracuje rychleji a v některých
směrech je také spolehlivější než aplikace webová. Také hlavně proto, že jsou často nezávislé na internetovém připojení. Standardně jsou aplikace distribuovány pro
konkrétní platformu skrze obchody s aplikacemi přímo v telefonu. Nevýhodou vývoje nativních aplikací je programování pro každou platformu separátně. Uživatel vstupuje do obchodu s aplikacemi často na základě přihlašovacích údajů. Nejznámějšími takovými obchody jsou dnes především AppStore pro platformu iOS a Google Play pro Android. Obecně platí, že každá mobilní platforma má své místo, kde si její uživatelé mohou dost-
upné aplikace pro své zařízení stahovat a dále instalovat. Další nevýhodou nativních aplikací je jejich forma aktualizací [6].
Hybridní aplikace je pak pro mnoho projektů dobrým kompromisem
v rozhodování, zda zvolit aplikaci webovou nebo spíše nativní. Taková aplikace pak
2
Optimalizováno pro použití na mobilních zařízeních
4
dokáže využít hardwarové součásti telefonu, ale neztrácí kompatibilitu s vícero zařízeními.
Pozitiva i negativa, která přináší různé typy aplikací, by měla být pečlivě zvážena
a na základě požadavků následně vybrána nejvhodnější varianta. Platí však, že hlavním aspektem při rozhodování je finanční rozpočet zadavatele. Z výzkumu v roce 2014 plyne
to, že z celkového počtu vývoje aplikací pro mobilní zařízení bylo 86% nativních a 14 % webových modifikací pomocí HTML5 [7].
Mobilní aplikace přinášejí pro běžný život množství výhod, jaké si člověk před lety
neuměl ani představit. I přes to, rychlý vzestup těchto technologií s sebou nese, asi jako u každého jiného odvětví, řadu nevýhod. Zneužití osobních informací ve vztahu s používáním mobilních zařízení není ojedinělý případ. Dnešní běžný uživatel chytrého
telefonu poskytuje značné množství osobních informací i přes to, že nemá jistotu jejich zabezpečení. Tato neznalost spojená s příchodem nové technologie, je často zneužívána.
2.1 Od historie po současnost mobilních aplikací
Počátek tvorby mobilních aplikací byl zásadně ovlivněn vývojem chytrých mobil-
ních telefonů. První chytrý telefon, model Simon, byl představen 2. listopadu 1992 firmou IBM. Tolik předpokládaného úspěchu však nedosáhl, jelikož v této době dokázalo
jeho možnosti efektivně využít pouze malé množství uživatelů. Uživatelské rozhraní
nebylo zdaleka tak přívětivé, jak ho dnes známe u chytrých telefonů. Mezi jeho funkce
patřila například schopnost faxování, odesílání a příjímání emailů, pager, podpora kalen-
dáře a plánovače. Zajímavostí však je, že přístroj Simon se obešel bez jakékoliv klávesnice, jelikož jeho obrazovka již byla plně dotyková. Jeho nástupce z roku 1996 (Nokia 9000 Communicator) se však následně po jeho uvedení stal legendou, bývá často považován za první chytrý telefon vůbec [8].
Počátky rozšiřování mobilních aplikací lze datovat do roku 1998, kdy Nokia přišla
s dnes už legendární hrou Snake [9]. První vývoj potencionálních aplikací byl soustředěn
hlavně na hry. Postupem času se s vývojem technologií začaly možnosti vývojářů rozši-
řovat. Výkon mobilních telefonů se zvyšoval, stejně tak jako kapacita používaných
baterií. Postupně se začala zvyšovat poptávka uživatelů a potenciál mobilních aplikací se zvyšoval. Skutečný průlom ve světě mobilních aplikací byl vznik nových operačních systémů. Díky tomu se z vývoje mobilních aplikací stalo jedno z nejrychleji rostoucích 5
odvětví v informatice [10]. Aplikace se dělí na několik základních typů podle svého pří-
nosu pro uživatele. Například praktické nástroje či zábavu. Mezi nejúspěšnější odvětví
mobilních aplikací přirozeně stále patří hry a aplikace podporující zábavu [11].
2.1.1
Využití
Mobilní zařízení jako telefony a tablety jsou stále více v oblibě, hlavně pro svou
snadnou konektivitu s okolním prostředím. Využití 3G sítí, skrze které je možné se bez větších potíží připojit k Internetu, dává uživateli zařízení vysoký komfort, jistotu a volnost v používání. Aplikace jsou dnes kolem nás používány ve většině odvětví.
Velice důležitým využitím aplikací je zábava. Hry drží stále nejvyšší příčku mezi
nejúspěšnějšími aplikacemi. Velmi oblíbené jsou i aplikace praktického rázu, které svým uživatelům umožňují velice snadnou cestou organizovat svůj volný čas i pracovní den.
Postupem času se mobilní aplikace začínají hojně využívat i ve firemní sféře, kde
pomáhají zaměstnancům rychle přistupovat do systému za běžného denního provozu,
a tím si velice ušetřit čas [4]. Velice časté je využití mobilních aplikací pro propagační účely určité značky. Dnes je běžným faktem, že se firemní prezentace vytváří dříve pro
mobilní zařízení a pak desktopové počítače [12]. Následující průzkum z listopadu roku 2014 ukazuje, kolik aplikací mají uživatelé nainstalovaných na svém mobilním zařízení.
Nainstalované aplikace 37%
25% 21% 16%
1% 0 - 10
11.20
21 - 40
41 - 74
Graf 1 Počet nainstalovaných aplikací v telefonu z roku 2014
Zdroj: Zpracováno dle statistik [13]
6
75 +
2.1.2
Budoucnost
Budoucí směr vývoje mobilních aplikací a telefonů je hodně diskutabilní. Existují
názory, že vývoj v současné době dosáhl svého vrcholu a stagnuje a že další vývoj po
hardwarové stránce bude mít spíše klesající tendenci [11]. Mnoho informací, však poukazuje na to, že zde vývoj nekončí. Přicházejí stále nová zařízení, která budou systémem Android podporována.
2.2 TRX
TRX neboli Total-body Resistance Excercise je jak už název napovídá posilovací
systém na zatížení celého těla. TRX se stal v posledních letech velice oblíbeným způso-
bem cvičení. Nejčastěji se s ním setkáme ve fitness centrech na hromadných lekcích
s instruktorem. Hlavní myšlenkou tréninku s TRX je vysoká variabilita cviků a míst, kde
je možné trénovat [2].
2.2.1
Vznik a účel
Počátky suspenzion training neboli závěsného tréninku se datují už okolo roku
1800, kdy se provádělo cvičení těla pomocí zavěšených provazů. Tento způsob byl pak podrobněji popsán v knize Athletic Sports For Boys vytištěné v roce 1860 [14].
První konstrukce, nejblíže podobná té dnešní vznikla v roce 1997, kdy velitel letky
americké armády Randy Hetrix a jeho kolegové z Navy Seal, hledali alternativu, jak se udržet v kondici na dlouhých cestách na letadlových lodích. Hlavním otázkou bylo, jak
využít pouze váhu vlastního těla tak, aby se efektivně posilovala svalová hmota. Na první
prototyp Hetrix použil tři spojené popruhy, které se používaly do padákové výstroje, do obráceného písmene Y. Jeden konec uchytil za dveře a zbylé dva použil jako poutka na
ruce. Postupem času začal Hetrix experimentovat jak na sobě tak na svých kolezích a těšil se stále větší oblíbenosti. V roce 2001 Hetrix opustil armádu a začal pracovat
spolu s trenéry ze Stratfordské univerzity na lepším fungujícím prototypu. Ten pak v roce 2004 začal prodávat v San Franciscu pod názvem TRX [15]. Největší zájem
veřejnosti přišel až s narůstajícím fenoménem zdravého životního stylu a zařazením tohoto druhu cvičení do běžných lekcí ve fitness centrech. 7
2.2.2
Trénink s TRX
Setkat se s ním můžeme hlavně ve fitness centrech, kde se tréninky provádějí nej-
častěji ve skupinách po 8 - 10 cvičencích. Jednou z hlavních propagačních myšlenek je, finanční a prostorová nenáročnost. Systém TRX může používat prakticky každý, kdo nemá možnost docházet do posilovny nebo na drahé cvičící stoje nemá prostředky. Dá se používat prakticky všude, kde je vhodné místo na zavěšení.
Princip posilování s vlastní vahou je pro tělo nejpřirozenější metoda posilování
a procvičování. Čím větší váhu cvičenec má, tím větší je zátěž během cvičení. Obtížnost
jednotlivých cviků je možné do velké míry upravovat. Právě proto je tento posilovací systém vhodný jak pro úplné začátečníky, tak pro zkušené sportovce. Hlavní výhodou
oproti posilování s klasickými zátěžemi v posilovně je celková funkčnost svalů celého těla. Často jsou cvičenci z posiloven přirovnáváni ke zdi postavené z těžkých cihel, ale
bez pojiva, které by zajišťovalo celkovou funkčnost těla. Jako důkaz toho bývá srovnání výkonů těchto dvou typů například na horolezecké stěně, kdy cvičenec s výrazným osvalením, který láme rekordy zvedání velkých zátěží, není schopen vylézt ani 3 metry,
protože jeho tělo s jeho váhou, nedokáže efektivně pracovat. Záleží ale na každém spor-
tovci, jaké má cíle a jaké jsou jeho priority. Trénink s vlastní vahou trénuje hlavně core 3,
což je soustava vnitřního svalstva trupu, která drží páteř, beder, oblasti pánve, břicha a kyčlí [16]. Tyto svaly pak zajišťují celkovou funkčnost, stabilizaci a sílu našeho těla. TRX systém mimo jiné posiluje funkci hloubkové stabilizačního systému [17].
„Hluboký stabilizační systém trupu a páteře jsou svaly, které se podílejí na udržení
trupu vůči gravitační síle Země ve vzpřímeném postavení a během všech aktivit při chůzi,
běhu, stoji a sedu. Funkcí Hlubokého stabilizačního systému je přesném postavení hlavy, páteře a jejích kloubů a pánve vůči sobě“. [18]
2.2.3
Konstrukce
Konstrukce závěsného systému je na první pohled velice jednoduchá, ale po bliž-
ším prozkoumání si lze povšimnout promyšlenosti celkové funkcionality. Je složena z částí jako jsou popruhy, přezky, které slouží k nastavení celkové délky, úchyty na ruce 3
Střed těla
8
a nohy a skoba pomocí které se TRX uchycuje. Cvičící systém je možné zavěsit na speciální držák ke stropu, za dveře i kdekoliv venku v přírodě. Pořízení takové cvičící
pomůcky může být více finančně náročné, proto vznikají i různé modifikace závěsného systému, které kopírují funkčnost TRX.
2.3 Operační systém Android Operačním systém Android je v dnešní době jeden z nejvíce úspěšných a stále se
rozšiřujících operačních systémů. Stal se oblíbeným hlavně pro cenovou dostupnost zařízení, na kterých pracuje a kvůli své otevřenosti.
Z hlediska vývoje mobilních aplikací, je platforma Android volena hlavně kvůli níz-
kým počátečním investicím. Další výhodou je programovací jazyk Java, tento fakt
mnohým vývojářům přechod na tuto platformu velice usnadňuje. Oproti vývoji aplikací pro Apple iOS je poněkud složitější testovaní vyvíjené aplikace. Testování vytvářené
aplikace se u iOS zaměřuje na několik málo modelů, jako je iPhone nebo iPad. Operační systém Android se ale používá na mnoha rozličných zařízeních [19].
2.3.1
Vznik
Počátek vzniku operačního systému Android se datuje do roku 2003, kdy Andy
Rubin, Rich Miner, Nick Sears a Chris White založili stejnojmennou společnost v Palo
Alto v Kalifornii. Vývoj začal jako reakce na stávající operační systémy iOS a Symbian [20]. Android byla další společností pro vývoj mobilního operačního systému na trhu.
Chtěli vytvořit chytřejší telefon, který by byl svému uživateli bližší, intuitivní a přizpůsoboval se mu [21].
V roce 2005 byla společnost zakoupena Google Inc a od té doby vize společnosti
nabrala nový směr a její úspěch stále rostl. Vývoj dostával rychlejší tempo a brzy se
objevily spekulace o tom, že Google má v plánu vytvořit vlastní telefon.
V roce 2007, na konsorciu Open Handset Alliance 4, poprvé společnost představila
nový operační systém Android a nastínila svůj ambiciózní plán do budoucna, vytvořit
nový otevřený operační systém. Hlavní myšlenkou OHA je urychlit vývoj v oblasti 4 Skupina 84 mobilních a technologických společností mezi které patří např.: Google, LG, NVIDIA, Samsung, Intel a další.
9
mobilních aplikací a nabídnout spotřebitelům kvalitnější a levnější produkt [22]. Ne
náhodou to bylo pár měsíců po tom co, společnost Apple představila svůj revoluční iPhone s jeho novinkami jako byl multitouch a volně přístupný obchod s aplikacemi.
Tato myšlenka nebyla zcela něčím novým nebo revolučním, ale společnost Google zajis-
tila této platformě v následujících letech jednu z prvních příček na trhu [23].
První telefon, který využíval operační systém Android, byl T-Mobile G1 předsta-
vený na konci roku 2008. Tímto počinem započal obrovský úspěch na trhu s chytrými telefony [24].
Největší rozmach však přišel až v roce 2010, kdy společnost Google vydala telefon
Nexus One. Po jeho představení pak následovaly společnosti Samsung a Sony Ericsson.
Průzkumy ukazují, že právě v této době v Evropě vzrostly prodeje telefonů s operačním systémem Android oproti předchozímu roku o rekordních 1580% [25]. V roce
2012 se pak Android definitivně stává vedoucí platformou [26].
Jeden z mnoha aspektů, kvůli kterému je Android tak úspěšný je i jeho cena, díky
níž si chytrý telefon může pořídit téměř každý. V dnešních dnech již lze systém Android
nalézt i na tabletech, televizích, set-top boxech s podporou Google TV a v nejbližší době i v počítačích v automobilech [23].
Pro svou hardwarovou nezávislost a otevřenost, si operační systém Android
postupem času vybudoval velkou podporu mezi uživateli a vývojáři [27].
2.3.2
Charakteristika OS
Kdyby mohla operační systém Android vystihovat dvě slova tak by to byla otevře-
nost a variabilita. Tyto skutečnosti byly jedny z nejdůležitějších při jeho vzestupu. Variabilita potencionálních zařízení a rychlá možnost přizpůsobení vyvolala doslova
soupeření mezi vývojáři. Android je prezentován jako open-source. Vývojáři mají volný přístup do většiny zdrojového kódu systému, jako jsou knihovny, kód jádra, aplikační rozhraní i některé základní aplikace. Je šířen pod licencí business-friendly 5. Některé
části si však společnost Google vyčlenila a nechává je skryté jako svou uzavřenou
technologii. Android umožňuje instalaci aplikací i z neznámých zdrojů, tato skutečnost na rozdíl od iOS poskytuje uživatelům širokou variabilitu [23]. 5
Licence umožňující šířit celý projekt ke komerčním účelům.
10
Každá aplikace má určité předpoklady, že bude vyhovovat rozdílným velikostem
a rozlišení obrazovky, klávesnicím, tlačítkům, verzím operačního systému, rychlosti
internetového připojení a systémové konfiguraci. V závislosti na jiné konfiguraci zařízení se může stát, že aplikace nebude reagovat tak, jak se původně předpokládalo. Ale testování takové aplikace napříč všemi zařízeními je téměř nemožný úkol.
Operační systém Android byl navržen tak, aby právě tato rozmanitost zařízení
nebyla až tak velkou překážkou. Hlavní skutečnost je to, že OS je abstrahován a není tak
přímo závislý na hardwarovém vybavení. Aplikace pak jsou izolovány a to jim poskytuje
větší funkční flexibilitu [23].
Testování na zařízeních je samozřejmě nutné provést důkladně. Slouží k tomu spe-
ciální programy a pluginy s jejichž pomocí lze aplikaci spustit v reálném čase, umožňuje pak vývojáři sledovat samotné chování aplikace. Tyto možnosti budou rozepsány v dalších kapitolách.
2.3.3
Architektura OS
Operační systém Android je založen na Linuxovém jádře pro využití jeho základ-
ních systémových služeb, jako je například správa paměti a sítí, zabudované ovladače
nebo správa běhu procesů. Je upraven na využití na mobilních zařízeních, primárně
s ARP procesy. Stejně tako jako programovací jazyk Java, pomocí kterého je možné vyvíjet samotné aplikace, není standardní Java. Má své speciální knihovny pro použití právě na mobilní zařízení Android a neobsahuje knihovny pro tvorbu uživatelského rozhraní, jako jsou AWT a Swing [23].
Operační systém android je rozdělen do pěti základních vrstev. Nejnižší vrstva,
jádro operačního sytému, tvoří abstraktní vrstvu mezi operačním systémem
a hardwarem. Další vrstvou systému jsou knihovny, které využívají komponenty sys-
tému. Jsou napsány v jazyce C/C++. Knihovny jsou vývojářům poskytovány skrze
Android Application Framework. Další vrstvou, která obsahuje virtuální stroj Dalvik 6, je Android runtime. DVM byl vytvořen hlavně z licenčních důvodů, ale i z důvodu optimali-
zace pro mobilní zařízení. Překlad z Javy do Java byte kódu probíhá pomocí Dalvik
kompilátoru, výsledný kód je pak následně spuštěn na DVM. Každá spuštěna aplikace 6
Dalvik Virtual Mashine - DVM
11
v systému Android má svůj přidělený proces a instanci DVM. Další částí operačního
softwaru je aplikační vrstva Application Framework. Tato vrstva poskytuje vývojářům
přístup ke službám zařízení, které mohou být využity ve vytvářených aplikacích. Jednotlivé komponenty aplikační vrstvy jsou rozebrány v následující kapitole. Poslední vrstvu
a zároveň nejvyšší tvoří samotné aplikace, ke kterým mají přístup běžní uživatelé zařízení [28].
Applications
Home
Dialer
SMS/MMS
IM
Broswer
Camera
Alarm
Calculator
Contacts
Voice Dial
Email
Calendar
Media Player
Albums
Clock
...
Application framework Activity Manager
Window Manager
Content Providers
View System
Notification Manager
Package Manager
Telephony Manager
Resourse Manager
Location Manager
XMPP Service
Libaries Surface Manager
Media Framework
SQLite
Android Runtime
OpenGL/ES
FreeType
LibWebCore
Core Libaries
SGL
SSL
Libc
Dalvik Virtual Machine
Linux Kernel Display Driver
Camera Driver
BloueTooth Driver
Flash Memory Driver
Binder (IPC) Driver
USB Driver
Keypad Driver
Wifi Driver
Audio Drivers
Power Management
Tabulka 1 Architektura operačního systému Android
Zdroj: Zpracováno dle [29]
2.3.4
Struktura aplikace
Na rozdíl od běžných desktopových aplikací, se Android aplikace zásadně liší ve
své struktuře a funkcionalitě. Běžné aplikace mají zjednodušeně tolik instancí kolik je otevřených oken, využívají vlastnosti operačního systému počítače bez větších ohledů
na ostatní aplikace, které běží součastně s nimi. Android má podobné koncepce, ale
strukturálně se v zásadě odlišují s větším ohledem na prevenci zhroucení systému. Je nežádoucí, aby došlo k omezení základních požadavků, které má každý telefon splňovat. Například neschopnost přijímaní a vyřizování hovorů kvůli rozsáhlému úniku paměti 12
způsobeného jinou aplikací a následnému zhroucení celého systému. I přes to však takové situace nejsou ojedinělé.
Aplikace pro Android se dělí na čtyři základní komponenty a to jsou aktivity, doda-
vatele, služby a záměry [23]. 2.3.4.1 Aktivita - Activity
Každá aplikace obsahuje jednu nebo více aktivit, jedna aktivita pak odpovídá jedné
zobrazené obrazovce. Výjimkou je práce s více fragmenty. Aktivity jsou v přeneseném slova smyslu stavební kameny celé aplikace. Uživatel mezi nimi může přepínat, to ale
nenarušuje jejich vzájemnou komunikaci. Activity manager, který pracuje se zásobníkem tak odpovídá za to, aby aplikace zbytečně neplýtvala s výpočetními prostředky zařízení [30].
Obr. 1 Zjednodušený životní cyklus aktivity
Zdroj: Převzato z [31]
2.3.4.2 Dodavatelé obsahu - Content provider Stará se o přístup k datům konkrétní aplikace. Vývojový model požaduje potvrzení
o přístupu k datům, které daná aplikace požaduje. Na základě tohoto potvrzení se vytvoří content manager, který abstrahuje jakákoliv data uložená v zařízení, používaná
více aplikacemi, a dále pak umožňuje aplikaci jejich užívání. Poskytuje úplnou kontrolu nad tím, jakým způsobem je k datům přistupováno [30].
13
2.3.4.3 Služby - Services Na rozdíl od aktivit a poskytovatelů obsahu, kteří mají většinou velmi krátkou
životnost, jsou služby zhotovené tak, aby prováděly svou práci nezávisle na jakékoliv aktivitě. Služby se využívají například na detekci RRS zdrojů nebo na přehrávání online hudby. [30]
2.3.4.4 Záměry - Broadcast reciver Systémové zprávy, které upozorňují na výskyt určité události v systému. Na zámě-
ry je možné nějak reagovat a vytvářet své vlastní. Příklad je třeba rozpoznání SD karty nebo příchozí SMS. [30]
2.3.5
Historie verzi
Operační systém Android je stále ve vývoji, proto aktualizace systému často nepři-
nášejí obsáhlé změny, ale spíše vylepšení dosavadních funkcí, nebo umožnění použití nových technologií.
Verze softwaru 1,6%
0,4% KitKat 4.4
6,3%
Jelly Bean 4.2.x.
6,4% 7,4%
39,7%
Jelly Bean 4.1.x Gingerbread (2.3.3 - 2.3.7) Ice Cream Sanswich (4.0.3 - 4.0.4)
18,4%
Jelly Bean 4.3 Lollipopp Froyo (2.2)
19,8%
Graf 2 Verze softwaru na používaných zařízeních Android v únoru r. 2015
Zdroj: Zpracováno dle statistik [32]
14
Verze Android 1.0 Android 1.1 Android 1.5 Android 1.6 Android 2.0
Android 2.0.1 Android 2.1
Android 2.2 - 2.2.3 Android 2.3 - 2.3.2
Andoid 2.3.3 - 2.3.7 Android 3.0 Android 3.1 Android 3.2
Android 4.0 - 4.0.2
Android 4.0.3 - 4.0.4 Android 4.1 Android 4.2 Android 4.3
Android 4.4 - 4.4.4
Název
API
-
1
Donut
4
-
2
Cupcake
Gingerbread Honeycomb Ice cream sandwitch Jelly Bean
2.3.6
3. prosince 2009
9
6. prosince 2010
12
10. března 2011
15
16. prosince 2011
18
24. července 2013
8
10 11 13 14 16 19
Tabulka 2 Historie verzí platformy Android.
Zdroj: Zpracováno dle [33]
6
17
KitKat
9. února 2009
27. dubna 2009
7
Froyo
23. září 2008
3 5
Eclair
Datum vydání
15. září 2009
26. října 2009
12. ledna 2010
20. března 2010 21. září 2011
22. únor 2011
15. června 2011
18. října 2011
9. července 2012
13. prosince 2012 23. červen 2014
Bezpečnost
Platforma Android využívá bezpečností mechanismus Sandbox, který slouží
k oddělení jednotlivých běžících procesů a omezení jejich přístupu do zbytku zdrojů celé
aplikace. Procesu jsou přiděleny adresáře, servery a místa v aplikaci, kam má dovoleno
přistupovat [34].
Android stále zůstává využíván koncovými uživateli převážně pro osobní účely.
Mezi spekulacemi o tom, že by Android byl zaváděn do firem ve větší míře, stále převažuje otázka zabezpečení. V minulosti to znamenalo pro uživatele určité rozhořčení, kdy
se ukázalo, že s citlivými informacemi uživatelů mohla nakládat třetí strana bez větších problémů.
15
3 Analýza a návrh aplikace Vývoj mobilní aplikace je komplexní proces zasahující do více odvětví než do
samotných informačních technologií. Se vzrůstajícím počtem používání mobilních zařízení v posledních letech počet dostupných mobilních aplikací na trhu obrovsky
vzrostl. Průzkumy ukázaly, že z celkového počtu 6,8 miliard uživatelů mobilních telefonů na světě vlastní chytrý telefon celá jedna třetina [35]. Pro uživatele je velice složité se
v dostupných aplikacích zorientovat a uvědomit si jejich možnosti a ještě těžší je se se svým projektem prosadit. Úspěch v tomto odvětví je už od počátků tak trochu jako sázka do loterie.
Návratnost počáteční nemalé investice do takové aplikace pak záleží na více fakto-
rech. Přijít na trh mobilních aplikací s něčím tak revolučním, že to bude jistá výhra, není
až tak snadné, jak se může na první pohled znát. Důležité potom je, jaký byl záměr a cíl
její tvorby. Hlavní motivací vývoje většiny aplikací je finanční návratnost, ale neplatí to vždy. Existují aplikace zaměřené na propagace určité značky, události nebo oblasti, kde otázka vrácených financí pak není přímá, ale je to očekávaný vedlejší produkt.
Výše zmíněná záplava nových aplikací na trhu ještě prohlubuje propad mezi zlom-
kem úspěšných aplikací a těmi ostatními. Uživatelé jsou často odrazováni od procházení
stovek aplikací a hledání takové, která jim bude vyhovovat nejvíce. Zde pak hrají velkou roli různé reklamní kampaně, osobní doporučení, sociální sítě nebo samotné žebříčky úspěšných aplikací na obchodech s aplikacemi.
„Na trhu je tolik aplikací, že musejí být z velké části nabízeny zadarmo, aby měly ale-
spoň nějakou šanci na úspěch. v roce 2017 bude na trhu s aplikacemi 94,5 procenta aplikací zdarma a nikdy nebudou přinášet svým tvůrcům zisk. Okolo devadesáti procent placených aplikací má méně jak 500 stažení za den a tvůrcům tak přinese menší denní příjem, než 1,25 dolaru. Situace se navíc bude zhoršovat.“ [36]
Situace se mění na základě požadovaného výsledku. Pokud např. existující firma
bude vytvářet aplikaci, která bude sloužit zaměstnancům firmy k interním účelům.
V dalších kapitolách je především diskutováno o vývoji aplikace jako nového samostatného projektu.
16
3.1 Příprava Na samém začátku návrhu aplikaci se vývojář musí uvědomit, že trh s mobilními
aplikacemi je v dnešních dnech téměř zahlcený a významnou roli hraje vysoká konku-
renční rivalita mezi jednotlivými vývojáři. Trh s aplikacemi se za poslední roky velmi
vyvinul a nároky na aplikace se postupně navýšily. Zde je potřeba si uvědomit
a uspořádat si naší myšlenku, nápad a to co si od vytvořené aplikace slibujeme. Nikdy
není na škodu si udržovat motivaci v kolektivu, ve kterém projekt vzniká. Ucelit si ideu a v ideálním případě pevně věřit v úspěch [37].
Je potřeba objektivně posoudit to, jak by naše myšlenka obstála mezi ostatními
velkými konkurenčními projekty. Proto je potřeba si udělat průzkum podobných, již existujících projektů a toho jak si na obchodech s aplikacemi vedou a jaké možnosti uži-
vatelům poskytují. Pokud procházením trhu přijdete na to, že s nápadem téměř totožným k tomu vašemu, již někdo na trh vyšel a je značně na výsluní, je potřeba
posoudit, jestli se jak finanční i časová investice do takového projektu vyplatí.
Na druhou stranu, téměř žádná velmi úspěšná aplikace nebyla vytvořena čistě na
nové myšlence nebo revolučním nápadu. Často jsou aplikace vytvořené na základě již existujícího konceptu, který byl patřičným způsobem vylepšen natolik, že se stal úspěšným. Zde pak hrají velkou roli aspekty, jako je uživatelské rozhraní a celková propagace
aplikace.
Pokud je projekt vytvářen s cílem, že se umístí alespoň na vyšší pozice
v žebříčcích, je třeba přehodnotit, jestli nebude lepší přijít na trh s jiným nápadem, ale
vždy záleží na cílech vývojáře. Existují servery, kde lidé sdílí své nápady na aplikace,
které by jim pomohli v určité situaci, ale ještě je nikdo nevytvořil. Spadají sem jak ty více profesionálně zaměřené, tak i méně a nesčetně diskusních fór [38].
Situace se mění na základě požadovaného výsledku. Pokud např. existující firma
bude vytvářet aplikaci, která bude sloužit především uživatelům, kteří jsou členy určité
organizace, firmy nebo pouze spadají do určité lokální oblasti k interním účelům
a získáváním informací, pak role konkurenční odlišnosti není to hlavní, o co bude usilováno.
17
3.1.1
Průzkum trhu a cílové skupiny
Vytváření produktu by mělo být zaměřeno na určitou cílovou skupinu. Důležité je
také zamyslet se nad tím, kdo bude skutečně aplikaci využívat a tzv. vžít se do této skupiny. U rozsáhlých projektů se vyplatí udělat dlouhodobější analýzu k dosažení
potřebných a použitelných informací. Je důležité především prozkoumat požadavky
a očekávání této skupiny. Uspořádat si demografické informace jako je: věk, pohlaví,
geologická poloha, příjem, národnost, případně více individuální informace, jak by tuto
aplikaci uživatelé využívali, jestli na podporu svého životního stylu, hobby nebo jako praktického pomocníka v každodenním životě či k práci.
Taktéž v tomto směru platí, že inspirace 7 u úspěšných projektů není nikdy na
škodu. Velice cenné informace lze získat například s častých diskusních serverů o této problematice nebo přímo ze zkušeností koncových uživatelů hodnotících konkurenční
aplikaci. I tento průzkum pomáhá formovat myšlenku projektu a výrazně ho zkvalitnit.
V mnoha případech představa aplikace je výrazně liší od toho, jak k aplikaci budou přistupovat její uživatelé v reálu. V takových případech se pak vyplatí konzultovat
s odporníky v dané problematice a porovnat jejich představy a názory. Zpětná vazba
uživatele aplikace za provozu je velice důležitá, ale i zde by měl být přístup spíše objektivní. Vývojář by si měl uvědomit své možnosti a plány [39].
3.1.2
Tvorba uceleného podnikatelského plánu
Jak už bylo výše zmíněno, návrh mobilní aplikace je komplexní proces především
pokud jde o komplikovanější projekt. Pokud máme ucelenou myšlenku a představu
o aplikaci a jsme seznámeni s možnostmi a potencionálního úspěchu naší aplikace na
trhu, tak dalším velmi důležitým krokem je vytvoření podnikatelského plánu 8. Skutečnost, že bude podnikatelský plán vytvořen, může mimo jiné pomoci i například s hledáním případných sponzorů pro daný projekt. Plán by měl především reprezento-
vat reálnou a pravdivou situaci, je to podklad pro vlastní sebezlepšování a řízení, na
7 Inspirací nelze zaměňovat s pochybným vývojem projektů, které se cíleně snaží zkopírovat funkční systém konkurenční firmy a na základě toho profitovat 8 Bussines plan jako více ustálený výraz v ang. jazyce
18
který by se mělo dát spolehnout. Zde se nevyplatí si cokoliv nalhávat a přibarvovat, je lepší stát nohama pevně na zemi.
Existuje mnoho literatury o tom jak se postavit ke strategii plánování podnikání.
Hlavní myšlenkou je ale zmapovat, kde se ve vašem podnikání nacházíte a dát mu směr
a cíl. Ucelit si čeho chcete dosáhnout a kam se dostat. Důležité je držet se plánů, které jsou vytyčeny, kontrolovat finance, a tím předcházet fatálním chybám a překvapením, které se mohou v budoucnu vyskytnout.
Ostatně i k těmto účelům jsou dostupné podpůrné mobilní aplikace. Jedna z nejlépe
hodnocených ve světě Adroidu je Bussines Plan & Start up. Jedná se o kvalitně zpracova-
ného průvodce pro vytvoření fungujícího obchodního plánu. Ke každé části je instruktáž, čím se řídit a jak nejlépe postupovat. Například vytvoření časového období s plánovanými úkoly, které je potřeba řešit [37].
3.2 Návrh aplikace
Při návrhu jakékoliv mobilní aplikace musí vývojář počítat s řadou nepříjemných
omezení. Jedno z hlavních omezení, se kterým se potýká stále převážná část zařízení, je
jejich velikost. Případná aplikace, která má většinou za úkol svému uživateli sdělit
potřebné informace musí počítat s tímto nedostatkem prostoru. Nepřehlednost či
nedostačující podání může mít pro i jinak kvalitní aplikaci neblahé následky. Ze statis-
tických údajů z roku 2012 ale vyplývá, že zařízení s úhlopříčkou menší než 3 palce jsou
pouze 3 %. Ve světě mobilních zařízení dominuje velikost 3–5 palců a to s 86% [40].
V posledních letech mají výrobci mobilních zařízení tendenci spíše na velikosti přidávat. Vývojář také musí počítat s tím, že uživatel se bude málo kdy pohybovat v klidném
stálém prostředí, bude to většinou za běžného denního provozu nebo spěchu a je potřeba, aby i přes to všechno aplikace stále byla pro uživatele smysluplná a přívětivá.
Toto také do velké míry zajišťuje dobře zvolené grafické uživatelské rozhraní. V posledních letech se výrobci zařízení předhánějí s čím dál lepším hardwarovým vybavením zařízení, i přes to jsou stále omezena na výkonu, výdrži a dalšímu technickému vybavení. Pomalá či každou chvíli hroutící se aplikace pak nemá valný význam.
Vývojář, který vyvíjí pro tak univerzální platformu, ale musí počítat také
s variabilitou koncových uživatelů a jejich možnostmi. Například co se týče rychlosti
připojení k Internetu skrze mobilní sítě jednotlivých zařízení, rozmístění tlačítek 19
telefonu, forma jakou má zabudovanou klávesnici, kvalita fotoaparátu či jejich počet. Android, jak už bylo výše zmíněno, je velice univerzální platforma, která podporuje zaří-
zení od malých hodinek po televizory. Proto by mělo být předem stanoveno, na jaká zařízení bude aplikace vyvíjena a přizpůsobit se tomu. Tato omezení se zaznamenávají do souboru AndroidManifest.xml. Udává se zde minimální požadovaná verze podporo-
vaného zařízení a hardwarová omezení. Tato omezení určují to, co je při případné instalaci uživatelem vyžadováno k potvrzení ohledně přístupu.
Při vývoji aplikace se málo kdy zůstane u původního plánu. Ať už s novými verzemi
aplikace nebo přímo při vývoji by se mělo dbát na to, aby postupným přibýváním funkcí
a nápadů aplikace neztrácela svojí původní klíčovou funkci. Problém může být projekt,
který se svou přibývající složitostí ztrácí efektivitu. v tomto případě pak méně znamená více.
3.3 Vzhled aplikace Vzhled aplikace, speciálně její ikona, je to první, co většinou každý pátrající uživatel
vidí. V mnohých případech se tak stane, že si člověk nainstaluje aplikaci, třeba méně propracovanou jenom proto, že dobře vypadá navenek. Prezentaci vzhledu aplikace
pomáhají hlavně snímky obrazovky a hlavní grafika na stránkách Google Play. Jsou to
jedny z nejdůležitějších kriterií, na základě kterých uživatel aplikaci vybírá. Někdy to
stačí k rozhodnutí pro stažení nebo naopak k odchodu i bez toho aniž by si uživatel přečetl více informací pod grafikou. Proto je na uživatelské rozhraní a jeho grafickou stránku kladen velký důraz nejen u mobilních aplikací.
User experience 9 neboli UX design je jedním ze základních kamenů kvalitní
a fungující aplikace. Dobře navržená aplikace má daleko větší potenciál na trhu. Při vývoji nového projektu, od kterého očekáváme nějaký úspěch, je zkoumání
uživatelského prostředí velice důležité. Zde hrají roli důležité aspekty, jako je např. to
kam uživatel klikne poprvé, co ho zaujme, jakým způsobem bude postupovat, když od aplikace chce vyžádat nějakou akci.
Stavět by se mělo na intuitivnosti a jasném sdělení. Uživatel by do určité míry měl
vědět, že se pochybuje v povědomém prostředí, ale na druhou stranu chce objevovat. Při 9
český výraz?
20
používání aplikace by se měl cítit dobře a spokojeně. S tím souvisí i to, jakým způsobem s ním prostředí komunikuje. Když např. uživatel zapomene zapnout GPS a vyžaduje mě-
ření jeho polohy, pak ho aplikace požádá, aby tak učinil. Uživatel se tak necítí nekomfortně, protože je přesvědčen, že to nebyla jeho chyba. Uživatelské rozhraní je ve
velké míře standardizováno a ovlivněno tím, na jaké platformě aplikace běží nebo jaká
verze systému je nainstalována. Musí být zváženo, do jaké míry upravovat tyto zavedené standardy a co poskytnou uživateli. Každý uživatel OS Android intuitivně zná ovládací
prvky a pokud mu chceme dopřát určitý komfort v ovládání aplikace, pak by tyto struk-
turální změny měly být minimální. Ve většině případů by mělo platit, že to co stejně
vypadá, by mělo i stejně fungovat.
Grafické uživatelské rozhraní neboli zkrácené GUI 10 je obecně rozhraní, skrz
které uživatel komunikuje s programem pomocí grafických, ale i jiných interaktivních
prvků jednoduše a pohodlně. Často znázorňuje prostředí z reálného světa a tím uživateli
poskytuje jistou intuitivnost práce s programem. GUI je stejně jako dobře naprogramo-
vaná aplikace nezbytným a často spekulovaným faktorem.
Android aplikace staví na materiálním designu. Celkový koncept tohoto designu
je založen na určité metafoře reálného světa. Je tak využívána intuice plynoucí ze zkušenosti z potkávání a používání těchto prvků v reálném světě. Použití tvaru, barev,
světla a stínu pak je často inspirováno reálnými situacemi. Jednotlivé prvky jsou pak reprezentovány jako tělesa v pomyslném 3D světě, kde souřadnice osy z udává
viditelnost. Tento design zakládá na tom, že je použitelný napříč všemi zařízeními používající příslušný operační systém. Společnost Google uvádí příklady na webových
stránkách, jaké použití je v souladu s materiálním designem a jaké je nevhodné [41].
Vždy ale záleží na situaci, za které uživatel bude do naší aplikace přistupovat.
Pokud např. aplikace má za úkol podat rychlé a jasné informace často za běžného denního shonu málo který uživatel pak docení originalitu struktury.
Velice užitečným nástrojem pro návrh grafického uživatelského rozhraní je apli-
kace Pencil, která poskytuje řadu nástrojů pro návrh GUI od telefonů po desktopové
aplikace. Součástí aplikace jsou předdefinované UI prvky systému iOS a Android. Je 10
Graphics user interface
21
možné rozšíření stávající nabídky o další grafické prvky nabízenými většinou samot-
nými uživateli zdarma ke stažení. Pencil má k dispozici vyhledávač propojený
s OpenClipart.org 11 kde uživatel nalezne podle zadaného hesla požadovaný obrázek a jednoduše jej může přetažením do své práce použít. Aplikace poskytuje i velice jedno-
duchý a přehledný nástroj pro kreslení diagramů a pro znázornění interní komunikace
v aplikaci.
Zde při návrhu grafického uživatelské rozhraní, ať už pro nativní či webové apli-
kace a webové prezentace, že je lepší postupovat od malého zařízení přes větší k těm
největším. Lépe se tak definují klíčové informace, které mají být aplikací sdělovány. Jak už bylo výše zmíněno, návrh aplikace pro Android s sebou nese určité standardy, které je ve většině případů doporučeno dodržovat [42].
Při vývoji jakéhokoliv vzhledu je důležitým ukazatelem, jaké barvy budou voleny.
Pokud existuje značka, na které je aplikace založena, pak by barvená kombinace měla iniciovat pomyslný odkaz na tuto značku, právě pomocí toho jak budou voleny
a kombinovány. Do určité míry dělají aplikaci zajímavější a přívětivější uživateli, který ji
používá, ale nesmí to být na úkor použitelnosti a přehlednosti. Pokud se vývojář rozho-
duje, tápe v tom jaké barvy použít, tak na Internetu jsou velmi dobře dostupné nástroje palet. Jsou tu i přímo palety navržené na použití do mobilních aplikací.
3.4 Android Developers
Webová stránka Android Developers je asi nejdůležitějším pomocníkem při tvorbě
aplikací pro tuto platformu. Poskytuje kompletní propracovanou dokumentaci ke všem využitelným nástrojům. Pro začínajícího vývojáře je zde velmi kvalitně zpracovaný prů-
vodce, který napomáhá budoucímu vývojáři se v nové technologii zorientovat.
K seznámení se s operačním systémem Android jsou k dispozici i videonávody. Často
také poskytuje rady a typy, jak jednotlivé prvky implementovat do vytvářené aplikace.
Dále jsou zde pravidelně publikovány články s novinkami a důležitými událostmi v této
oblasti. Android developers také poskytuje rady ohledně uživatelského rozhraní apli-
kace a jak s ním správně pracovat. U některých kapitol jsou dostupné ke stažení ilustrativní zdrojové kódy. 11
Služba poskytující ke stažení vektorové prvky pro volné komerční využití
22
3.5 SDK Android software development kit, zkráceně SDK, je obsáhlý soubor vývojářských
nástrojů pro Android jako jsou knihovny, debugger nebo různé návody. Je dostupný pro všechny platformy GNU/Linus, iOS nebo Windows. SDK se dělí na tři základní konfigurace. Součástí je také emulátor, který umožňuje testování vyvíjených aplikací [23].
3.6 Android studio
Oblíbeným a hojně používaným prostředím pro tvorbu Aplikací byl Eclipse 12
S použitím ADT 13, který se stará o integraci s výše zmíněným SDK. S příchodem Android
studia v roce 2013 přestala společnost Google dále ADT plugin do Eclipse podporovat.
Android studio se stalo jediným oficiálním vývojovým prostředím pro vývoj aplikací pro
platformu Android [43].
Toto IDE 14 vychází ze softwaru JetBrains' IntelliJ IDEA 15. Vývojář nemusí další
balíčky a pluginy instalovat ručně, protože Android Studio má pro stahování integrovaný
nástroj. S instalací Android studia má uživatel k dispozici nejenom samotný program, ale i Android SDK Tools, kompilátor pro android a základní emulátory.
Propracovaný průvodce na webu Android developer je velmi užitečný každému
začínajícímu i pokročilejšímu vývojáři. Obsahuje informace o tom, jak efektivně vytvářet
vlastní aplikaci. K importu již rozpracovaného projektu v prostředí Eclipse vypomáhá
jednoduchý průvodce. Je vytvořena požadovaná struktura projektu a automaticky se vygeneruje soubor build.gradle zodpovědný za spouštění modulů v aplikaci [44].
3.7 Zálohování a verzování
Při vývoji každého projektu větších rozměrů je zálohovaní a verzování neodmysli-
telnou součástí vývoje. Verzování obecně znamená uchovávání starších verzí vyvíjeného
projektu pro následné porovnávání změn a evidenci jejich autorů. U verzování jednotli-
vých postupů vyvíjené aplikace je velkou výhodou možnost dělení vývojových větví
Vývojové prostředí Android development tools - plugin do prostředí Eclipse 14 Zkratka anglických slov Integrated Development Environment 15 https://www.jetbrains.com/idea/ 12 13
23
a následné porovnávání a slučování. Jako prevence proti nechtěnému zasahování do souborů se využívá možnost jejich zamknutí [45].
3.8 Testování aplikace
Už od raného stádia vývoje aplikace je dobré ji testovat na reálném zařízení. Testo-
vání pro platformu Android je poněkud složitější záležitost. Existuje celá řada podporovaných zařízení, ale s velkými rozdíly v hardwarových možnostech. Velikost
testování vyvíjené aplikace se odvíjí od její složitosti a účelu. Například aplikace pro finanční instituce bude mít vyšší nároky na spolehlivost běhu a tedy i na testování. Mimo
funkcionality aplikace se testuje i intuitivnost uživatelského rozhraní a způsob jakým
působí na koncového uživatele [46].
Pro testování nových verzí pro již existující aplikace poskytuje služba Google Play
možnost rozeslat novou testovací aplikaci pouze uživatelům v testovací skupině.
Prostřednictvím vývojářské konzole na Google Play lze spravovat jednotlivé skupiny pro testování alfa a beta verzí aplikace [47].
3.9 Propagace a zavedení
Během několika let se trh s aplikacemi nezměrně vyvinul a nároky na aplikace
se změnili, to co dříve stačilo na velmi pěkné umístění, je dnes těžký podprůměr. Nároč-
nost a požadavky uživatelů se zvyšují a konkurence nespočetně vzrostla.
Google Play je služba dostupná uživatelům systému Android, která vznikla v roce
2013. Jeho předchůdcem byl Android Market. Google Play stejně tak jako obchod App store, mají svou listinu zásad, kterým podléhá, každá aplikace která je v tomto obchodě
v nabídce. Programové zásady služby Google Play pro vývojáře čítají několik pravidel,
které musí každý publikující vývojář dodržet a které je nutno odsouhlasit při nahrávání aplikace.
Jedním z kritérií je také to, že vývojář musí potvrdit, že aplikace bude pracovat
pouze v tom kontextu, který má. Pak se například nemůže stát to, aby aplikace, která má sloužit jako svítilna, žádala o přístup do pevného úložiště, kontaktů telefonu a SMS
zpráv. Prezentace samotné aplikace je složena z několika kroků, kdy vývojář musí nejprve aplikaci nahrát a poté k ní dodat požadované dokumenty a další informace. 24
Propagace mobilní aplikace se u větších projektů zdaleka neomezuje pouze na
prostředí Google Play. V posledních letech jsou už samozřejmostí sociální sítě, ale i jiná místa pro distribuci aplikací. Vytváření komunit na sociálních sítích má pro vývojáře
velký význam hlavně pro budoucí projekty. Poté co vydá novou aplikaci, může oslovit
dříve vytvořenou skupinu fanoušků [39].
Jedním z nejlepších ukazatelů na úspěšnost jsou počty stažení a instalací, ale také
počty odinstalací aplikace. Ve chvíli, kdy se aplikace dostane na první pozice v žebříčcích
nejoblíbenějších aplikací ať už jenom v dané kategorii, je to obrovský úspěch. Jak tomu je v jiných odvětvích, tak i na trhu s aplikacemi se rozšířily a často pochybné metody
propagace. Vývojáři si například platí za to, že jim aplikaci uživatelé stáhnou a napíší pozitivní komentář. Tato skutečnost jim dopomáhá dostat se na vyšší příčky žebříčků
nejlepších aplikací daleko rychleji, než běžným způsobem. Tyto tzv. black hat 16 praktiky
jsou poskytované na Internetu nejednou společností. Obchody s mobilními aplikacemi však nejsou jedinou oblastí, kde se tyto praktiky provozují. Udává se například, že každé
třetí hodnocení produktu, na online obchodu Amazon, je klamné [48].
Služby a návody na propagaci vytvořené aplikace nabízí služba Google AdWords.
Radí svým potencionálním zákazníkům, na co se mají zaměřit, jak si stanovit své cíle
a jak postupovat při vybírání té správné reklamní kampaně. Takové kampaně jsou pak rozděleny podle výsledků, jaké by měly klientům přinášet, a cílů které si stanovili. Existují reklamy optimalizované na počty stažení nebo počty instalací dané aplikace. Přímo
AdWords pak poskytuje reklamy pro vyhledávací sítě, kde reklamní obsah je optimali-
zován na základě vyhledávaných frází a klíčových slov od uživatele. Další varianta je pak zaměřená na obsahové sítě, kde relevantnost obsahu reklamy závisí na tematickém zařazení koncové zobrazované webové stránky [49].
4 Implementace
Mobilní platforma Android byla zvolena hlavně z důvodu kvalitně poskytované
podpory přímo od Google Developers a poskytování kvalitních nástrojů pro samotný
vývoj. Dalším důvodem byla také dobře rozšířená česká komunita vývojářů a dalších 16
Nelegální, falešné.
25
odborníků, kteří své cenné rady a znalostí sdílí na společných webových stránkách. 17
Bylo zvoleno také na základě osobních zkušeností s použitím tohoto operačního systému a zkušeností s dřívějším vývojem pro platformu Android.
4.1 Myšlenka
Hlavní myšlenkou vytvoření aplikace bylo vyzkoušet výše uvedené postupy
a způsoby tvorby mobilní aplikace v praxi. Některé rady zůstávají pouze u teoretické
části a to hlavně kvůli menšímu rozsahu vytvářené aplikace. Aplikace bude především sloužit k seznámení se s tréninkem pomocí TRX. Uživatel bude mít přístup k ilustracím a k popisům jednotlivých cviků.
4.2 Rešerše, srovnání a průzkum trhu V posledních měsících stoupá zájem o fitness a zdravý životní styl. Extrémně také
stoupl počet aplikací na toto téma. Některé aplikace jsou vytvořeny na základě projektu
nemalého charakteru, kterým jedinec s téměř nulovým rozpočtem nemůže konkurovat. Převratné prosazení aplikace na trhu však nebylo od této práce očekáváno.
4.3 Požadavky
Jeden z hlavních požadavků aplikace je, aby prezentovala informace získané
v předcházejícím zkoumání v této oblasti. Důležité je vyvarovat se závažnějších chyb
a pokusit se o to vydat i v menším měřítku kvalitně zhotovený produkt. Dále by aplikace
měla poskytovat informace a funkce, které budou uživateli nápomocné k vlastnímu tréninku. Aplikace by měla být přizpůsobitelná jak na menší obrazovky telefonů, tak na tablety a poskytovat uživateli jak českou tak anglickou verzi jazykové mutace. Aplikace by dále měla být propagována pomocí služby Google Play.
4.4 Použité technologie a jejich zhodnocení
Pro tvorbu vlastní aplikace bylo zvoleno prostředí Android studio, které bylo vole-
no na základě recenzí a zkušeností vývojářů, a na poskytované kvalitní podpoře. Webové stránky Google developers nabízí velmi rozsáhlého průvodce pro začínající vývojáře. 17
http://www.svetandroida.cz/
26
Tím seznamuje budoucího vývojáře jak s vlastním prostředím, tak s myšlenkou celého projektu Android.
Prostředí Android studia je velmi intuitivní a dobře se v něm začátečník zorientuje.
Po samotné instalaci je možné přímo vytvořit projekt a doinstalovat potřebné doplňky pomocí interního instalačního modulu. Uživatel se nemusí o nic starat, téměř vše je pro-
vedeno za něj. Co se týče nabízeného emulátoru na testování vyvíjené aplikace, tak založení virtuálního stroje je velice snadné. Prostředí nabízí širokou škálu virtuálních
zařízení z řady Google Nexus, na kterých je možné vyvíjenou aplikaci testovat. Přesto je
však potřeba tento nástroj optimalizovat. I přes to, je ale velmi pomalý a práci spíše znesnadňoval, než aby tomu bylo naopak. Proto byla použita přímo připojená
hardwarová zařízení 18.
V tomto případě, pokud vývojář pracuje na platformě Windows, stačí pouze insta-
lace příslušných ovladačů k zařízení a USB kabel. Veškeré informace o tom kde stáhnout
ovladače poskytuje k jednotlivým výrobcům Android na svých developerských stránkách [50]. Emulátor byl později využit pouze k náhledu zařízení tabletového typu.
Dalším krokem v práci bylo využití verzovací služby GitHub. Byla zvolena verze
dostupná zdarma a byl vytvořen vlastní repositář. Dále byla nainstalována i lokální aplikace pro Windows a rozšíření Git Shell pro přístup skrze příkazový řádek. Později bylo
využíváno verzování 19 a zálohování přímo na server. Přehledné ukládání verzí a přesné
znázornění provedených změn ušetřilo při vývoji mnoho času. Aplikace GitHub pro Windows později využívána už nebyla. Systém GitHub byl zvolen na základě snadné
integrace do právě do Android studia. V průběhu programovaní samotné aplikace jsou provedené změny od posledního commit 20 příkazu zřetelné a tím se získává přehled o tom, kdy by se měla provést další záloha. Další výhodou je vytváření různých větví 21
a možnost jejich následného porovnávání a slučování.
Pro vytváření grafického uživatelského rozhraní pro jednotlivé aktivity Android
Studio poskytuje grafický editor, který umožňuje jednotlivé prvky vkládat přesunutím z nabídky. V průběhu práce byl využíván pouze zřídka kvůli složité manipulaci s objekty. Sencor Element P500, Sony Xperia Go a table Lenovo A7600 Ukládání provedených změn do postupných verzí projektu 20 Odeslání a vytvoření novější verze projektu 21 Větev neboli v ang. jazyce branch. Vniká rozdělení pomyslné cesty verzí projektu. 18 19
27
Bylo tedy navrhováno přímo psaním do příslušného xml souboru. Všechna zdrojová
data, která aplikace potřebuje, jsou uložena v pevně daném adresáři s názvem res. Data
jsou v aplikaci reprezentována pomocí souboru xml, kde jsou uložena a následně příslušné třídě přiřazena do požadovaného seznamu a přiřazena konkrétnímu prvku
podle id.
activity_fragment_layout_exercises.xml
Exercises.xml <string-array name="exercise_name">
- @string/biceps_curl
- @string/chest_press
- @string/jump_squat
(...)
FragmentLayoutExercises.java String[] NAME = getResources().getStringArray(R.array.exercise_name); nameText.setText(NAME[getShownIndex()]);
Zdrojový kód 1 Propojení dat s aplikací
Aplikace podporuje dvě jazykové mutace. Jazyk aplikace se mění podle jazykového
nastavení telefonu. Výchozí řeč je anglický jazyk a pro české telefony je pak přiřazena čeština. Veškeré textové části aplikace jsou pro vyšší přehlednost a snadnou editaci
reprezentovány pomocí textových řetězců v souboru string.xml. Android studio
umožňuje tyto textové řetězce upravovat ve speciálním editoru, kde se do předem zvolených souborů samy řetězce generují.
4.5 Vzhled a struktura aplikace Pro tvorbu náhledu uživatelského rozhraní byl využit volně dostupný software
Pencil s vloženým balíčkem prvků přímo pro prostředí Android. GUI bylo navrženo jak na mobilní telefon, tak i na tablet. Ovládání je velice intuitivní a celkem rychle dokáže
pomoci získat visuální představu o plánované aplikaci.
Volbě uspořádání vizuálního vzhledu aplikace předcházel výběr barev pomocí ná-
stroje Adobe Color CC. Tento nástroj slouží k rychlému výběru barev na základě jejich 28
vzájemných vztahů. Je možné využít i volně přístupné palety předdefinované ostatními
uživateli. Paletu je možné si po přihlášení s Adobe ID stáhnout do svého počítače
a používat v aplikacích Adobe. Hlavní dominantní barvou byla zvolená žlutá kvůli asociaci na typickou žlutou barvu závěsného systému TRX. Ostatní barvy jsou odstíny šedi, které vzhled doplňují a nepůsobí rušivě.
Obr. 2 Výřez z webové aplikace Adobe Color CC
Zdroj: vlastní tvorba
K vytvoření ikon a ilustrací byl použit software Adobe Illustrator a Photoshop.
Vzhled byl převážně založen na jednoduchém a čistém designu. Na změnu velikosti ikon na jednotlivá zařízení byla využita volně stažitelná akce 22 do aplikace Photoshop, která vychází z největšího obrázku a postupně ho zmenšuje a ukládá. Akce byla upravena tak, aby ukládala rovnou do požadovaných složek v adresáři projektu, což značně urychlovalo práci.
Online aplikace Asset studio nabízí velmi jednoduchý a přehledný nástroj na
generování ikony pro aplikace z nahraného souboru. Aplikace dává na výběr více
možností, jak vkládanou ikonu modifikovat. Poskytuje výběr různých tvarů ikony, ořezá-
ní, vkládání přechodu a stínu. Výsledná modifikace je vidět na Obr. 6 napravo. Asset studio po výběru možností vygeneruje soubor *.zip, který obsahuje všechny velikostní
modifikace vytvořené ikony, takže pak tyto adresáře stačí pouze sloučit s těmi existujícími v projektu a se není třeba dál o něco starat. Aplikace dává možnost i vygenerování velké ikony na web v rozlišení 512x512 pixelů.
22 Posloupnost uložených a zautomatizovaných úkonů v aplikaci http://blog.mready.net/2013/07/dg-photoshop-action-dpi-resizing/
29
Obr. 3 Ikona aplikace zpracovaná nástrojem Android Asset Studio
Zdroj: vlastní tvorba
4.6 Funkcionalita Po spuštění aplikace se na úvodní obrazovce zobrazí informace o tom co je to
cvičení TRX. Snímek obrazovky na Obr. 6 je pořízen na telefonu Sencor Element P500,
který běží na verzi Android 4.1.2. U této verze Androidu se ještě nezobrazuje ActionBar menu jako ikona tří teček v pravém horním rohu, ale je dostupné po stisknutí levého
spodního tlačítka. Toto menu je spravováno pomocí předem vygenerované metody onOptionItemSelected. Menu obsahuje položku, která poskytuje informaci o vzniku
tohoto projektu. Dále bylo vytvořeno druhé menu, které obsahuje položky obsahující
seznam cviků a seznam tréninků. Menu byla přidělena vlastní ikona.
SubMenu subMenu = menu.addSubMenu("Navigation Menu"); getMenuInflater().inflate(R.menu.sub_menu, subMenu); MenuItem subMenuItem = subMenu.getItem(); subMenuItem.setIcon(R.drawable.ic_action_menu_icon); subMenuItem.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); getMenuInflater().inflate(R.menu.menu_main, menu); return true;
Zdrojový kód 2 Implementace SubMenu
Seznam cviků byl vytvořen pomocí fragmentových prvků, které reagují na vzájemnou kooperaci. Když dojde ke změně výběru položky, následně se aktualizuje obsah ve
vedlejším fragmentu. Tento způsob zobrazení je dobrým řešením pro využití místa na
obrazovce zařízení při orientaci na šířku. V detailním náhledu cviku je pak uvedeno správné provedení, část těla, na kterou je cvik zaměřený, počet opakování a názorná
ilustrace.
30
Obr. 4 Seznam cviků vytvořený na dvou samostatných fragmentech.
Zdroj: vlastní tvorba
Jednotlivé fragmenty jsou umístěny do jedné aktivity a jsou dále deklarovány jako
další samostatné aktivity. To poskytuje možnost, měnit layout a přidávat či odebírat
zobrazovaný fragment na základě natočení obrazovky. Informace k této části byly čerpány přímo z dokumentace a průvodce fragmenty dostupné na Android Developers [51].
Dále byl editován výchozí soubor simple_list_item_activated.xml pro práci
s položkami seznamu. Byl vytvořen vlastní soubor s potřebnými úpravami. Viz Zdrojový kód 4.
simple_list_item_activated_custom.xml
Zdrojový kód 3 Editace souboru pro zobrazení seznamu
31
Seznam hotových tréninků, který si uživatel má možnost zacvičit, nalezne pod
nabídkou horního menu. V seznamu jsou uvedeny informace o tom, jaké cviky v tréninku
jsou. Ikona u každé položky vyznačuje náročnost. Po vybrání tréninku se uživateli zob-
razí stručný seznam cviků, které trénink obsahuje a jejich posloupnost. Cvičení tréninků je založeno na intervalech práce a odpočinku, aplikace proto nabízí možnost změny
opakování setů 1 - 3 a volbu intervalu v rozmezí 15 - 60 sekund. Mezi jednotlivými sety je přestávka na doplnění tekutin. Pro výběr těchto hodnot byl implementován SeekBar 23.
Zde vyvstal problém, kdy bylo potřeba v obou případech zadávat minimální hodnotu
vyšší než 0. SeekBar má výchozí hodnotu nastavenou vždy právě na 0, proto se musela
požadovaná minimální hodnota dodatečně přičítat a zobrazovat uživateli až po té. Pokud uživatel zvolí daný trénink kliknutím na tlačítko start. Spustí se mu od prvního cviku s ukazatelem zbývajícího času do konce setu a do konce celého tréninku.
Obr. 5 Implementace časovače CutDownTimer
Zdroj: vlastní tvorba
Zde byl implementován časovač CutDownTimer, který přijímá dva parametry.
První parametr udává celkovou dobu, po kterou má časovač být aktivní. Po uplynutí této doby časovač provede metodu onFinish(). Druhý parametr udává dobu po které má 23
Prvek UI - táhlo vracející vybranou hodnotu.
32
časovač provést metodu onTick(). Bylo potřeba aktualizovat cvik a jeho popis vždy po uplynutí uživatelem zvoleného intervalu a následně jeden z časů, který ukazoval zbýva-
jící čas do konce setu, nulovat. Dále bylo potřeba zobrazit celkový čas do konce tréninku, který se bude po jedné vteřině aktualizovat, spolu s časem zbylého intervalu viz Obr. 7. Tento časovač byl implementován dvakrát za sebou s odlišnými časovými daty
a operacemi. Dále byl řešen problém, kdy první intervalový časovač nezačal poslední cyklus. Po bližším prozkoumání funkce časovače bylo zjištěno, že pokud je poslední interval stejný, nebo delší než zbývající čas, tak se neprovede. Po opravení tohoto problému časovač pracuje bezchybně.
Pro přecházení mezí jednotlivými aktivitami a získávaní informací, který trénink si
uživatel vybral nebo jak dlouhý interval zadal, byla použita metoda putExtra. S instancí aktivity, která se následně spustí, pošle ještě informaci navíc podle zadaných parametrů.
ExerciseListActivity.java
Intent intent = new AllWorkoutListActivity.class); if (position == 0){ intent.putExtra("Id",position+1); startActivity(intent); }
Intent(ExerciseListActivity.this,
WorkoutActivity.java Bundle extras = getIntent().getExtras(); id = extras.getInt("Id");
Zdrojový kód 4 Předávání dat mezi jednotlivými aktivitami
Kromě dvou menu bylo k navigaci v aplikaci využito vracení se do předcházející aktivity na základě zvoleného předka. Tato skutečnost se dá zvolit při samotném vytváření aktivity nebo dodatečně ručně vyplnit v souboru AndroidManifest.xml.
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value= "neco.ucimse.com.TRX_trainer.AllWorkoutListActivity" />
Zdrojový kód 5 Nastavení rodičovské aktivity v souboru AndroidManifest.xml
33
Aplikace obsahuje více typů xml souborů pro jednotlivé aktivity. Jsou vytvořena rozdílná
rozložení prvků pro zobrazení na telefonu i na tabletu. Dále v některých případech záleží na tom, jaká je orientace zařízení. Jednotlivé prvky bylo nutné přizpůsobit velikosti tabletu tak, aby byly lépe čitelné a efektivně využily více místa na obrazovce.
4.7 Testování
Testování aplikace bylo prováděno na zařízení Sencor Element P500, Sony Xperia
Go a tabletu Lenovo A7600. Aplikace má nastavené omezení na minimální verzi SDK 15. To znamená, že je dostupná pro zařízení od verze systému. Aplikace kvůli své celkové
nenáročnosti byla vyvíjena bez větších optimalizačních úprav. Testování aplikace bylo
zaměřeno hlavně na funkčnost jednotlivých částí a správnost jejich zobrazení. Následně byly prováděny úpravy spíše estetického charakteru. Převážně byly upravovány
soubory, pro zobrazení na různých zařízeních, kde se prvky zobrazovaly nesprávně nebo
se v určitých situacích překrývaly. Intuitivnost ovládání byla testována na vybraných dobrovolnících jak z oboru tak i laiků. Testování proběhlo v pořádku a kromě problému
s výše zmíněným časovačem, nebylo nutno řešit další větší problémy.
4.8 Propagace a zavedení
Aplikace je poskytována zdarma dostupná v obchodě Google Play. Pro publikování
aplikace je nutné si na Google play zaregistrovat vývojářský účet. Samotné registraci
vývojáře předchází platba jednorázového poplatku 25 USD. Vývojář také musí potvrdit distribuční smlouvu.
Po přijetí objednávky o platbě je povolen vstup do systému. Pro nahrání samotné
aplikace je potřeba zadat jméno aplikace a připojit soubor apk. Soubor je generován
samotným Android Studiem. Android vyžaduje, aby každá vygenerovaná aplikace byla
zaštítěna digitálním podpisem. Existují dva druhy podpisů, jeden se prování pro aplikace
v ladícím módu a druhý u aplikací připravených k distribuci. V prvním případě podepisování aplikace dělá samo Android Studio automaticky, přiděluje certifikát pouze na
ladící úrovni. Pro podpis aplikace pro publikování, je potřeba vytvořit vlastní privatkey
soubor. Android studio nabízí jednoduchého průvodce na vytvoření tohoto certifikátu.
Po následném generování aplikace je vyžadováno heslo, které bylo zvoleno. Tento soubor s podpisem by měl být uložen na bezpečném místě. 34
Pro publikování je nutné zadat krátký a dlouhý popis aplikace. Byly vyplněny
základní informace o aplikaci, a co by mělo být jejím přínosem. Dále pak informace o samotném projektu. Po vyplnění základních informací je potřeba dodat snímky obra-
zovky pro podporovaná zařízení. Pro zveřejnění aplikace vyžaduje Google Play alespoň
dva. Pro zpřístupnění aplikace pro tablety a zařazení do této kategorie je nutné doplnit
i snímky obrazovky tabletu.
Při nahrávání je nutné vybrat výchozí jazyk dané aplikace. V tomto případě byla
zvolena čeština. Google Play nabízí placenou službu pro překlad informací o aplikaci do jiných jazyků. Jsou zde i možnosti nahrání různých jazykových mutací snímku obrazovky
a propagační grafiky. Jako další jazyk byla zvolena angličtina 24 kvůli existujícímu anglickému překladu aplikace. Dále pak musí být zvolen typ obsahu aplikace a nově Google
Play také zavedl dotazník, jehož prostřednictvím se žádá o hodnocení obsahu. Tato položka není zatím povinná, ale stane se tomu tak v brzké době.
4.9 Využití
Aplikace má za cíl seznámit uživatele s tímto typem cvičení a poskytnout mu info-
rmace a podklady potřebné k tréninku. Na základě této aplikace má uživatel možnost si
v reálném čase zacvičit vybraný trénink. Aplikace není závislá na internetovém připojení, proto je možné díky ní cvičit téměř kdekoliv.
24
Angličtina (Spojené království)
35
4.10 Uživatelská dokumentace Aplikace Mobile suspension trainer je aplikace pro podporu zdravého životního
stylu. Poskytuje možnost zacvičit si podle ní plnohodnotný trénink s TRX kdekoli, kde s sebou má uživatel své mobilní zařízení.
4.10.1 Seznámení
Aplikace je nezávislá na Internetovém připojení a díky intuitivnímu uživatelskému
rozhraní se aplikace velice snadno ovládá. Je k dostání pro zařízení s operačním systémem Android a je dostupná na online obchodu s aplikacemi Google Play.
4.10.2 Funkce
Aplikace poskytuje uživateli možnost vybrat si z pěti tréninků rozdělených podle
svalových partií a náročnosti. Vybraný trénink si po kliknutí má možnost detailněji prohlédnout. Uživateli se zobrazí, jaké cviky trénink obsahuje a v jakém pořadí jdou za
sebou. Následně má možnost si tento trénink v reálném čase zacvičit. Dále aplikace poskytuje informace o jednotlivých cvicích, které je možné na závěsném systému
provádět. Ke každému cviku je popsán postup správného provedení, doporučený počet opakování cviku a vyznačená svalová partie, pro kterou je tento cvik určen. Dále pak jsou dostupné jednoduché ilustrace zobrazující, jak cvik při správném provedení vypadá.
4.10.3 Podpora zařízení
Aplikace je dostupná pro zařízení pracující na operačním systému Android verze
4.0.3 a vyšší. Aplikace je optimalizována i pro použití na tabletech.
36
5 Závěr Vývoj mobilní aplikace je odvětví, které se dá uchopit rozdílnými způsoby. Aby
mohl vývoj mobilní aplikace vést ke kvalitnímu výsledku a to hlavně po finanční stránce, je třeba rozsáhlého procesu, pro který je nezbytný kvalitní tým vývojářů a znalosti
v daných oblastech.
Mobilní aplikace jsou v dnešních dnech jedno z rychle měnících odvětví a to hlavně
díky svému nedávnému nástupu na trh. Vývojář ale již musí počítat s tím, že výhody,
které s sebou přináší nové technologie, například to, že lze snadno vytvořit něco velmi žádaného hlavně proto, že je velmi vysoká poptávka a omezená nabídka, už jsou skoro
minulostí. Trh s mobilními aplikacemi se z poměrně nejistého odvětví rychle zformoval do podoby, jakou známe dnes.
Pokud je tedy za vytvářenou aplikací vidina zisku, je to hlavně obchodní záležitost
a kroky s ní spojené. S růstem moderních technologií se revolučně změnily i marketingové strategie. Tým vývojářů proto musí být pořád v střehu a získávat nejnovější informace.
Vývoj zařízení se stále posouvá dopředu a přichází s novými možnostmi využití
a spolupráce jednotlivých zařízení. Platforma Android podporuje stále více zařízení a tím vznikají nové myšlenky, jak ještě lépe tyto technologie využít. Pokud je tedy tým
vývojářů schopný ucelit si myšlenku svého projektu a dokáže se rychle přizpůsobovat novým trendům, pak je vývoj mobilních aplikací velice lukrativní a zajímavé odvětví.
5.1 Shrnutí výsledků
Výsledkem této práce je rozebrání jednotlivých kroků a postupů při vývoji mobilní
aplikace. Dále pak jejich následné vyzkoušení v praxi při zpracovávání vlastní aplikace pro trénink TRX. Problémy, které vyvstaly v průběhu tvorby aplikace, jsou v práci rozebrány a řešeny.
Aplikace byla vytvořena s podporou dvou jazykových mutací, vytvářených přímo
v Android Studiu. Dále bylo vytvořeno celkové grafické uživatelské rozhraní založené na
předem zpracovaném návrhu. Jednotlivé prvky aplikace byly modifikovány tak, aby korespondovaly s předem vytvořeným barevným návrhem. Proto bylo upraveno
i výchozí grafické téma. Aplikace byla navržena tak, aby se správně zobrazovala jak na 37
menších zařízeních, tak i na tabletech. Pro efektivnější využití prostoru obrazovky, byly vytvořeny modifikace zobrazení závislé na orientaci zařízení. K jednotlivým položkám v aplikaci byly vytvářeny vlastní intuitivní ikony a ilustrace, které pak byly dále přizpů-
sobovány jednotlivým zařízením. Aplikace byla následně propagována pomocí služby Google Play, A byla vytvořena propagační grafika celé aplikace.
5.2 Doporučení
Uživatelé vytvořené aplikace by určitě v budoucnu uvítali rozšíření dostupných
cviků a tréninků, které jsou v aplikaci k dispozici. Další zajímavou funkcí by byla mož-
nost sestavení vlastní tréninku na míru. Pro lepší pochopení cviků by bylo vhodné ilustrace v aplikaci nahradit krátkými videi či animacemi.
38
6 Seznam použité literatury [1] Get Started. Android Developers. [Online] © 2015. [Citace: 22. února 2015.] http://developer.android.com/index.html.
[2] Workouts and Programs. TRX Training. [Online] © 2015. [Citace: 15. srpna 2014.] https://www.trxtraining.com/.
[3] CHAFFEY, Dave. How important are digital communications in 2014? Smart Insights.
[Online] 11. srpna 2014. [Citace: 15. 02 2015.] http://www.smartinsights.com/ marketplace-analysis/customer-analysis/digital-communications-use-statistics2014/.
[4] POLÁK, Petr. Mobilní aplikace v bussinesu. Softec. [Online] © 2014 [Citace: 10. dubna 2015.] http://www.softec.cz/reseni/aplikace/mobilni-aplikace-businessu.html.
[5] Web Applications: What are They? What of Them? Acunetix. [Online] © 2011[Citace: 11. prosince 2014.] http://www.acunetix.com/websitesecurity/ web-applications/.
[6] JANSSEN, Cory. Native Mobile App. Technopedia. [Online] © 2010. [Citace: 16. srpna 2014.] http://www.techopedia.com/definition/27568/native-mobile-app.
[7] YEUNG, Ken. Rediscovering Parse’s Mission In A Mobile And Facebook World. The
digital letter. [Online] 4. května 2014. [Citace: 16. března 2015.] http://
blog.thelettertwo.com/2014/05/04/rediscovering-parses-mission-in-a-mobile-andfacebook-world/.
[8] Smartphonům je 20 let. Projděte si jejich historii. Mobil idnes [Online] 2. listopadu 2012. http://mobil.idnes.cz/ smartphonum-je-20-let-projdete-si-jejich-historii-fus-
/mob_tech.aspx?c=A121028_220246_mob_tech_vok.
[9] History of Nokia part 2: Snake. Lumia conversations. [Online] 20. ledna 2009. [Citace: 25. srpna 2014.] http://lumiaconversations.microsoft.com/2009/01/20/history-of-
nokia-part-2-snake/.
[10] Mobile App Industry to Reach Record Revenue in 2013. New Relic. [Online] 1. dubna 2013. [Citace: 15. březen 2015.] http://blog.newrelic.com/2013/04/01/mobileapps-industry-to-reach-record-revenue-in-2013/. 39
[11] KŘÍŽ, Lukáš. Budoucnost mobilních aplikací: Výzva multiplatformity. Business world. [Online] 18. 5 2014. [Citace: 11. 4 2015.] http://businessworld.cz/analyzy /budoucnost-mobilnich-aplikaci-vyzva-multiplatformity-11660.
[12] The future of mobile apps. Business insider. [Online] © 2014. [Citace: 5. listopadu 2014.] http://www.businessinsider.com/the-future-of-mobile-apps-2014-10.
[13] STROUT, Aron. Killer App? Why Not Just Kill The App. Marketing Land. [Online] 13.
listopadu 2014. [Citace: 22. dubna 2015.] http://marketingland.com/killer-app-justkill-app-106224.
[14] Old School Suspension Training. [Online] 16. března 2010. [Citace: 26. srpna 2014.] http://rosstraining.com/blog/2010/03/16/old-school-suspension-training/.
[15] Ex-Navy SEAL Sells TRX Fitness Gear That ’Enables’ Content Sales. Bloomberg Business.
[Online]
8.
března
2011.
[Citace:
26.
srpna
2014.]
http://
www.bloomberg.com/news/articles/2011-03-08/former-navy-seal-sells-trx-
fitness-gear-to-enable-content-sales.
[16] Core trénink. Atkin. [Online] 20. srpna 2014. [Citace: 15. dubna 2015.] http:// www.aktin.cz/clanek/1075-core-trenink.
[17] Jak zpevnit střed těla? TRX cviky na břicho a CORE. TRX system. [Online] 18.července 2014. [Citace: 28. srpna 2514.] http://www.trxsystem.cz/jak-zpevnit-
stred-tela-trx-cviky-na-bricho-a-core/.
[18] BILKOVA, Iva. Fyzioklinika. Fyzioklinika. [Online] © 2014. [Citace: 22. srpna 2014.] https://www.fyzioklinika.cz/clanky-o-zdravi/hluboky-stabilizacni-system/32hluboky-stabilizacni-system.
[19] STŘELCOVÁ, Gabriela. iOS vs Android. Metodický portál. [Online] 19. prosince 2013. [Citace:
3.
ANDROID.html.
března
2015.]
http://spomocnik.rvp.cz/clanek/18205/IOS-VS-
[20] Android (operating system). Wikipedia.org. [Online] © 2015. [Citace: 22. ledna 2015.] http://en.wikipedia.org/wiki/Android_%28operating_system%29.
[21] MARVAN, Filip. Mobilní operační systém Android. Ditt.cz. [Online] 27. červen 2011. [Citace: 17. srpen 2014.] http://diit.cz/clanek/mobilni-operacni-system-android. 40
[22] OPEN HANSET ALIANCE. What would it take to build a better mobile phone? Open hanset
apliance.
[Online]
www.openhandsetalliance.com/.
[Citace:
20.
4
2015.]
http://
[23] GRANT, Allen. Android 4. Brno : COMPUTER PRESS, © 2013. 978-80-2513-7826.
[24] Bořánek, Roman. Seznámení s Androidem. LinuxExpres. [Online] 10. květen 2011.
[Citace: 15. prosinec 2014.] http://www.linuxexpres.cz/hardware/seznameni-s-
androidem.
[25] KILIÁN, Karel. Android v Evropě za rok narostl o 1580 %. seětandroida.cz. [Online] 9. 3 2011. [Citace: 18. srpen 2014.] http://www.svetandroida.cz/android-v-evrope-
za-rok-narostl-o-1580-201103.
[26] LIPERTOVÁ, Martina. Bouřlivá histroie Google Play - na začátku stál Android
Market. Svět Androida. [Online] 20. června 2014. [Citace: 11. srpna 2014.] http://svetaplikaci.tyden.cz/bourliva-historie-google-play-zacatku-stal-android-
market/.
[27] GARNETA, Marko. Learning Android : Building Applications for the Android Market. Newton : O'Reilly Media, © 2011. ISBN 978-1-4493-9050-1. S. 268..
[28] Co je to vlastně ten ANDROID? Vývoj mobilních aplikací | ELITEC SOFTWARE.
[Online] © 2015. [Citace: 22. 4 2015.] http://www.elitecsoftware.cz/vyvoj-pro-
android/.
[29] Android. Security. [Online] © 2015. [Citace: 23. ledna 2015.] https:// source.android.com/devices/tech/security/.
[30] MURPHY, Mark L. Android 2, Průvodce programováním mobilních aplikací. Brno : Computer press, 2012. 978-80-251-3194-7.
[31] FINOCCHIARO, Alessandro. Android Activity Lifecycle What is the life cycle of an
App? [Online] 19. září 2014. [Citace: 22. dubna 2015.] http://www.informaweb.it /it/en/android/android-activity-lifecycle-quale-ciclo-vita-app-android.
[32] Distribution of Android operating systems used by Android phone owners in
October 2014, by platform version. Statista. [Online] 2. února 2015. [Citace: 23. 41
února
2015.]
http://www.statista.com/statistics/271774/share-of-android-
platforms-on-mobile-devices-with-android-os/.
[33] Wikipedia.org. Android version history. [Online] © 2015. [Citace: 22. srpna 2014.] http://en.wikipedia.org/wiki/Android_version_history#Version_history_by_API_lev el.
[34] Developer Sandbox. The Linux Documentation Project. [Online] © 2012. [Citace: 28. leden
2015.]
http://www.tldp.org/REF/CVS-BestPractices/html/section1-
devsandbox.html.
[35] Počet chytrých mobilů v Evropě za pět let převýší počet obyvatel. E-svět. [Online]
24. června 2014. [Citace: 23. srpna 2014.] http://e-svet.e15.cz/technika/pocetchytrych-mobilu-v-evrope-za-pet-let-prevysi-pocet-obyvatel-1095820.
[36] Vývoj mobilní aplikace je dnes finančně spíš loterie, než byznys. [Online]14. ledna
2014. [Citace: 25. srpna 2014.] http://www.itbiz.cz/clanky/vyvoj-mobilni-
aplikace-je-dnes-financne-spis-loterie-nez-byznys.
[37] Business Plan & Start Startup. Google Play. [Online] © 2015. [Citace: 11. dubna
2015.]http://www.itbiz.cz /clanky/vyvoj-mobilni-aplikace-je-dnes-financne-spisloterie-nez-byznys
[38] ASSADI, Arman. 8-Day App Business Plan: How to Create Your First Mobile App. whyileftgoogle.com.
[Online]
©
2015
[Citace:
www.whyileftgoogle.com/8-day-app-business-plan.
13.
únor
2015.]
http://
[39] NEVOSADOVÁ, Barbora. Jak propagovat mobilní aplikaci - BarCamp videozáznam. Super
lectures.
[Online]
©
2013.
[Citace:
10.
dubna
2015.]
http://
www.superlectures.com/barcampbrno2013/jak-propagovat-mobilni-aplikaci.
[40] Share of Android mobile devices as of October 2012, by device screen size. Statista.
[Online] © 2012. [Citace: 20. srpna 2014.] http://www.statista.com/statistics/ 253520/share-of-android-devices-by-screen-size/.
[41] Material design. Google. [Online] © 2015. [Citace: 15. březen 2015.] http://www.google.com/design/spec/material-design/introduction.html. 42
[42] MICHL, Petr. Je lepší nativní aplikace nebo mobilní web? Marketing journal. [Online] 25.
června
2012.
[Citace:
22.
ledna
2015.]
http://www.m-journal.cz
/cs/internet/je-lepsi-nativni-aplikace-nebo-mobilni-web-__s281x9241.html.
[43] SEMECKÝ, Vojtěch. Android Studio – nové vývojové prostředí. Zdroják. [Online] 4. listopadu 2014. [Citace: 15. dubna 2015.] http://www.zdrojak.cz/clanky/androidstudio-nove-vyvojove-prostredi/.
[44] Android Studio Overview. Android Developers. [Online] © 2015. [Citace: 26. ledna 2015.] https://developer.android.com/tools/studio/index.html.
[45] KUČERA, František. Distribuované verzovací systémy - úvod(1). ABC LINUXU. [Online] 25. ledna 2011. [Citace: 24. dubna 2015.] http://www.abclinuxu.cz
/clanky/distribuovane-verzovaci-systemy-uvod-1.
[46] PULTZNER, Martin a ŠIMON, Martin. Inmite - jak se vyvíjejí aplikace pro Android a iOS? (rozhovor). Mobilenet. [Online] 3. listopad 2011. [Citace: 16. dubna 2015.] http://mobilenet.cz/clanky/inmite---rozhovor-s-ceskymi-vyvojari-mobilnich-
aplikaci-7916.
[47] Testování alfa a beta verzí a zavádění po etapách. Google Play. [Online] © 2015. [Citace: 15.
března
2015.]
https://support.google.com/googleplay/android-
developer/answer/3131213?hl=cs.
[48] SIGEL, Erza. Fake Reviews in Google Play and Apple App Store. Apptentive. [Online] 27. květen 2014. [Citace: 15. duben 2015.] http://www.apptentive.com/blog/fakereviews-google-play-apple-app-store/.
[49] Propagace mobilních aplikací. Google support. [Online] © 2015. [Citace: 11. února 2015.] https://support.google.com/adwords/answer/2549053?hl=cs.
[50] OEM USB Drivers. Android developers. [Online] © 2015. [Citace: 26. ledna 2015.] http://developer.android.com/tools/extras/oem-usb.html.
[51] Fragment, Android Developers. [Online] © 2015. [Citace: 11. dubna 2015.] http:// developer.android.com/ reference /android/app/Fragment.html.
43
Seznam příloh A. Návrh uživatelského rozhraní B. Snímky obrazovky aplikace C.
Propagační grafika a logo aplikace
D. Obsah kompaktního disku
1
A Návrh uživatelského rozhraní
2
B Snímky obrazovky aplikace
3
4
5
C Propagační grafika C.1 Propagační grafika použitá na Google Play.
C.2 Ikona aplikace
6
D Obsah kompaktního disku K práci je přiložen kompaktní disk, na kterém jsou uloženy všechny zdrojové soubory aplikace včetně zdrojových kódů a vytvořených grafických prvků.
7