67
Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova ulica 17 2000 Maribor, Slovenija David Mesarič OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Magistrsko delo Maribor, oktober 2014

OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Fakulteta za elektrotehniko, računalništvo in informatiko

Smetanova ulica 17

2000 Maribor, Slovenija

David Mesarič

OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID

Magistrsko delo

Maribor, oktober 2014

Page 2: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

i

NASLOV MAGISTRSKEGA DELA

OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID

Študent: David Mesarič

Študijski program: študijski program 2. stopnje

Smer: Računalništvo in informacijske tehnologije

Mentor: red. prof. dr Peter Kokol

Lektorica: Petra Zupanc

Page 3: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

ii

Page 4: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

iii

ZAHVALA

Zahvaljujem se mentorju red. prof. dr Petru

Kokolu za pomoč in vodenje pri opravljanju

magistrskega dela.

Posebna zahvala velja staršem, ki so mi

omogočili študij.

Page 5: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

iv

OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID

Ključne besede: Osebni trener, mobilna platforma, fitnes, Android, SDK, Java, MySQL

UDK: 316.772.5(043.2)

Povzetek

Cilj magistrske naloge je bil razviti mobilno aplikacijo, ki nam bo pomagala do bolj

učinkovite fitnes vadbe ter do hitrejših in vidnejših rezultatov, predvsem pa pravilnejšega

izvajanja vaj. V aplikacijo smo vključili uporabniški vmesnik in generator, ki bo učinkovito

izdeloval fitnes programe za uporabnike glede na njihove želje.

Opisali smo tudi vsa razvojna okolja, ki so bila potrebna za razvoj te aplikacije.

Page 6: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

v

PERSONAL TRAINER ON MOBILE PLATFORM ANDROID

Key words: personal trainer, mobile platform, fitness, Android, SDK, Java, MySQL

UDK: 316.772.5(043.2)

Abstract

The goal of this thesis was to develop a mobile application that would provide more

efficient strength training, help users achieve quicker and more visible results as well as

show instructions on how to do the exercises the correct way.

The application includes a user interface and a generator which will efficiently construct

fitness programs according to user’s needs.

We also described all the development tools used in the making of this application.

Page 7: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

vi

VSEBINA

1 Uvod ..................................................................................1

1.1 Namen osebnega trenerja .............................................................................................. 1

1.2 Značilnosti zaposlovanja ................................................................................................ 2

1.3 Splošen fitnes trening ..................................................................................................... 2

1.4 Izguba teže in mišična definicija .................................................................................... 3

1.5 Predpostavke in omejitve ............................................................................................... 3

1.6 Struktura magistrskega dela .......................................................................................... 3

2 Razvojno okolje ................................................................4

2.1 Razvojno okolje Eclipse .................................................................................................. 4

2.2 Operacijski sistem Android ............................................................................................. 4

2.3 Programski jezik Java ..................................................................................................... 4

2.4 Android programski razvojni paket ............................................................................... 6

2.5 Android orodja za razvijalce ........................................................................................... 6

2.6 MySql podatkovna baza ................................................................................................. 7

3 Implementacija aplikacije ................................................9

3.1 Programsko okolje ........................................................................................................... 9

3.2 Podatkovna baza ............................................................................................................. 9

3.3 Izdelava grafičnega vmesnika ..................................................................................... 11

3.3.1 Manifest ................................................................................................................... 12

3.3.2 Prijava in registracija ............................................................................................. 14

3.3.3 Glavni del aplikacije ............................................................................................... 17

3.3.4 Viri nizov .................................................................................................................. 26

3.3.5 Podprtost večjezičnosti ......................................................................................... 29

3.4 Izdelava generatorja fitnes programov ....................................................................... 31

4 Rezultati ..........................................................................34

4.1 Registracija novega uporabnika .................................................................................. 34

4.2 Prijava v aplikacijo ......................................................................................................... 35

4.3 Zavihek Domov .............................................................................................................. 36

Page 8: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

vii

4.4 Zavihek Trening ............................................................................................................. 37

4.5 Zavihek Izzivi .................................................................................................................. 38

4.6 Meni gumb Podatki o aplikaciji .................................................................................... 39

4.7 Meni gumb Vodič ........................................................................................................... 40

4.8 Meni gumb Zgodovina treningov ................................................................................. 41

4.9 Meni gumb Vrsta mišic ................................................................................................. 42

4.10 Meni gumb Nastavitve .................................................................................................. 43

4.11 Meni gumb Vaje ............................................................................................................. 44

4.12 Meni gumb Sestavljeni programi ................................................................................. 45

4.13 Generiranje novega programa ..................................................................................... 46

4.14 Izbor že sestavljenega programa ................................................................................ 47

4.15 Prikaz podrobnosti izbrane vaje .................................................................................. 48

5 Težave .............................................................................49

6 Sklep ................................................................................50

7 Literatura, viri .................................................................51

Page 9: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

viii

KAZALO SLIK

Slika 1: ER diagram podatkovne baze ..............................10

Slika 2: Struktura datoteke Manifest .................................13

Slika 3: Element <resources> za niz .................................26

Slika 4: Aplikacijska koda za pridobivanje niza ...............27

Slika 5: XML layout, ki se sklicuje na niz ..........................27

Slika 6: XML datoteka, ki se sklicuje na polje nizov ........27

Slika 7: Aplikacijska koda za pridobivanje polje nizov ....28

Slika 8: XML layout, ki se sklicuje na angleščino ............29

Slika 9: XML layout, ki se sklicuje na poljščino ...............29

Slika 10: Aplikacijska koda za pridobivanje množičnih

nizov .....................................................................................29

Slika 11: Podmape za različne jezike ................................30

Slika 12: Odločitveno drevo ...............................................33

Slika 13: Registracija novega uporabnika ........................34

Slika 14: Vpis uporabnika v aplikacijo ..............................35

Slika 15: Zavihek Domov ....................................................36

Slika 16: Zavihek Trening ...................................................37

Slika 17: Zavihek Izzivi ........................................................38

Slika 18: Podatki o aplikaciji ..............................................39

Slika 19: Vodič .....................................................................40

Slika 20: Pregled zgodovine treningov .............................41

Slika 21: Pregled mišičnih sklopov ...................................42

Slika 22 in 23: Nastavitve ...................................................43

Slika 24: Pregled vseh vaj ..................................................44

Page 10: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

ix

Slika 25: Pregled vseh programov ....................................45

Slika 26: Generiranje novega fitnes programa .................46

Slika 27 in 28: Izbor že sestavljenega programa ..............47

Slika 29: Prikaz fitnes vaj ...................................................48

Page 11: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

x

KAZALO KODE

Primer kode 1: Povezava s podatkovno bazo ..................11

Primer kode 2: Extends in implements .............................14

Primer kode 3: ViewPager ..................................................14

Primer kode 4: LoginTabsAdapter.....................................15

Primer kode 5: Dodajanje zavihkov ...................................15

Primer kode 6: Tab Change Listener .................................16

Primer kode 7: View Change Listener ...............................17

Primer kode 8: Pridobivanje zgodovine s pomočjo

skupnih preferenc ...............................................................18

Primer kode 9: shranjevanje zgodovine s skupnimi

preferencami ........................................................................19

Primer kode 10: List_group layout ....................................20

Primer kode 11: List_item layout .......................................20

Primer kode 12: MyExpandableListViewAdapter .............20

Primer kode 12: Nastavitve prefs.xml ...............................21

Primer kode 13: Polnjenje seznama vaj ............................22

Primer kode 14: Prikaz videa .............................................23

Primer kode 15: Polje možnih izborov za gradnik Spinner

24

Primer kode 16: Populacija gradnikov Spinner ................25

Primer kode 17: Metoda setLocale ....................................31

Primer kode 18: Manifest ....................................................31

Page 12: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

1

1 UVOD

Osebni trener je strokovnjak za fitnes, ki stranki sestavi načrt telesne vadbe in prikaže

izvedbo vaj. Skrbi tudi za njeno motivacijo pri doseganju zastavljenih ciljev in ji daje

povratne informacije. S pomočjo različnih testov fizične zmogljivosti osebni trener oceni

njeno kondicijo. Takšni testi se lahko izvedejo tudi pred začetkom in po zaključku

posameznega programa, da se izmeri strankin napredek. Poleg vadbe osebni trener svoji

stranki svetuje tudi glede splošnega dobrega počutja, zdravja in prehranskih smernic.

Če trener sumi, da ima katera izmed njegovih strank zdravstveno stanje, ki bi lahko

preprečila varno vadbo v vadbenem programu, jo mora napotiti na ustrezni zdravstveni

pregled [1].

1.1 Namen osebnega trenerja

Naloga osebnega trenerja je izboljšati fizično zmogljivost zdravih ljudi.

Rezultat pravilnega vadbenega načrta je lahko izboljšana telesna sestava, fizična

zmogljivost in boljše zdravstveno stanje. Ljudje se odločijo za osebnega trenerja, da bi z

njegovo strokovno pomočjo in motivacijo dosegli takšne rezultate. Trener posveča veliko

pozornosti vadbeni formi, vadbenim rutinam ter prehranskim načrtom svoje stranke.

Raziskave so pokazale, da je trening pri ženskah vplival na vedenjske vzorce, izboljšal

razmerje med koristnostjo in škodljivostjo vadbe (odločitveno ravnotežje) in povečal

zanimanje za izbiro vadbe pred drugimi obveznostmi (načrtovanje samo-učinkovitosti) [3].

Posledica osebnega treninga pri ženskah je večja moč, večja intenzivnost vadbe in večji

napor med vadbo. Čeprav si ženske, ki imajo osebne trenerje, same izbirajo višje

obremenitve, kot tiste ki jih nimajo, so te obremenitve še vedno pod priporočenimi

obremenitvami [1].

Page 13: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

2

1.2 Značilnosti zaposlovanja

Poklic na splošno ni krajevno omejen, saj lahko osebni trenerji delajo tako v fitnesih,

svojih domovih, domovih strank kot tudi preko videa v živo (imenovani tudi »virtualni

osebni trenerji«) ali pa na prostem. Skoraj vsi osebni trenerji delajo v zdravstvenih in fitnes

centrih, ki se nahajajo v zabavni ter rekreacijski industriji ali v civilnih in socialnih

organizacijah [1].

Osebni trenerji se lahko specializirajo za določeno vrsto treninga, filozofijo treninga, tip

izvedbe ali populacijo strank. Večina osebnih trenerjev razvije vadbene načrte za

aerobne, vzdržljivostne in prožnostne vaje. Za aerobne vaje osebni trener določi vrsto,

trajanje in pogostost vadbe. Za vzdržljivostne vaje določi vrsto vadbe, skupni obseg

vadbe, čas počitka, pogostost in intenzivnost vadbe. Osebni trener je lahko vključen tudi

v rutine raztezanja ali druge pristope. Medtem ko nekateri razpravljajo o prehrani,

proteinskih dodatkih in duhovnih praksah s strankami, potekajo razprave ali to sploh

spada v njihovo področje prakse in usposabljanja [1].

1.3 Splošen fitnes trening

Splošen fitnes trening stremi k širšim ciljem splošnega zdravja in dobrega počutja in ne k

ozkim ciljem športnega tekmovanja, velikosti mišic ali pomislekov glede videza. Redni

zmerni vadbeni režim in zdrava prehrana lahko izboljšata splošne pokazatelje dobrega

zdravja, kot so mišični tonus, zdrava koža, lasje in nohti, medtem ko upočasnjujeta

staranje in zmanjšujeta tveganje za različne bolezni ki jih povzroči slaba prehrana in

neaktivnost. Pravilna dieta pomaga izboljšati metabolizem, kar poveča izgorevanje kalorij

[2].

Page 14: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

3

1.4 Izguba teže in mišična definicija

Splošen fitnes trening se lahko uporabi za hitrejšo izgubo teže. Osebni trenerji sestavijo

program, ki je osredotočen na spremembo načina življenja, hkrati pa pomagajo zagotoviti

potrebno motivacijo za uspeh.

Splošen fitnes trening se lahko uporablja tudi za krepitev mišic [2].

1.5 Predpostavke in omejitve

Kot glavno omejitev pri svoji magistrski nalogi vidim, da bo končni rezultat za popolno

delovanje potreboval internetno povezavo za vračanje podatkov na podatkovno bazo.

Prav tako bo končni izdelek omejen na operacijski sistem Android in ga bo mogoče

uporabljati samo na mobilnih napravah.

Aplikacija bo prilagodljiva tudi za prihodnje nadgradnje.

1.6 Struktura magistrskega dela

V drugem poglavju smo opisali tehnologije, ki smo jih potrebovali za izdelavo

magistrskega dela. To so programski jezik Java, Android SDK ter MySQL podatkovna

baza.

Tretje poglavje smo namenili razvoju naše aplikacije. Opisali smo funkcionalnosti, ki smo

jih vključili, ter njihov namen.

V četrtem poglavju smo prikazali rezultate naše aplikacije. Dodali smo tudi slike končnega

izdelka.

Page 15: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

4

2 RAZVOJNO OKOLJE

2.1 Razvojno okolje Eclipse

V računalniškem programiranju je Eclipse integrirano razvojno okolje. Vsebuje osnovni

delovni prostor in razširljiv vtični sistem za prilagajanje okolja. Eclipse se uporablja

predvsem za razvoj Java aplikacij, vendar pa se lahko z uporabo vtičnikov razvojno okolje

Eclipse uporabi tudi za razvoj aplikacij v drugih programskih jezikih kot so ABAP, C, C++,

COBOL, FORTRAN, HASKEL, JavaScript [24].

2.2 Operacijski sistem Android

Android je mobilni operacijski sistem (v nadaljevanju OS), ki je zgrajen na Linuxovem

jedru in ga trenutno razvija Google. Z uporabniškim vmesnikom, ki temelji na direktni

manipulaciji, je Android namenjen predvsem za mobilne naprave s tehnologijo zaslona na

dotik, kot so pametni telefoni in tablični računalniki [3].

Zaslon na dotik je računalniška vhodno-izhodna enota, ki s površino, namenjeno

prikazovanju podatkov, zaznava tudi dotik uporabnikovega prsta ali ustrezno ostrega

predmeta (npr. pisala). To uporabniku omogoča neposredno interakcijo z grafičnimi

elementi na zaslonu za razliko od drugih vhodnih enot (npr. miške), kjer je interakcija

posredna, prek kurzorja [4].

Izvirna koda Androida je na voljo v okviru odprtokodne licence [3].

2.3 Programski jezik Java

Programski jezik Java je bil predstavljen leta 1995 s strani Sun Microsystems in v trenutku

je ustvaril nove možnosti interakcije s spletom [5].

Page 16: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

5

Java je programski jezik, izrecno namenjen za uporabo v porazdeljenem okolju interneta.

Zasnovan je bil, da izgleda kot programski jezik C++, vendar je enostavnejši za uporabo

in uveljavlja objektno orientiran programski model. Java se lahko uporablja za ustvarjanje

dokončanih aplikacij, ki lahko delujejo na posameznem računalniku ali pa so porazdeljene

med strežniki in odjemalci v omrežju. Prav tako je lahko uporabljena za izgradnjo malih

aplikacijskih modulov ali programčkov za uporabo kot del spletnih strani [5].

Glavne značilnosti Jave so:

- Programi, ki jih ustvarimo, so prenosni v omrežju. Izvirni program je preveden v

»bytecode«, ki se lahko izvaja kjerkoli v omrežju na strežniku ali odjemalcu, ki ima

Javansko navidezno napravo. Javanska navidezna naprava interpretira

»bytecode« v kodo, ki bo delovala na pravi računalniški strojni opremi. To pomeni,

da se lahko posamezne razlike v računalniški platformi, kot je na primer dolžina

ukazov, prepoznajo in upoštevajo lokalno kar med izvajanjem programa.

Določanje verzij platforme vašega programa tako ni več potrebno [5].

- Koda je robustna, to pomeni, da za razliko od programov, napisanih v

programskem jeziku C++ in morda nekaj drugih jezikih, Javanski objekti ne morejo

vsebovati sklicev na zunanje podatke. To zagotavlja, da ukazi ne morejo vsebovati

točno določene poti shranjenih podatkov v drugih aplikacijah ali operacijskem

sistemu, saj bi to privedlo do odpovedi programa ali operacijskega sistema.

Javanska navidezna naprava naredi številne preglede vsakega objekta, da

zagotovi celovitost [5].

- Java je objektno orientiran jezik, kar pomeni, da med drugimi značilnostmi lahko

objekt izkoristi, da je del razreda objektov in podeduje kodo, ki je značilna za

razred [5].

- Razen tega, da se izvaja na odjemalcu namesto na strežniku, ima Javanski aplet

druge lastnosti, zasnovane tako, da deluje hitreje [5].

- V primerjavi s programskim jezikom C++ se je programskega jezika Java lažje

naučiti [5].

Page 17: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

6

2.4 Android programski razvojni paket

Android razvoj programske opreme je proces za razvijanje aplikacij, ki bodo delovale na

operacijskem sistemu Android. Aplikacije so po navadi razvite v programskem jeziku Java

s pomočjo paketa razvojnih orodij, imenovanim Android Software Development Kit

(SDK)[6].

Android SDK vključuje celovit nabor razvojnih orodij, kot so razhroščevalnik, knjižnice,

dokumentacija, vzorci kode in vodiči. Trenutne podprte razvojne platforme vsebujejo

računalnike, ki uporabljajo operacijske sisteme Linux, Mac OS X 10.5.8 ali novejše ter

Windows XP ali novejše. Uradno podprto integrirano razvojno okolje (v nadaljevanju IDE),

je Eclipse, ki kot vtičnik uporablja razvojna orodja Android (v nadaljevanju ADT). Poleg

tega lahko razvijalci za urejanje Java in XML datotek uporabijo katerikoli urejevalnik

besedil in nato uporabijo ukazno vrstico, da ustvarijo, zgradijo ter odpravijo napake v

aplikaciji za Android [6].

Izboljšava paketa Android SDK poteka vzporedno s splošnim razvojem Android platforme.

SDK prav tako podpira starejše verzije platform Android, tako da lahko razvijalec usmeri

razvoj svoje aplikacije na starejše naprave. Razvojna orodja so komponente, prenosljive s

spleta. S prenosom najnovejše verzije razvojnega orodja in platforme je omogočen tudi

prenos starejših platform in orodij za testiranje kompatibilnosti s starejšimi verzijami

Android OS [6].

2.5 Android orodja za razvijalce

Android orodja za razvijalce (ADT) je vtičnik za Eclipse, ki omogoča dostop do orodij, ki so

vključena v Eclipse IDE. ADT nam omogoči dostop do številnih funkcij, ki nam pomagajo

pri razvoju Android aplikacij. ADT ponuja grafično-uporabniški vmesnik do številnih

ukazno-vrstičnih SDK orodij kot tudi orodij za oblikovanje uporabniških vmesnikov za hitro

izdelavo prototipov, oblikovanje in gradnjo aplikacijskega uporabniškega vmesnika [7].

ADT ponuja številne funkcije, ki nam omogočajo oblikovanje in gradnjo aplikacijskih

uporabniških vmesnikov. Večina teh funkcij se nahaja v grafičnem urejevalniku postavitve

elementov, ki je dostopen preko ene izmed aplikacijskih XML postavitvenih datotek v

Eclipsu [7].

Page 18: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

7

Urejevalnik grafične postavitve je glavno okno, ki se uporablja za vizualno oblikovanje in

izgradnjo uporabniškega vmesnika. Razdeljeno je v naslednje dele:

- Platno: V sredini urejevalnika je platno, kjer se sproti prikazuje razporeditev

gradnikov. Platno podpira »povleci in spusti« gradnike neposredno iz palete.

Izberemo lahko različne verzije platforme in s tem razporedimo gradnike po platnu.

Vsaka različica platforme ima svoj videz, ki je lahko podoben ali popolnoma

drugačen v primerjavi z drugimi različicami platforme. Platno prav tako omogoča

kontekstno-občutljive ukrepe v orodni vrstici za postavitev, kot je prilagoditev robov

in določitev orientacije [7].

- Pregled: Na desni strani urejevalnika je pregledni pogled, ki prikazuje hierarhični

pogled postavitve gradnikov. Tu lahko spreminjamo pogled. Pregledni pogled

izpostavlja podobne funkcionalnosti kot platno, vendar prikaže postavitev

gradnikov v urejenem seznamu [7].

- Paleta: Na levi strani urejevalnika je paleta, ki zagotavlja nabor gradnikov, ki jih

lahko povlečemo na platno [7].

- Izbirnik konfiguracij: Na vrhu urejevalnika je možnost izbora konfiguracij, ki nam

zagotavlja možnosti za spremembo načina prikazovanja pogleda gradnikov [7].

2.6 MySql podatkovna baza

MySQL podatkovna baza je postala najbolj popularna odprtokodna baza na svetu zaradi

njene zmogljivosti, zanesljivosti in enostavnosti za uporabo. Podatkovna baza MySQL je

bila prvič izdana januarja leta 1998. Prav tako se ta podatkovna baza pogosto uporablja

zanovo generacijo aplikacij, ki temeljijo na skupku odprtokodne programske opreme

LAMP (Linux, Apache, MySQL, PHP / Pearl / Python) [8][9]. Veliko največjih in najhitreje

razvijajočih se svetovnih organizacij, kot so Facebook, Google, Adobe, Lucent in Zappos,

se zanaša na podatkovno bazo MySQL, da prihranijo čas in denar pri delovanju njihovih

obsežnih spletnih strani. MySQL deluje na skoraj vseh platformah, vključno z

operacijskimi sistemi Linux, UNIX in Windows, ter zagotavlja tudi delovanje na večini

programskih jezikov, kot so C, C#, Java, Eiffel, Perl, PHP, Python in Tel [8][10].

MySQL podatkovna baza se kot vse ostale podatkovne baze uporablja za sledenje

spletnih ali programskih podatkov. Tehnični izraz za MySQL je Relation Database

Management System (RDBMS). MySQL je programska oprema, ki neprekinjeno deluje in

Page 19: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

8

omogoča drugim programom, da dostopajo do njenih podatkov. Podatkovna baza je

zgrajena iz tabel, ki so strukturirane tako, da lahko vsebujejo posebne tipe informacij.

Nekatera polja lahko vsebujejo samo števila, medtem ko druga polja samo datume

oziroma druge podatkovne tipe [8][10].

Page 20: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

9

3 IMPLEMENTACIJA APLIKACIJE

Cilj razvoja aplikacije Osebni trener na mobilni platformi Android je bil razviti aplikacijo, ki

uporabnikom glede na vnos podatkov vrne čim učinkovitejši program za vadbo v fitnesu

za dosego njihovih ciljev. Implementirali smo uporabniku prijazen način komuniciranja z

mobilno napravo za oblikovanje učinkovitega fitnes treninga.

Omogočili smo preprosto registracijo uporabnikov za lažje sledenje njihovim napredkom.

Izdelali smo grafični vmesnik, kjer lahko uporabnik izbira med že izdelanimi fitnes

programi ter številnimi bolj ali manj zahtevnimi vajami. Izdelali smo tudi generator vaj, ki

učinkovito izdeluje fitnes programe za uporabnike glede na njihove želje.

V tem poglavju smo podrobneje opisali ter slikovno prikazali implementacijo zgoraj

naštetih funkcionalnosti.

3.1 Programsko okolje

Za razvoj aplikacije smo uporabili programski jezik Java ter paket razvojnih orodij Android

SDK. Za shranjevanje podatkov smo uporabili podatkovno bazo MySQL.

3.2 Podatkovna baza

Za skoraj vsako večjo aplikacijo stoji tudi podatkovna baza. Da bi lažje sledili številu, vrsti

in napredku uporabnikov ter s pridobljenimi podatki omogočili hitre izboljšave aplikacije,

smo podatkovno bazo uporabili tudi sami. Izbrali smo podatkovno bazo MySQL.

Za našo aplikacijo smo najprej določili tabele oziroma entitete. Entitete ali predmeti

podatkov so objekti opazovanja. Objekt opazovanja pa je vse, kar lahko enolično

identificiramo, izoliramo od okolice in opišemo. Entitete identificiramo tako, da jim

določimo ime, lastnosti entitete in vrednost lastnosti. Ker smo želeli, da aplikacija deluje

čim bolj samostojno in za delovanje ne potrebuje neprestanega povezovanja na internet,

saj bi s tem v veliki meri zmanjšala uporabnost, smo se odločili, da v podatkovno bazo

Page 21: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

10

shranjujemo le pomembne podatke [11]. Zato smo določili pet entitet: Uporabnik, Spol,

Email, Država ter Napredek.

Tem entitetam smo nato določi atribute. Atribut (podatkovni element ali element podatkov)

je tisti podatek, ki z vidika vsebine, torej z vidika uporabnika, ni več členljiv oziroma ga ni

možno ali smiselno razstaviti na manjše dele [11].

Da lahko dostopamo do podatkov iz različnih entitet, smo vse entitete med seboj povezali

z relacijskimi povezavami, ki nam pokažejo odnos med dvema entitetama, ter določili

primarne, sekundarne in zunanje ključe. Relacije med entitetami morajo biti ena proti

mnogo oziroma mnogo proti ena.

Da lahko iz naše aplikacije dostopamo do podatkovne baze se je potrebno z bazo najprej

povezati. To povezavo dosežemo s pomočjo tako imenovanih povezovalnih nizov

(connection strings). Povezavo z bazo moramo vzpostaviti pred vsakim dostopanjem do

podatkov ter jo po končanem delu tudi prekiniti. Ko želimo pridobiti podatke iz podatkovne

baze, moramo vnaprej določiti tabelo, oziroma tabele, v katerih se ti podatki nahajajo. To

storimo z uporabo poizvedbenih stavkov [8].

Slika 1: ER diagram podatkovne baze

Page 22: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

11

Primer kode 1: Povezava s podatkovno bazo

3.3 Izdelava grafičnega vmesnika

Ker se določeni uporabniški podatki shranjujejo v podatkovno bazo, je bil prvi korak

izdelave aplikacije uporabniku omogočiti možnost registracije novega računa ter samo

prijavo v aplikacijo, ki mu bo služila kot pomočnik pri treningu. Ker smo želeli, da aplikacija

deluje čim bolj neodvisno, ter da za delovanje ne potrebuje nenehnega dostopa do

interneta, je prijava oziroma dostop do baze podatkov potreben le, ko uporabnik prvič

uporablja aplikacijo, torej ko se registrira in v primeru kreiranja novega tedenskega fitnes

programa.

Za razliko od drugih programskih paradigem, v katerih se aplikacije poganjajo z glavno

metodo main(), Android sistem kodo zaganja na tako imenovanih aktivnostih oziroma

Activity s sklicevanjem na posebne metode povratnih klicev, ki ustrezajo posebnim

stopnjam njihovega življenjskega cikla [12].

Za Android aplikacije je značilno, da sprememba konfiguracije, na primer zasuk telefona

vodoravno in podobno, povzroči zaustavitev, ponovni zagon in ponastavitev videza

aktivnosti z novimi konfiguracijskimi parametri. To povzroči izgubo vseh informacij o stanju

aktivnosti, ki je bila prvotno aktivna, zato smo uporabili tako imenovane fragmente [13].

Fragment predstavlja vedenje ali del uporabniškega vmesnika v aktivnosti. V posamezni

aktivnosti lahko združimo več fragmentov in s tem ustvarimo več-okenski uporabniški

Page 23: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

12

vmesnik ter iste fragmente uporabimo v več aktivnostih. Fragment si torej lahko

predstavljamo kot modularni del aktivnosti, ki ima svoj življenjski krog in ga lahko dodamo

neki aktivnosti med njenim delovanjem [14].

Fragment mora vedno biti vključen v aktivnost in njegov življenjski cikel je zmeraj odvisen

od življenjskega cikla aktivnosti, v katero je vključen. Na primer, če se aktivnost zaustavi,

se zaustavijo tudi vsi fragmenti, ki so v njej. Prav tako se uničijo vsi fragmenti, ko se uniči

aktivnost. Med potekom aktivnosti pa lahko s fragmenti manipuliramo po želji. Ko

menjamo fragmente v aktivnosti, lahko tudi shranimo njihovo zaporedje, tako se lahko s

pritiskom na gumb nazaj kadarkoli vrnemo na prejšnji fragment [14].

3.3.1 Manifest

Vsaka Android aplikacija mora imeti v svoji korenski mapi datoteko AndroidManifest.xml (s

točno takšnim imenom), v kateri so shranjene bistvene informacije o aplikaciji, ki jih sistem

potrebuje, preden lahko požene kakršno koli kodo aplikacije. Med drugim manifest naredi

sledeče [25]:

- Poimenuje Java paket za aplikacijo. Ime paketa služi kot edinstven identifikator za

aplikacijo [25].

- Opisuje aplikacijske komponente, kot so aktivnosti in storitve. Poimenuje razrede,

ki izvajajo vsakega od sestavnih delov, in objavi njihove zmogljivosti. Te izjave

Android sistem obvestijo, katere so komponente in pod kakšnimi pogoji se lahko

zaženejo [25].

- Določa, kateri proces bo gostil aplikacijske komponente [25].

- Razglasi, katera dovoljenja mora aplikacija imeti, da lahko dostopa do zaščitenih

delov in komunicira z drugimi aplikacijami [25].

- Prav tako razglasi, katera dovoljenja so potrebna za komunikacijo z aplikacijskimi

komponentami [25].

- Vsebuje seznam knjižnic, s katerimi mora biti aplikacija povezana [25].

Slika 12 spodaj prikazuje splošno strukturo datoteke manifest in vsakega elementa, ki ga

lahko vsebuje [25].

Page 24: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

13

Slika 2: Struktura datoteke Manifest

Page 25: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

14

3.3.2 Prijava in registracija

Če se torej vrnemo na prijavo ter registracijo uporabnikov. Ustvarili smo aktivnost, ki smo

jo poimenovali Login. Ker pa uporabljamo fragmente, smo to aktivnost razširili v aktivnost

s fragmenti ter ji vključili izvajanje ActionBar.TabListener, saj aktivnost uporablja zavihke.

Primer kode 2: Extends in implements

Vsaki aktivnosti oziroma fragmentu lahko spreminjamo njegov videz oziroma postavitev

elementov (layout) v njihovih XML datotekah, ki se nahajajo pod RES => LAYOUT. Naši

aktivnosti smo dodali element ViewPager, ki skrbi za animacijo premika ekrana iz enega

fragmenta na drugega.

Primer kode 3: ViewPager

Da pa so fragmenti vidni v zavihkih, smo ustvarili tudi razred FragmentPagerAdapter, ki

skrbi za samo povezavo med fragmenti ter zavihki.

Page 26: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

15

Primer kode 4: LoginTabsAdapter

Za prikaz zavihkov ni bilo potrebe po uporabi drugih uporabniško-vmesnih elementov, kot

je TabHost. Action bar ima vgrajeno sposobnost dodajanja zavihkov, ki smo jo omogočili z

uporabo metode setNavigationMode(ActionBar.NAVIGATION_MODE_TABS) v naši

aktivnosti.

Primer kode 5: Dodajanje zavihkov

Page 27: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

16

Potrebno je bilo ustvariti še fragmenta za prijavo ter registracijo novih uporabnikov, ki smo

jima dodali aktivnosti Login ter spremenili videz njunega layouta. V layout fragmenta za

prijavo smo tako dodali dva textView gradnika, in sicer Username in Password, dva

editText gradnika, kjer uporabnik vpiše svoje geslo in uporabniško ime, ter gradnik button,

ki služi za prijavo uporabnika. V layout za registracijo pa smo poleg vseh teh elementov

dodali še gradnike TextView ter editText za ime, priimek, elektronski naslov in preverjanje

gesla uporabnika.

Da se pogled spremeni ob pritisku na zavihek ali premiku zaslona s prstom, torej da se

fragmenta zamenjata, je bilo potrebno dodati še funkcije, ki skrbijo za spremembe. Te

funkcije smo dodali v glavni aktivnosti Login.

Primer kode 6: Tab Change Listener

Page 28: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

17

Primer kode 7: View Change Listener

3.3.3 Glavni del aplikacije

Ko se uporabnik uspešno prijavi v aplikacijo, se prikaže glavni del aplikacije. Razdeljen je

na tri zavihke: Domov, Trening in Izzivi. V prvem zavihku, torej zavihku Domov, ki se

prikaže tudi ob zagonu te nove aktivnosti, imamo meni, kjer lahko uporabnik izbira med

različnimi možnosti, kot so podrobnosti o aplikaciji, vodič, zgodovina treningov, nastavitve,

pregled vaj in pregled že ustvarjenih fitnes programov. V zavihku Trening lahko izberemo

že sestavljen program ali ustvarimo svojega. Prav tako je tu prikazan trenutno izbrani

program. V zadnjem zavihku, izzivi, imamo prikazanih nekaj težjih vaj, s katerimi lahko

tudi primerjamo naš napredek.

Ustvarili smo novo aktivnost ter jo poimenovali HomeScreen. Kot že prej aktivnosti Login,

smo tudi tej aktivnosti v layout dodali ViewPager, ki skrbi za premikanje med zavihki. Prav

tako smo ustvarili nov razred FragmentPagerAdapter, ki skrbi za povezavo med fragmenti

ter zavihki in uporabili metodo setNavigationMode() za dodajanje zavihkov.

Ustvarili smo tri nove fragmente: HomeFragment, TrainingFragment in

ChallengesFragment, za vsak zavihek po enega, ter uredili njihove layoute.

HomeFragment, kot smo že omenili, vsebuje meni ter je ob zagonu aktivnosti viden

fragment. Želeli smo izdelati meni, ki bo čim bolj enostaven za uporabo. V layout smo

Page 29: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

18

dodali prostor za sliko ter uporabnikove podatke. Pod temi podatki smo ustvarili tabelo

gumbov, ki služi kot meni, ter slikovno prikazali njihov namen. Pritisk na posamezen gumb

odpre nov fragment, ki prikazuje željen izbor iz menija. Podrobne funkcionalnosti menija:

- Podatki o aplikaciji: Pritisk na ta gumb v meniju odpre nov fragment

AboutFragment. Layout tega fragmenta vsebuje gradnik EditText, kjer lahko

najdemo avtorja in trenutno verzijo aplikacije.

- Vodič: Ker je aplikacija obsežna in uporabniku nudi različne koristne nastavitve,

smo za lažje učenje dela z aplikacijo dodali možnost vodiča. Ob pritisku meni

gumba Vodič, se odpre nov fragment z imenom TutorialFragment, ki vsebuje

kratek video z razlago, kako se uporabljajo posamezne funkcionalnosti in kje jih

lahko najdemo.

- Zgodovina treningov: Pritisk na gumb za zgodovino treningov odpre nov fragment

z imenom PreferenceHistoryFragment. Ta funkcionalnost uporabniku omogoča, da

sledi svojemu napredku.

Android zagotavlja mnogo možnosti shranjevanja aplikacijskih podatkov. Rešitev,

ki jo izberemo, je odvisna od naših potreb, na primer ali bi morali biti podatki

zasebni za našo aplikacijo ali dostopni drugim aplikacijam in koliko prostora

podatki potrebujejo. Podatke je mogoče shranjevati z uporabo skupne preference,

notranjega pomnilnika (pomnilnika naprave), zunanjega pomnilnika, SQlite

podatkovne baze ali omrežne povezave. Mi smo izbrali shranjevanje s pomočjo

skupne preference [15].

Razred SharedPreferences ponuja splošen okvir, ki omogoča shranjevanje in

pridobivanje podatkov, kjer sta podana ključ, s katerim podatke prepoznamo, in

same vrednosti podatkov [15].

Primer kode 8: Pridobivanje zgodovine s pomočjo skupnih preferenc

Page 30: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

19

Primer kode 9: shranjevanje zgodovine s skupnimi preferencami

- Vrsta mišic: S pritiskom na ta gumb se odpre nov fragment z imenom

ShowAllWorkoutsFragment. Tu lahko uporabnik vidi, kakšne vrste mišic obstajajo,

kako se imenujejo ter kje na telesu se nahajajo.

V layout fragmenta smo dodali gradnik ExpandableListView, kjer lahko brskamo

ter izbiramo med različnimi vrstami mišic, in gradnik ImageView, ki prikazuje

izbrano mišico.

ExpandableListView oziroma razširljiv seznam je pogled, ki prikazuje elemente v

navpičnem premikajočem dvoslojnem seznamu. Razlika med razširjenim in

navadnim seznamom je, da prvi dovoljuje razširitev v dvoslojno raven, to pomeni,

da lahko ima vsaka skupina svojo podskupino [16].

Naredili smo dva nova layouta: prvi je list_group.xml, ki služi kot element za prikaz

v glavnem seznamu, drugi pa list_item.xml, ki služi kot element za prikaz v

podseznamu. Ustvariti je bilo potrebno tudi nov adapter, ki smo ga poimenovali

MyExpandableListViewAdapter ter ga razširili tako, da lahko upravlja z razširjenim

seznamom.

Page 31: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

20

Primer kode 10: List_group layout

Primer kode 11: List_item layout

Primer kode 12: MyExpandableListViewAdapter

Page 32: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

21

V fragmentu je bilo potrebno seznam napolniti s podatki, ki se bodo prikazovali, ter

dodati setOnChildClickListener, ki skrbi, da se ob kliku na element v podseznamu

prikaže pravilna slika, ki predstavlja izbrani element.

- Nastavitve: S pritiskom na gumb za nastavitve se odpre nov fragment, ki smo ga

poimenovali PreferencesOptionsFragment. Tudi za shranjevanje nastavitev smo

uporabili skupne preference.

Ustvarili smo novo XML datoteko prefs.xml, ki služi kot prikaz nastavitev. V

nastavitvah lahko uporabnik spremeni svoje ime, starost, težavnostno stopnjo,

teme ozadja in jezik.

Primer kode 12: Nastavitve prefs.xml

Page 33: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

22

- Vaje: S pritiskom na gumb za prikaz vaj se odpre nov fragment, imenovan

ShowAllWorkoutsFragment. Layout tega fragmenta vsebuje gradnik ListView, v

katerem so shranjene vse vaje, iz katerih je mogoče generirati fitnes program.

Prav tako se ob kliku na posamezni element v seznamu sproži akcija, ki odpre nov

fragment z imenom ShowExampleFragment, ki prikaže video, težavnost, ime,

nasvet, vrsto mišic ter opis pravilne izvedbe izbrane vaje.

Gradnik seznam je pogled, ki prikazuje elemente v navpičnem premikajočem

seznamu. Elementi seznama se samodejno naložijo v seznam s pomočjo

adapterja, ki potegne vsebino iz vira, kot so polje elementov ali podatkovne baze,

in jo prenese v pogled, ki se nahaja v seznamu [17].

Naš seznam s pomočjo adapterja napolnimo z imeni vaj iz več dimenzionalnega

polja, kjer se nahajajo vsi podatki o fitnes vajah.

Primer kode 13: Polnjenje seznama vaj

Prav tako dodamo dogodek onItemClick, ki zazna klik na posamezni element v

seznamu. Če pride do klika, si aplikacija zapomni ime vaje, ki je bila izbrana, in v

fragmentu ShowExampleFragment odpre video pravilne izvedbe vaje ter njen opis.

Za prikaz videa smo uporabili MediaController. Pogled vsebuje kontrole

MediaPlayer. Običajno vsebuje gumbe kot so predvajaj, pavza, previjanje nazaj,

hitro naprej in drsnik o napredku. Skrbi za sinhronizacijo kontrole s stanjem video

predvajalnika [18].

Način za uporabo tega razreda je, da ga sprožamo programsko. MediaController

bo ustvaril privzet nabor kontrol in jih dal v okno na vrh naše aplikacije. Okno bo

izginilo, če bo neaktivno več kot tri sekunde in se spet pojavilo ob dotiku. Zato smo

v naši aplikaciji dodali, da se video ponovno zavrti, ko pride do konca [18].

Page 34: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

23

Primer kode 14: Prikaz videa

- Programi: S pritiskom na gumb Programi, se odpre nov fragment, ki smo ga

poimenovali AllWorkoutProgramsFragment. Ta fragment služi za prikaz vseh že

sestavljenih fitnes programov, ki smo jih pripravili za uporabnike naše aplikacije. V

layout tega fragmenta smo dodali gradnik ListView, v katerega smo s pomočjo

adapterja pridobili podatke o fitnes programih. Ob kliku na posamezen program v

seznamu se nam odpre nov fragment PrikazFitnesProgramaFragment, kjer lahko

uporabnik vidi vse vaje, ki jih izbrani program vsebuje, ter njihovo tedensko

razporeditev.

Drugi zavihek, torej zavihek Workout, služi za izbor že obstoječih vadbenih programov

oziroma ponuja možnost za sestavo svojega fitnes programa ter grafično predstavitev le-

tega.

V layout fragmenta WorkoutFragment, ki služi za prikaz zavihka Workout smo dodali

gradnik ListView, ki je namenjen za prikaz fitnes vaj za izbrani dan v tednu ter dva

gradnika Button. Prvi v primeru, da nismo zadovoljni z izbranim programom, le-tega

izbriše, drugi pa odpre novo aktivnost s fragmentom kjer lahko izberemo oziroma

generiramo nov fitnes program.

Page 35: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

24

Če želi uporabnik izbrati nov program s pritiskom na gradnik Button, ki služi za pridobitev

novega fitnes programa, se odpre nova aktivnost, ki vsebuje dva fragmenta

GenerateNewProgramFragment in ChooseNewProgramFragment.

Fragment GenerateNewProgramFragment se prikaže ob zagonu nove aktivnosti in služi

kot vmesnik za sestavo novega fitnes programa po uporabnikovih željah. Layout tega

fragmenta vsebuje osem gradnikov Spinner, ki služijo za izbor sklopov mišic, ki jih

uporabnik želi vključiti v svoj fitnes program, ter gradnik Button, s katerim zaženemo

proces generiranja novega programa s pomočjo dreves, ki je podrobneje opisan v

podpoglavju 3.3.3.

Gradnik Spinner zagotavlja hiter način izbora ene vrednosti iz niza. V privzetem stanju

Spinner prikazuje svojo trenutno izbrano vrednost. Z dotikom Spinnerja se nam prikaže

spustni meni z vsemi drugimi razpoložljivimi vrednostmi, iz katerih lahko uporabnik izbere

novo privzeto vrednost [19].

Izbira, ki jo opredelimo Spinnerju, lahko pride iz katerega koli vira, vendar pa mora biti

pridobljena preko SpinnerAdapter, kot je na primer ArrayAdapter, če so podatki pridobljeni

iz polja, oziroma CursorAdapter, če so podatki pridobljeni iz podatkovne baze [19].

V primeru naših gradnikov Spinner so možne izbire že v-naprej določene, zato smo njihov

izbor zagotovili s pomočjo polja nizov v datoteki strings.xml. Da smo Spinnerje napolnili s

temi podatki, smo v fragmentu ustvarili nov adapter.

Primer kode 15: Polje možnih izborov za gradnik Spinner

Page 36: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

25

Primer kode 16: Populacija gradnikov Spinner

Če se odločimo za že sestavljen program, izberemo drugi zavihek, ki trenutni fragment

zamenja s fragmentom ChooseNewProgramFragment. Layout tega fragmenta vsebuje

gradnik RadioGroup, ki vsebuje gradnike RadioButtons ter dva gradnika Button.

Gradniki RadioButtons uporabniku omogočajo izbiro ene možnosti v sklopu. Ker pa se

med seboj izključujejo, jih je potrebno dodati v gradnik RadioGroup. S tem dosežemo, da

sistem zagotavlja izbor le enega gradnika RadioButton naenkrat [20].

V našem fragmentu gradniki RadioButtons služijo za izbor posameznega fitnes programa.

Če si želimo podrobneje ogledati, katere vaje posamezen program vsebuje, obkljukamo

gradnik RadioButton, ki predstavlja ta program, ter pritisnemo gradnik Button za prikaz

izbranega programa. Odpre se nov fragment z imenom ShowNewProgramFragment, ki

vsebuje gradnik ListView, ki je napolnjen s podatki izbranega programa za določen dan v

tednu.

Page 37: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

26

Tretji zavihek, zavihek Izzivi, služi za prikaz nekaj težjih fitnes vaj, s katerimi lahko

uporabnik meri svoj napredek.

V layout fragmenta za izzive smo dodali gradnik ListView, ki služi kot seznam že v naprej

izbranih vaj, ki so po težavnosti zahtevnejše izvedbo.

Če želimo pogledati določeno vajo, se ob kliku na izbrano vajo odpre fragment

ShowExampleFragment, ki smo ga že omenili, in prikaže video ter podroben opis pravilne

izvedbe izbrane fitnes vaje.

3.3.4 Viri nizov

Viri nizov za našo aplikacijo ponujajo besedne nize z dodatnim opcijskim oblikovanjem

teksta. Obstajajo trije tipi virov, ki lahko aplikaciji ponudijo nize. To so niz, polje nizov in

množični nizi. Lokacija virov se nahaja v RES/VALUES/IME_DATOTEKE.xml. Ime

datoteke je poljubno [22].

Nizi so preprosti viri, ki so navedeni z uporabo vrednosti, ki je v imenu atributa in ne v

imenu XML datoteke. Torej lahko vire nizov združujemo z drugimi preprostimi viri v eni

XML datoteki pod enim elementom <resources> [22].

Prvi tip, torej niz, je XML vir, ki ponuja enoten niz, na katerega se lahko sklicujemo iz

aplikacije ali drugih datotečnih virov, kot so XML layouti [22].

Elementa, ki se nahajata v tem viru, sta <resources> in <string>. Element <resources>

mora biti korensko (root) vozlišče in ne vsebuje atributov. Element <string> je niz, ki lahko

vključuje oblikovne oznake. Ima en atribut name, ki ga uporabimo kot identifikacijo vira

[22].

Slika 3: Element <resources> za niz

Page 38: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

27

Slika 4: Aplikacijska koda za pridobivanje niza

Slika 5: XML layout, ki se sklicuje na niz

Drugi tip, torej polje nizov, je XML vir, ki ponuja nabor nizov, na katere se lahko sklicujemo

iz aplikacije.

Elementi, ki se nahajajo v tem viru, so <resources>, <string-array> in <item>. Element

<resources> mora biti korensko (root) vozlišče in ne vsebuje atributov. Element <string-

array> definira polje nizov, tako da vsebuje enega ali več elementov <item>. Ima en

atribut name, ki ga uporabimo kot identifikacijo vira. Element <item> je niz, ki lahko

vključuje oblikovne oznake. Vrednost je lahko sklic na drug niz vira. Prav tako mora biti

otrok elementa <string-array> in ne vsebuje atributov [22].

Slika 6: XML datoteka, ki se sklicuje na polje nizov

Page 39: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

28

Slika 7: Aplikacijska koda za pridobivanje polje nizov

Tretji tip, torej množični niz, je XML vir, ki nosi različne nize za pluralizacijo. Različni jeziki

imajo različna slovnična pravila o množini. V angleščini, na primer, je količina ena

poseben primer. Razlika med ednino in množino je zelo pogosta. Drugi jeziki pa imajo bolj

podrobne razlike. Celoten sklop, podprt s strani Androida, je nič, ena, dva, nekaj, veliko in

ostalo [22].

Pravila za odločitev, kateri primer uporabiti za določen jezik in slovnično število, je lahko

zelo zapletena, zato Android ponuja metode, kot so getQuantityString(), ki izberejo

ustrezen vir [22].

Odločitev, kateri niz uporabiti je, odvisna izključno od slovnične nujnosti. V angleškem

jeziku bo niz za nič spregledan, čeprav bo slovnično število nič, saj nič v angleškem jeziku

ni slovnično različno od dva ali katerega koli drugega števila, razen ena (zero books, one

book, two books, …). Nasprotno, v korejščini, bo uporabljen le niz ostalo [22].

Elementi, ki se nahajajo v tem viru, so <resources>, <plurals> in <item>. Element

<resources> mora biti korensko (root) vozlišče in ne vsebuje atributov. Element <plurals>

je zbirka nizov, od katerih je en niz določen glede na količino nečesa. Vsebuje enega ali

več elementov <item>. Ima en atribut name, ki ga uporabimo kot identifikacijo vira.

Element <item> je množičen ali posamezen niz. Vrednost je lahko sklic na drug niz vira.

Prav tako mora biti otrok elementa <plurals> in vsebuje atribut quantity, ki lahko ima

vrednost zero, one, two, few, many in other. [22].

Page 40: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

29

Slika 8: XML layout, ki se sklicuje na angleščino

Slika 9: XML layout, ki se sklicuje na poljščino

Slika 10: Aplikacijska koda za pridobivanje množičnih nizov

3.3.5 Podprtost večjezičnosti

Vedno je dobra odločitev, da ločimo besedne nize iz uporabniškega vmesnika aplikacije in

jih damo v zunanjo datoteko. Android nam to dovoljuje z uporabo map v vsakem Android

projektu [23].

Page 41: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

30

Če ustvarite nov projekt z uporabo Android SDK orodij, ta orodja ustvarijo mapo /res. V

mapi /res so podmape za različne vrste virov. Tu najdemo tudi nekaj privzetih map, kot je

na primer /res/values/strings.xml, ki vsebujejo vrednosti besednih nizov [24].

Odločili smo se, da aplikaciji poleg slovenskega dodamo še angleški jezik in tako

omogočimo uporabo aplikacije tudi uporabnikom, ki ne govorijo slovensko. Ker smo opis

vseh funkcionalnosti ter za tekst vseh oznak v uporabniškem vmesniku uporabljali le poti

do samih besednih nizov, ki smo jih shranili v datoteki /value, nismo imeli velikih težav pri

vključitvi še enega jezika.

Potrebno je bilo ustvariti dodatno podmapo v mapi /res, ki smo jo poimenovali value-en. V

to mapo smo skopirali vse datoteke, ki jih je vsebovala mapa value, in prevedli vse

besedne nize teh datotek v angleški jezik.

Slika 11: Podmape za različne jezike

Nato je bilo potrebno samo še dodati kodo, ki ob izbiri jezika v nastavitvah osveži našo

aplikacijo ter uporabi pravilno mapo value. Ustvarili smo metodo setLocale(String lang), ki

kot vhodni parameter sprejme končnico mape value torej »en« ali »sl«. Za vsako aktivnost

smo morali v manifest dodati tudi kodo, ki se sproži ob spremembi.

Page 42: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

31

Primer kode 17: Metoda setLocale

Primer kode 18: Manifest

3.4 Izdelava generatorja fitnes programov

Če želimo ustvariti nov fitnes program, kot smo opisali že v podpoglavju 3.3.2, najprej

izberemo vse sklope mišic, ki jih želimo vključiti v naš program. Ko zaključimo z izborom,

se zažene generator, ki s pomočjo odločitvenih dreves pridobi nabor vaj, ki se ujemajo z

našim izborom, ter nekaj teh vaj razporedi skozi tedenski plan vadbe.

Odločitveno drevo je orodje odločanja, ki uporablja drevesu podoben graf ali odločitveni

model in njihove možne posledice. Je eden od načinov za prikaz algoritma [21].

Odločitvena drevesa so pogosto uporabljena pri operacijskih raziskavah, predvsem pri

analizi odločitev, da pomagajo opredeliti strategijo, ki se bo najbolj približala cilju [21].

Odločitveno drevo ima strukturo diagrama poteka, v katerem vsako notranje vozlišče

predstavlja preizkus atributa (na primer ali je zunaj sončen ali oblačen dan), vsaka veja

Page 43: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

32

predstavlja rezultat preizkusa in vsak list vozlišča predstavlja možne rezultate. Pot od

korena do lista predstavlja klasifikacijska pravila [21].

Da pa generator sestavi program, ki je najbolj primeren za uporabnika in se najbolj približa

njegovim željam, smo za atribute v odločitvenem drevesu poleg sklopov mišic, ki jih je

izbral, dodali še starost in napredek uporabnika.

Vhodni parameter v korenu drevesa so vse obstoječe vaje. Prvi preizkus atributa je

odločitev ali izbrana vaja spada v sklop mišic, ki jih je uporabnik izbral. Če spada, se kot

drugi preizkus atributa preveri starost uporabnika. Starostne skupine smo razdelili v tri

skupine. Prva starostna skupina je do petnajst let. To skupino smo dodali, ker v teh letih ni

priporočljivo dvigovati težkih uteži, saj to preprečuje oziroma lahko popolnoma ustavi rast

kosti. Zato so rezultat tega preizkusa samo vaje, kjer se uporablja samo lastna teža

uporabnika. Druga starostna skupina je od petnajst do šestdeset let in lahko izvaja vaje.

Tretja starostna skupina je nad šestdeset let. Tu kot rezultat preizkusa atributov

nadaljujejo vaje, katerih poudarek je na raztezanju in kardio treningu.

Kot tretji preizkus na atribut imamo napredek uporabnika. Kot smo že omenili, ima vsaka

vaja določeno težavnost, prav tako pa merimo napredek uporabnika. Napredek smo

razdelili na tri dele, začetnik (lažje vaje), izkušen uporabnik (srednje težke vaje) in

profesionalec (težje vaje).

Ko vse vaje zaključijo zgoraj opisan proces, kot rezultat dobimo nabor vaj, ki ustrezajo

fitnes programu. Ker je teh vaj po vsej verjetnosti več, kot jih potrebujemo za tedenski

program, jih moramo nekaj še izločiti. To storimo v delu kode, ki je zadolžen za sestavo

programa.

Page 44: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

33

Slika 12: Odločitveno drevo

Pri sestavi fitnes programa stremimo k temu, da vsak dan treniramo en sklop mišic ter

trebušne in hrbtne mišice. Če uporabnik ne izbere dovolj sklopov mišic, za enakomerno

razporeditev preko tedna, se cikel ponovi.

Page 45: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

34

4 REZULTATI

V tem poglavju kot rezultate opišemo in prikažemo videz naše aplikacije.

4.1 Registracija novega uporabnika

Ob zagonu naše aplikacije se najprej odpre okno, ki služi za prijavo ter registracijo novih

uporabnikov. V primeru, da aplikacijo uporabljamo prvič, moramo pridobiti uporabniško

ime in nastaviti svoje geslo, zato se je potrebno najprej registrirati. Vnesti moramo ime,

priimek, uporabniško ime, elektronski naslov in geslo. Ob vsaki registraciji novega

uporabnika je potrebna internetna povezava, saj mora aplikacija dostopati do podatkovne

baze, ki se nahaja na strežniku.

Slika 13: Registracija novega uporabnika

Page 46: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

35

4.2 Prijava v aplikacijo

Če smo že registrirani in želimo le dostopati do naše aplikacije, se s klikom na gumb

Prijava v akcijski vrstici ali preprosto z drsnim premikom prsta po ekranu premaknemo na

okno, ki služi kot prijava uporabnika v aplikacijo. Za prijavo v aplikacijo ne potrebujemo

dostopa do interneta, saj se pri uspešni registraciji uporabniško ime in geslo shrani v

aplikacijo, vendar pa nas aplikacija opozori v primeru, da nimamo dostopa do interneta in

uporabljamo funkcionalnosti, ki zahtevajo dostop do podatkovne baze. Za prijavo v

aplikacijo moramo vnesti le uporabniško ime in geslo. Če smo geslo ali uporabniško ime

pozabili, lahko s klikom na gumb »pozabil geslo« le-tega ponovno pridobimo na

elektronski naslov.

Slika 14: Vpis uporabnika v aplikacijo

Page 47: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

36

4.3 Zavihek Domov

Ob uspešni prijavi v aplikacijo se nam odpre okno z menijem ter podatki uporabnika. To

okno uporabniku služi kot glavni vmesnik aplikacije. Od tu lahko dostopa do nastavitev,

podatkov o fitnes vajah, ki so mu na voljo, vodiča, ki mu pomaga pri razumevanju

aplikacije, fitnes programov, ki so že sestavljeni, zgodovine svojih treningov, ki se vsak

teden shranjujejo, in vseh sklopov mišic, ki jih lahko s fitnes vajami trenira.

Slika 15: Zavihek Domov

Page 48: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

37

4.4 Zavihek Trening

S pritiskom na gumb Trening v akcijski vrstici ali z drsnim premikov prsta po ekranu se

premaknemo na drugi zavihek, ki služi kot glavni uporabniški vmesnik za tedensko

telovadbo. V tem oknu imamo prikazan tedenski fitnes program. V primeru, da se je

uporabnik šele registriral v aplikacijo ali pa je tedenski program potekel, lahko iz tega okna

dostopa do generatorja novih fitnes programov ali pa si preprosto izbere nov že sestavljen

program.

Slika 16: Zavihek Trening

Page 49: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

38

4.5 Zavihek Izzivi

S pritiskom na gumb Izzivi v akcijski vrstici ali z drsnim premikom prsta po ekranu v levo

se premaknemo na zadnji, tretji zavihek, ki vsebuje nekaj težjih vaj. Te vaje so namenjene

za izziv in testiranje uporabnikovega napredka.

Slika 17: Zavihek Izzivi

Page 50: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

39

4.6 Meni gumb Podatki o aplikaciji

S pritiskom na gumb za prikaz podatkov o aplikaciji v meniju se odpre novo okno, kjer je

podrobneje opisana aplikacija, naveden njen avtor in verzija aplikacije.

Slika 18: Podatki o aplikaciji

Page 51: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

40

4.7 Meni gumb Vodič

V aplikacijo smo dodali tudi vodiča, ki uporabniku pomaga pri prvih korakih uporabe

aplikacije. Ob kliku na meni gumb Vodič se odpre okno, ki vsebuje kratek filmček in

podroben opis, kako uporabljati aplikacijo.

Slika 19: Vodič

Page 52: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

41

4.8 Meni gumb Zgodovina treningov

Kot smo že omenili, si lahko uporabnik vsak teden sestavi oziroma sprejme drug fitnes

program ali pa kakšen teden vadbe tudi izpusti. Odločili smo se, da sledimo odločitvam

uporabnika ter si beležimo njegove programe. Ko uporabnik sestavi nov program oziroma

sprejme že sestavljen program, se mu le-ta doda v zgodovino. Če uporabnik ni zadovoljen

z izbranim fitnes programom, ima možnost, da ga izbriše oziroma zamenja. V tem primeru

se mu bo izbrisal tudi iz zgodovine treningov. Torej ob pritisku na gumb v meniju za

pregled zgodovine treningov se nam odpre novo okno, ki vsebuje nabor fitnes programov,

ki jih je uporabnik sprejel za tedensko vadbo. Prav tako je zabeležen tudi datum ter leto

uporabe tega fitnes programa.

Slika 20: Pregled zgodovine treningov

Page 53: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

42

4.9 Meni gumb Vrsta mišic

Vsaka možna vaja, ki se lahko pojavi v tedenskem fitnes programu, ima v opisu navedeno

tudi, katere mišice delujejo pri izvedbi te vaje. V primeru, da uporabnik ne ve oziroma ni

prepričan, kje točno se ta mišica nahaja ali pa si preprosto želi ogledati, katere vrste mišic

lahko trenira, ima možnost pregleda vseh obstoječih mišic. S pritiskom na meni gumb

Vrsta mišic se odpre okno, kjer lahko uporabnik iz seznama izbere najprej sklop mišic, ki

ga zanima (recimo trebušne mišice) in nato v podseznamu dejansko mišico tega sklopa.

Ob kliku na sklop ali posamezno mišico lahko uporabnik preveri, kje na telesu se le-ta

nahaja.

Slika 21: Pregled mišičnih sklopov

Page 54: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

43

4.10 Meni gumb Nastavitve

Kot vsaka aplikacija ima tudi naša možnost spreminjanja nastavitev. V naših nastavitvah

lahko spremenimo uporabnikovo ime in starost, ki sta prikazana v prvem zavihku Domov.

Izbiramo lahko med dvema jezikoma, slovenskim in angleškim. Prav tako lahko izbiramo

med različnimi temami ozadja uporabniškega vmesnika in spreminjamo težavnost vaj, če

mislimo, da so vaje, ki jih določi generator, prelahke. Ob kliku na meni gumb za nastavitve

se odpre okno kjer imamo možnost spreminjanja vseh zgoraj naštetih funkcionalnosti.

Slika 22 in 23: Nastavitve

Page 55: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

44

4.11 Meni gumb Vaje

Vsi fitnes programi, tako že v-naprej sestavljeni kot tudi tisti, ki jih uporabnik sam generira,

vsebujejo vaje, ki so shranjene v aplikaciji. Te vaje lahko uporabnik tudi sam pregleda, če

v meniju pritisne gumb Pregled vseh vaj, ki odpre imenski seznam vseh možnih vaj. Tako

uporabniku ni potrebno sestavljati novih programov. S pritiskom na posamezno vajo se

odpre novo okno s podrobnim opisom in nasveti za izbrano vajo.

Slika 24: Pregled vseh vaj

Page 56: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

45

4.12 Meni gumb Sestavljeni programi

V meni smo dodali tudi možnost ogleda vseh že sestavljenih fitnes programov. Tako si

lahko uporabnik hitro in enostavno ogleda fitnes program in se odloči ali ga res želi izbrati

za tedensko vadbo. S klikom na gumb Sestavljeni programi se odpre okno s seznamom

vseh že sestavljenih fitnes programov. S pritiskom na posamezen program se odpre

podroben opis izbranega programa ter prikažejo vadbe, ki jih program obsega.

Slika 25: Pregled vseh programov

Page 57: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

46

4.13 Generiranje novega programa

V zavihku Trening ima uporabnik možnost generirati nov fitnes program. Ob kliku na

gumb Generiraj program se odpre okno, kjer mora uporabnik določiti, katere vrste mišic

želi vključiti v tedenski fitnes program. Na razpolago ima osem gradnikov Spinner saj

lahko izbere največ osem sklopov mišic. Sestavi se nov program, ki se prikaže v zavihku

Trening. Če uporabnik ni zadovoljen s programom ga lahko izbriše in ponovi postopek.

Slika 26: Generiranje novega fitnes programa

Page 58: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

47

4.14 Izbor že sestavljenega programa

Če uporabnik želi izbirati med že sestavljenimi programi, s pritiskom na gumb Obstoječi

program v oknu za generiranje programa odpre novo okno, ki vsebuje seznam vseh že

sestavljenih programov. Vsak program v tem seznamu si lahko podrobno ogleda, preveri

vaje in njihov tedenski razpored. Za izbor fitnes programa moramo obkljukati gradnik

Radiobuton, ki vsebuje izbran program, in potrditi našo izbiro. Program se prikaže v

zavihku telovadba.

Slika 27 in 28: Izbor že sestavljenega programa

Page 59: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

48

4.15 Prikaz podrobnosti izbrane vaje

Če želi uporabnik videti podrobnosti o vaji, ki jo želi izvajati, se odpre okno, ki vsebuje

video izbrane vaje, njeno ime, težavnost, navodila in nasvete za pravilno izvedbo. Vaja

vsebuje kratek video, ki se ponavlja, tako da lahko uporabnik jasno vidi pravilno izvajanje

vaje.

Slika 29: Prikaz fitnes vaj

Page 60: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

49

5 TEŽAVE

Pri izdelavi aplikacije Osebni trener na mobilni platformi Android, smo se prvič srečali z

malo bolj naprednim programiranjem Android aplikacij. Naleteli smo na nekaj težav, ki

smo jih uspešno rešili. Največja težava na katero smo naleteli je bila povezava aplikacije s

podatkovno bazo.

V startu smo za strežnik želeli uporabiti WAMPServer (Windows, Apache, MySql, PHP)

vendar pa smo pri razhroščevanju in testiranju aplikacije imeli velike težave s porti

(omrežnimi vrati), in samo povezavo do podatkovne baze. Prav zaradi tega smo se

odločili uporabiti brezplačni spletni strežnik Byehost. Ta rešitev je odpravila našo težavo in

povezava s podatkovno bazo je delovala nemoteno.

Page 61: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

50

6 SKLEP

V magistrskem delu smo se ukvarjali z izdelavo aplikacije za vodenje fitnes treningov.

Razvili smo aplikacijo, ki uporabnikom glede na vnos podatkov vrne čim učinkovitejši

program za vadbo v fitnesu, za dosego njihovih ciljev ter prikazuje pravilno izvedbo vaj.

Raziskali smo programski jezik Java ter operacijski sistem Android.

V tretjem poglavju smo opisali funkcionalnosti naše aplikacije, le-to pa smo prikazali v

četrtem poglavju.

V prihodnje načrtujemo nadgradnjo aplikacije z dodatkom prehrambnega načrta, kjer

bomo uporabnikom, poleg sestavljanja fitnes programov, tudi svetovali, kako se

prehranjevati za maksimalen učinek treningov.

Page 62: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

51

7 LITERATURA, VIRI

[1] Personal Trainer, dostopno na

http://en.wikipedia.org/wiki/Personal_trainer

[zadnji obisk:29.1.2015]

[2] General fitness training, dostopno na

http://en.wikipedia.org/wiki/General_fitness_training

[zadnji obisk:29.1.2015]

[3] Android, dostopno na

http://en.wikipedia.org/wiki/Android_%28operating_system%29

[zadnji obisk 29.1.2015]

[4] Zaslon na dotik, dostopno na

http://sl.wikipedia.org/wiki/Zaslon_na_dotik

[zadnji obisk 29.1.2015]

[5] Java definition, dostopno na

http://searchsoa.techtarget.com/definition/Java

[zadnji obisk 2.2.2015]

[6] Android software development, dostopno na

http://en.wikipedia.org/wiki/Android_software_development

[zadnji obisk 9.2.2015]

[7] Android Developer Tools, dostopno na

http://developer.android.com/tools/help/adt.html

[zadnji obisk 9.2.2015]

[8] Mesarič D., Informacijski system za vodenje tekem v judo, Diplomsko delo,

Maribor, avgust 2011

Page 63: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

52

[9] Why MySQL, dostopno na

http://www.mysql.com/why-mysql/

[zadnji obisk 10.2.2015]

[10] MySQL, dostopno na

http://en.wikipedia.org/wiki/MySQL

[zadnji obisk 10.2.2015]

[11] Podatkovni modeli, dostopno na

http://drenovec.tsckr.si/model/uvod.htm

[zadnji obisk 11.2.2015]

[12] Starting an Activity, dostopno na

http://developer.android.com/training/basics/activity-lifecycle/starting.html

[zadnji obisk 12.2.2015]

[13] Activities vs. Fragments in Android, dostopno na

https://www.altamiracorp.com/blog/employee-posts/fragments-vs-activities-

in-and

[zadnji obisk 12.2.2015]

[14] Fragments, dostopno na

http://developer.android.com/guide/components/fragments.html

[zadnji obisk 12.2.2015]

[15] Using Shared Preferences, dostopno na

http://developer.android.com/guide/topics/data/data-storage.html#pref

[zadnji obisk 19.2.2015]

[16] ExpandableListView, dostopno na

http://developer.android.com/reference/android/widget/ExpandableListView.

html

[zadnji obisk 19.2.2015]

Page 64: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

53

[17] List View, dostopno na

http://developer.android.com/guide/topics/ui/layout/listview.html

[zadnji obisk 19.2.2015]

[18] MediaController, dostopno na

http://developer.android.com/reference/android/widget/MediaController.html

[zadnji obisk 19.2.2015]

[19] Spinners, dostopno na

http://developer.android.com/guide/topics/ui/controls/spinner.html

[zadnji obisk 23.2.2015]

[20] Radio Buttons, dostopno na

http://developer.android.com/guide/topics/ui/controls/radiobutton.html

[zadnji obisk 23.2.2015]

[21] Decision tree, dostopno na

http://en.wikipedia.org/wiki/Decision_tree

[zadnji obisk 3.3.2015]

[22] String Resources, dostopno na

http://developer.android.com/guide/topics/resources/string-resource.html

[zadnji obisk 4.3.2015]

[23] Supporting Different Languages, dostopno na

http://developer.android.com/training/basics/supporting-

devices/languages.html

[zadnji obisk 6.3.2015]

[24] Eclipse (software), dostopno na

http://en.wikipedia.org/wiki/Eclipse_(software)

[zadnji obisk 9.3.2015]

Page 65: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

54

[25] App Manifest, dostopno na

http://developer.android.com/guide/topics/manifest/manifest-intro.html

[zadnji obisk 9.3.2015]

Page 66: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

55

Page 67: OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID · 2020. 1. 30. · Osebni trener na mobilni platform Android iv OSEBNI TRENER NA MOBILNI PLATFORMI ANDROID Ključne besede: Osebni trener,

Osebni trener na mobilni platform Android

56