MOBILNA APLIKACIJA ZA VODENJE ZDRAVEGA NAČINA … · Hrana je dobrina, ne glede na to, na kakšen...
Transcript of MOBILNA APLIKACIJA ZA VODENJE ZDRAVEGA NAČINA … · Hrana je dobrina, ne glede na to, na kakšen...
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
Viktorija Talevska
MOBILNA APLIKACIJA ZA VODENJE ZDRAVEGA NAČINA PREHRANE
Diplomsko delo
Maribor, september 2013
I
MOBILNA APLIKACIJA ZA VODENJE ZDRAVEGA
NAČINA PREHRANE
Diplomsko delo
Študentka: Viktorija Talevska
Študijski program: Univerzitetni študijski program
Računalništvo in informacijske tehnologije
Mentor: red. prof. dr. Peter Kokol
Lektorica: mag. Nataša Koražija, prof. slov.
II
III
Mobilna aplikacija za vodenje zdravega načina prehrane
Ključne besede: mobilna aplikacija, zdrav način prehrane, Android
UDK: 621.39:004.5(043.2)
Povzetek
V okviru diplomske naloge je narejena mobilna aplikacija, ki omogoča uporabniku voditi
evidenco o njegovem zdravem načinom življenja z vnosom podatkov o prehranjevanju in
fizični aktivnosti, ki jih izvaja čez dan. Na začetku je predstavljenih nekaj teoretičnih
dejstev o zdravi prehrani, motnjah, ki se pojavijo kot posledica nepravilne prehrane,
prikazane so formule in metode, ki pomagajo pri izračunu za uporabnika pomembnih
podatkov glede omenjenega. Nato je opisan razvoj Android aplikacije, v katero so
implementirane vse metode in formule, ki so bile narejene tekom raziskave. Na koncu
diplomske naloge so predstavljeni rezultati testiranj na več ljudeh, ki so uporabljali
aplikacijo. Večina je imela o njej pozitivno mnenje.
IV
Mobile application for managing healthy diet
Key words: mobile application, healthy lifestyle, Android
UDK: 621.39:004.5(043.2)
Abstract
In the context of the diploma I made a mobile application that allows the user to keep
record of his healthy lifestyle with data of food intake and his physical activity performed
during the day. At the beginning I presented my research on healthy eating, disorders that
occur as a result of poor nutrition and formulas and methods that help in the calculation of
important information for user. Then I described the development of the Android
application in which I have implemented all the methods and formulas for which I did the
research. At the end of the diploma I did testing on more people, which after using the
application had a positive opinion about it.
V
KAZALO
1 UVOD ........................................................................................................................ 1
2 ZDRAVA PREHRANA ............................................................................................... 3
2.1 Raziskave o debelosti.............................................................................................. 3
2.2 BMI, BMR in IBW .................................................................................................... 4
2.3 Različne raziskave o zdravi prehrani ....................................................................... 7
2.4 Raziskave o porabljenih kalorijah pri splošni fizični aktivnosti .................................. 8
3 PRAKTIČNA APLIKACIJA ....................................................................................... 10
3.1 Android .................................................................................................................. 10
3.2 Prikaz UI................................................................................................................ 13
3.3 Uporabljeni razredi ................................................................................................ 16
3.4 Primer delovanja ................................................................................................... 19
4 SKLEP ..................................................................................................................... 24
5 VIRI IN LITERATURA .............................................................................................. 25
6 SLOVAR .................................................................................................................. 26
VI
KAZALO SLIK
Slika 2.1: Grafični izračun BMI indeksa [4] ........................................................................ 6
Slika 3.1: Slika novoustvarjenega projekta v Eclipsu ....................................................... 11
Slika 3.2: Življenjski cikel aktivnosti [12] .......................................................................... 12
Slika 3.3: Xml datoteka, prikazana grafično .................................................................... 15
Slika 3.4:Zaslon z menijem in pridobljenimi rezultati ....................................................... 20
Slika 3.5: Zaslon z vnosi v polja ...................................................................................... 20
Slika 3.6: Prebrani podatki iz baze o hrani ...................................................................... 21
Slika 3.7: Zaslon za dodajanje hrane na dnevni račun .................................................... 21
Slika 3.8: Zaslon za dodajanje fizične aktivnosti na dnevni račun.................................... 22
KAZALO TABEL
Tabela 2.1: Tabela za primerjavo z BMI indeksom [2] ....................................................... 5
Tabela 2.2: Tabela faktorjev fizičnih aktivnosti [6] ............................................................. 7
Tabela 2.3: Tabela z aktivnostmi in porabljenimi kalorijami v 1h [8] .................................. 8
Tabela 3.1: Rezultati testiranja aplikacije ........................................................................ 22
1
1 UVOD
Debelost je ena izmed glavnih problemov današnjega časa, a ji velik odstotek ljudi
ne posveča pozornosti. Skrb za reševanje vsakdanjih težav, prezaposlenost in stres so
najpogostejši dejavniki, ki vplivajo na porast telesne teže. Hrana je dobrina, ne glede na
to, na kakšen način je pripravljena, in sicer ponavadi tako, da je na videz okusna in
vabljiva, zato človek takoj poseže po njej, brez razmišljanja o tem, kaj vnaša v svoje telo,
ne pomisli niti na možne posledice. Predelani sladkorji, umetna barvila in drugi dodatki, ki
pomagajo do privlačnejšega izgleda, so le del škodljivih sestavin, ki jih najdemo v
vsakodnevni prehrani. Ženske so vsak dan obkrožene s fotografijami modelov ali pa jih
celo srečujejo v živo, zato se odločajo za drastične ukrepe, da bi shujšale in tako izgledale
kot one. Odločajo se zarazlične operacije, liposukcije in diete, ki so pogosto škodljive za
zdravje ljudi. Za uspeh pri hujšanju pa je potrebna zdrava prehrana, zmerna vadba, npr.
hoja, kolesarjenje, in seveda ogromno samodiscipline in potrpljenja, da bi dosegli tisto, kar
želijo, vendar na zdravi način.
Debelost kot težavo smo najprej opazili v lastni družini oziroma pri najbližjih.
Opazimo lahko, da komuniciranje v največji meri poteka preko pametnih telefonov, zato
smo možnosti za rešitev problema poiskali najprej v vseh možnih aplikacijah, ki se
nahajajo na trgu, predvsem pri Android marketu. Z vsemi preizkušenimi aplikacijami
nismo bili zadovoljni, saj je vsaka na svoj način edinstvena in ne ponuja rešitev za naš
problem. Nekatere aplikacije npr. izračunajo le BMI indeks, kot npr. aplikacija
BMI/BSA/LBW/IBW-Healthy Weight, katero je razvil Viennasys Gmbh [15], nekatere
merijo le vnos oziroma porabo kalorij z različnimi fizičnimi aktivnostmi, ki jih uporabnik
izvaja podnevi (npr. aplikacija Healthy Living, razvita iz code.droid) [16]. Po mojem
mnenju aplikacija My Diet Diary Calorie Counter, ki jo je razvil MedHelp [17], ponuja
največjo podporo uporabnikom, na voljo ima veliko lastnosti in možnosti, tudi dober
grafični vmesnik, ki povabi še večjo število ljudi, ne vsebuje pa vseh zahtev, ki smo jih
želeli. Obstajajo številne aplikacije, ki so po našem mnenju razdeljene na ločena področja
in niso združena v celoto. Nezadovoljna z njimi smo se odločili napisati aplikacijo, ki bo
ustrezala mojim standardom in dovolj temeljito obdelala problem in tako pomagala
uporabnikom.
V diplomski nalogi smo morali najprej preučiti različna gradiva o zdravi prehrani, ki
so pomagala pri izdelavi teoretičnega dela. V tretjem poglavju smo opisali debelost kot
2
medicinski problem, o čemer so zdravniki in strokovnjaki za prehrano naredili številne
različne raziskave, kot je na primer makrobiotika. Prav tako obstajajo različne metode in
formule, ki jih lahko sami uporabljamo kot pomoč pri izračunu naše idealne teže, pa tudi
kolikšno število kalorijje potrebno vnesti v naše telo za zdrav način življenja in hkrati kako
bi z uravnoteženo prehrano znižali ali povečali našo telesno težo. Poleg diete je za
uspešno hujšanje in vzdrževanje teže pomembna fizična aktivnost. V četrtem poglavju
smo kot praktični del predstavili aplikacijo, o kateri je govora, oziroma njen razvoj od
začetka do končnega videza.
3
2 ZDRAVA PREHRANA
Osnovne človeške potrebe so stvari, brez katerih si človek ne more zamisliti
dneva. Med njimi je tudi hrana, ki daje moč in energijo. Z vnosom hrane v telo in njeno
prebavo se sprošča energija, ki jo človek potrebuje pri delu. Energija ustvarja toploto v
telesu in se meri v kalorijah. Danes to predstavlja energetsko vrednost hrane. S pravilno
prehrano vnašamo potrebne vitamine, ogljikove hidrate, beljakovine, ki so ključ do
zdravega telesa in duha, seveda pazdrava hrana pomeni zdravo telo brez bolezni. Hrana,
ki jo torej zaužijemo, se odraža na naš izgled, življenje in zdravje.
2.1 Raziskave o debelosti
Motnje prehranjevanja so psihološki problem oziroma obsesija. Vsaka oseba, ki
ima prehranjevalne motnje, ima drugačen odnos do hrane. Nekatere ljudje v hrani ves čas
vidijo grožnjo, da bodo z njo pridobili težo, zato jo porabijo nenadzorovano, lahko pa se
pojavlja nenehna potreba po hrani. Težave so zdravstveno opredeljene, in sicer kot
anoreksija nervoza in bulimija nervoza. Pri majhnih otrocih se pojavi drug problem –
podhranjenost, kar pomeni pomanjkanje energije ali beljakovin. To se pojavlja
najpogosteje pri dojenčkih zaradi pomanjkanja dojenja ali slabih prehranskih navad
matere. Posledice tega so upad telesne mase, kar posledično vpliva na rast otrok. Vse te
bolezni lahko brez takojšnjega zdravljenja pripeljejo do smrti. Ker je hrana vir energije, je
potrebno nanjo gledati kot na psihično in fizično hrano, vse ostale razlage so napačne, saj
lahko to posledično pripelje do različnih bolezni, kot so sladkorna bolezen, bolezni srca,
debelost, visok krvni tlak, depresija.
Svetovna zdravstvena organizacija oziroma World Health Organization (WHO) je
definirala debelost [1] kot čezmerno kopičenje maščob oziroma povečanje telesne mase,
kar posledično prinaša tveganje za različne bolezni. To je kronična bolezen, ki je danes
vse pogostejša. Statistični podatki kažejo, da se število ljudi sto boleznijo vztrajno
povečuje. Poleg fizičnega izgleda bolezen negativno vpliva tudi na zdravje. Prinaša
tveganje za bolezni srca in ožilja, sladkorno bolezen in različne oblike raka. Pojavlja se v
vseh starostnih skupinah ne glede na spol.
Različni ljudje različno reagirajo, ko nastopijo težave. Depresija, strah, tesnoba,
razočaranje in jeza so psihične težave, ki jih ljudje pogosto lajšajo s prekomernim
4
prehranjevanjem. Boljše počutje za življenje je kratko oziroma traja tako dolgo, dokler
uživamo v hrani. Človek si s hrano postreže ne samo takrat, ko je lačen, ampak si jo
privošči tudi pri kot sprostitev poleg televizorjem, računalnikom ipd. Če pojemo več, kot
telo potrebuje, in se ne gibljemo dovolj, prihaja do neravnovesja med vnosom hrane in
njeno porabo. Neravnovesje je najbolj izrazito, ko je vnos hrane večji, poraba pa zelo
majhna.
Nimajo pa vsi ljudje povečane težo zaradi neustreznega prehranjevanja. Nekateri
so takšne konstitucije oziroma imajo podedovano gensko zasnovo preko gena FTO, ki
vpliva na debelost.
Glede na zunanji videz telesa pri ljudeh s prekomerno telesno težo obstajata dve
vrsti debelosti [2]: pri moških v obliki jabolka oz. je to t. i. androidna forma in pri ženskih v
obliki hruške ali t. i. ginoidna forma. Pri prvi obliki se maščobna tkiva zbirajo okoli prsnega
koša in trebuha, medtem ko pri se ginoidni formi ta tkiva zbirajo okoli stegen in medenice,
kar se najpogosteje pojavlja pri ženskah [3].
2.2 BMI, BMR in IBW
Človek je po naravi raziskovalec in nikoli ni zadovoljen s trenutnimi rezultati. Ob
skrbi za svoje zdravje in preučitvi zdravstvenih težav ljudi se v medicini ves čas izvajajo
nove raziskave, ki pripomorejo k razvoju sodobne medicine.
BMI indeks predstavlja merilo za obliko človeškega telesa in je odvisen od telesne
težein višine človeka. Ta formula [13] ( 2.1 ) se lahko uporablja za oceno stopnje
debelosti. Formula je:
( 2.1 )
Tu je:
- – teža človeka (kg),
- – višina človeka (m).
5
Naredimo primerjavo med podatkom za indeks z vrednostmi iz Tabela 2.1, ki služijo kot
vodilo, kako visok BMI indeks imamo in kakšne ukrepe bomo sprejeli za njegovo
zmanjšanje.
Tabela 2.1: Tabela za primerjavo z BMI indeksom [2]
BMI indeks Stopnja prehranjevanja
< 18.5 Podhranjenost
18.5–25 Normalna telesna teže
25–30 Debelost
30–35 Debelost prve stopnje
35–40 Debelost druge stopnje
>40 Debelost tretje stopnje
S povečevanjem BMI indeksa se poveča tveganje za različne bolezni. Ko je indeks
BMI večji kot 30, so mogoči različni zapletiin celo smrt.
Poleg formule lahko rezultate odčitamo tudi iz krivulje. Obstajajo različne oblike krivulj za
oba spola in so odvisne od starosti. Slika 2.1 prikazuje vse nivoje prehranjevanja, odvisne
od višine in telesne teže, izražene v kilogramih in metrih.
Če želimo izračunati svojo idealno telesno težo, lahko to naredimo z uporabo
formule ( 2.2 ) za IBW [14]. Formula je:
, ( 2.2 )
kjer je:
- – konstanta (kg),
- – višina človeka (cm),
6
predstavlja konstanto za človeka, ki je visok 152cm in težek 50kg za moške in 45.5 za
ženske. Če je človek višji od 152cm, od njegove višine odštejemo 152cm in razliko
pomnožimo z 2.3kg, da dobimo idealno telesno težo v kg. Sicer obstaja več formul, s
katerimi lahko izračunamo idealno telesno težo, vendar smo mi preučili formulo B. J.
Devina, ki jo je razvil leta 1974 [5].
Za lažjo orientacijo in za ohranitev naše teže ali njeno zmanjšanje moramo
izračunati, koliko kalorij na dan je potrebno vnesti s hrano, da bi dosegli želene rezultate.
To lahko naredimo s pomočjo BMR stopnje za bazalni metabolizem, kar dejansko
predstavlja količino energije, ki jo telo porabi na dan v stanju pripravljenosti. Za izračun te
stopnje obstaja več različnih avtorjev, ki ponujajo različice za oba spola. Najbolj
uporabljena je formula, ki ji izumil Harris – Benedict [7]. Za moške ( 2.3 ) velja formula:
( 2.3 )
in za ženske ( 2.4 ) je:
Slika 2.1: Grafični izračun BMI indeksa [4]
7
( 2.4 )
kjer je:
- – bazalni metabolizem (kcal/dan),
- – teža človeka (kg),
- – višina človeka (cm),
- – starost človeka.
Kot rezultat dobimo dnevne kalorije, porabljene pri opravljanju osnovnih življenjskih
bazalnih procesih pri mirovanju telesa, nato pa je potrebno ta rezultat pomnožiti s
faktorjem dnevne aktivnosti, da dobimo število kalorij, ki jih dejansko potrebujemo za
manipulacijo s težo. Ti faktorji so prikazani v Tabela 2.2:
Tabela 2.2: Tabela faktorjev fizičnih aktivnosti [6]
Stanje Faktor Fizična aktivnost
Šibko 1.2 Šibka ali nobena
Manjša 1.375 Aktivnost 1–3 dni na teden
Povprečna 1.55 Aktivnost 3–5 dni na teden
Velika 1.725 Aktivnost 6–7 dni na teden
Ekstremna 1.9 Vsakodnevna naporna
vadba
2.3 Različne raziskave o zdravi prehrani
Makrobiotika je nekaj, kar nas neprestano obkroža oziroma pomeni ravnotežje
med okoljem in zdravjem, kar pomeni organsko celoto. Spremlja naše fizično, psihično in
duhovno zdravje. To vpliva tudi na kuhinjo oziroma na način prehrane. Naše razpoloženje
pogosto vpliva tudi na učinek hrane. Za prehod na takšen način prehranjevanja je
potrebno veliko dobre volje in pozitivnega razmišljanja, saj se le na tak način lahko oseba
počuti zadovoljno in srečno. Seveda je najtežje spremeniti že utečene navade, ki za
8
človeka pomenijo korenite spremembe, makrobiotika pa še posebej, ker je zapletena in
zahteva posebno natančnost. Tisti, ki bo sprejel takšen način prehranjevanja, bo bistveno
izboljšal svoje zdravje in s tem tudi svoje življenje. Drugi vzrok za prehod na makrobiotiko
je slabo zdravje. Vsi vemo, da nas vsaka bolezen lahko ponovno napade, redko kdo pa
poskrbi, da to prepreči. Vse, kar v primeru bolezni naredimo, je, da pijemo zdravila in
počivamo v upanju, da tegobe čim prej minejo. Zato je najboljši recept, da uporabimo
makrobiotiko, o kateri se lahko poučimo sami. Ko se neka oseba reši slabih
prehranjevalnih navad, se zdravje izboljšuje oziroma težav sploh več nima. Ljudje, ki se
ukvarjajo z makrobiotiko, potrjujejo, da je hrana v veliki večini krivec za nastanek mnogih
bolezni. Najbolj zdrava hrana, ki jo priporočajo strokovnjaki s področja makrobiotike, je riž,
ker zmanjša bolezni srca in zavira nastanek raka.
2.4 Raziskave o porabljenih kalorijah pri splošni fizični aktivnosti
Naša raziskava o porabi kalorij je bila narejena naveč ljudeh s približno maso
70kg. Približne rezultate, ki smo jih dobili na osnovi različnih enournih vsakodnevnih
dejavnosti, katere smo tudi primerjali s podatki na spletu, smo prikazali v Tabela 2.3.
Tabela 2.3: Tabela z aktivnostmi in porabljenimi kalorijami v 1h [8]
Aktivnost Porabljenih kalorij za 1 uro
Počasen hod 140
Sprehod 169–200
Počitek in klepet v stoječem položaju 112
Hoja v snegu 372–384
Branje 100
Učenje 107–111
Delo na računalniku 115
Spanje ali počitek v postelji 65–75
9
Osebna higiena 102–144
Aerobika 365
Košarka 584
Kolesarjenje 292
Tek 606
Smučanje 314
Kegljanje 219
Skakanje na vrvi 860
Ples 861
Plavanje 423
Tenis 584
Odbojka 292
Pohodništvo 438
Vožnja avtomobila 120
Nogomet 650
Stoječi položaj 140
Domače naloge 180
10
3 PRAKTIČNA APLIKACIJA
3.1 Android
Preden smo začeli z delom, smo želeli primerjati nekatere najnovejše statistike za
izbiro platforme, v kateri bomo razvijali našo aplikacijo. Na internetu smo našli podatke, ki
kažejo, da v letu 2013 na mednarodnem nivoju [11] več proizvajalcev (oziroma 70 %)
mobilnih telefonov kot operacijski sistem uporablja Android.
Kot je znano, število aplikacij, napisanih za Android, nenehno narašča. To je
operacijski sistem, ki ima odprtokodno licenco Apache. Koda za njegovo izvajanje je na
voljo na spletu za vse uporabnike, ki jo imajo možnost uporabiti. Omenjeni operacijski
sistem je zasnovalo podjetje Android Inc., v katerem so bili na samem začetku zaposleni
Andy Rubin, Rich Miner, Nick Sears in Chris White. V letu 2005 ga je prevzel Google in ga
tudi v celoti financiral in upravljal.Temelji na Linux jedru in se uporablja za mobilne in
tablične naprave [9], [10].
Razvijalci lahko razvijajo aplikacije in jih objavljajo na Android Play Storu, ki
predstavlja trg za Android aplikacije. Pri tem je potrebna namestitev Android SDK in ADT
plugin za Eclipse, pa tudi SDK orodja in platforme, ki jih uporablja SDK Manager. Priprava
projekta je preprosta z uporabo čarovnika. Pri tem je pomembno, da izberemo ime za
aplikacijo, paket, v katerem se bo nahajala izvorna koda, kot tudi minimalno različico
Androida, katero aplikacija podpira. Če želijo razvijalci preizkusiti aplikacijo, vendar ne
morejo tega narediti na Android napravi, obstaja virtualni stroj, ki se uporablja v ta namen.
Na virtualni stroj je že nameščen Android operativni sistem z vsemi vnaprej določenimi
aplikacijami kot tudi s trenutno programsko opremo, katero razvijalec razvija. Pri postavitvi
virtualnega stroja imamo na voljo več možnosti, kot je npr. dodelitev pomnilnika, ki ga bo
naprava vsebovala, tip Android naprave, različica operativnega sistema in še mnogo
drugih, ki so bolj realni in lažji za uporabo oz. testiranje aplikacij.
Po ustvarjanju projekta je potreben prikaz strukture podatkov. Na Slika 3.1 je
prikazan primer novoustanovljenega projekta.
11
Kot običajne Java aplikacije, tudi ti projekti vključujejo pakete z .java razredi,
kamor pišemo kode. V strukturi imamo tudi R.java datoteko, ki jo ustvari Java in vsebuje
vse definicije podatkov za neko aplikacijo. V assets mapi so ponavadi vsi zunanji viri, ki jih
uporablja aplikacija. Mapa res vsebuje mape drawable, v kateri imamo možnost za
izdelavo slik z xml datoteko, nato layout mapo, v katero ponovno z xml datoteko
opredeljujemo strukturo za izgled in postavitev komponente. Mapa values je namenjena
za opredelitev različnih vrst virov, kot so string, dimenzije in stili aplikacije. Najbolj
pomembna datoteka, ki povezuje vse opisano v neko celoto, je AndroidManifest.xml
datoteko, katera je pomembna za namestitev aplikacij. Datoteka vsebuje podatke o
Slika 3.1: Slika novoustvarjenega projekta v Eclipsu
12
aktivnostih, storitvah, paketih, dovoljenjih, ki jih aplikacija ima, in vse podatke, pomembne
za sistem Android.
Za razliko od ostalih Java aplikacij, ki imajo le navadne razrede, imajo Android
aplikacije aktivnosti (Activity razred), ki jih najpogosteje uporabljamo za prehod iz enega v
drugi pogled aplikacije. Vsaka aktivnost se deduje iz razreda Activity, pri čemer moramo
predefinirati onCreate metodo za njeno inicializacijo. V tej metodi je pomemben klic
setContentView, ki postavi layout, kateri se prikaže pri tej aktivnosti. Ker z aktivnostjo
krožimo ob aplikaciji, kar pomeni zagon neke nove aktivnosti, prekrijemo prejšnjo; tako
imamo 4 stanja za eno aktivnost. Ta stanja so najbolj prikazana v dokumentaciji Android
[12] na Slika 3.2. Vse barvne elipse predstavljajo glavna možna stanja, ki jih lahko ena
Slika 3.2: Življenjski cikel aktivnosti [12]
13
aktivnost ima, vse ostalo pa so metode, s katerimi se doseže določeno stanje.
Druga komponenta, ki smojo morali dobro preučiti, je baza podatkov SQLite,ki
Android uporablja. Za upravljanje z njo uporabimo standardne SQL povpraševanja, prav
tako za ostale podatkovne baze. Poleg tega lahko podatke shranimo v navadno datoteko
ter v SharedPreferences datoteko, če imamo manjšo količino podatkov. Ti podatki so
shranjeni v zbirkah ključ – vrednost, pri čemer je branje in pisanje zelo prosto.
3.2 Prikaz UI
Ko smo končali z načrtovanjem ciljev za aplikacijo, smo začeli ustvarjati izgled,
izbirati komponente, ki smo jih želeli vstaviti, in razporeditev, kako bi aplikacija izgledala
logično. Vsaka aktivnost ima svoj videz in svojo razporeditev komponente in za vsako
aktivnost smo uporabili tabelo, ki je pomagala pravilno in enakomerno postaviti
komponente, da bi dosegli estetsko oblikovanje. Uporabili smo najbolj osnovne
komponente, ki jih ponuja razvojno okolje. Nekatere, kot npr. ListView, smo tudi sami
oblikovali. Tako smo z lastno ustvarjalnostjo prispevali k lepšemu videzu aplikacije. Vsi
elementi in njihove lastnosti so napisani v xml datoteki in jih lahko pregledamo tudi
grafično. Del kode, ki smo jo uporabili pri aktivnosti ActivityResult, smo prikazali spodaj, in
sicer v dveh oblikah: v xml datoteki in tudi grafično na Slika 3.3.
<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/a
ndroid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/yellow">
<TableLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp">
<TableRow
14
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dip">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_field_bmiresults"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dip">
<TextView
android:id="@+id/textView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/text_field_calories_remaining"
android:textAppearance="?android:attr/textAppearanceMedium"/>
<ProgressBar
android:id="@+id/progressBar1"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingLeft="10dp"
android:progressDrawable="@drawable/greenprogress"/>
</TableRow>
15
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="50dp">
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
</TableRow>
</TableLayout>
</RelativeLayout>
Slika 3.3: Xml datoteka, prikazana grafično
16
3.3 Uporabljeni razredi
Po ustvarjanju projekta smo želeli najprej narisati cilje, ki smo jih želeli obdelati v
aplikacijo. Aplikacijo smo razdelili v 3 sklope, ki zajemajo:
vnašanje zahtevanih podatkov uporabnika, da bi izračunali BMR, BMI in
glede na izbor uporabnika, izračun kalorij, potrebnih za en dan;
odvisno od potrebnega števila kalorijah za en dan uporabnik doda hrano, ki
jo dnevno poje, in tako se ustrezno spreminjajo podatki;
odvisno od potrebnega števila kalorijah za en dan uporabnik doda podatke
o tem, koliko kalorij porabi pri fizični aktivnosti in s tem se podatki znova
spreminjajo.
Nato smo pričeli z oblikovanjem razredov in aktivnosti. MainActivity.java je začetna
aktivnost, ki se pojavi ob zagonu. Uporabnik vnaša v njo podatke, kot so teža, višina,
starost, spol in fizična aktivnost, ki jo izvaja v tem tednu. Pri tem ima možnost izbrati, kako
si želi spreminjati težo, torej jo želi ohraniti, povečati ali zmanjšati. Najprej izračunamo
indeks BMI, potem bazalni metabolizem, pri čemer dobimo kalorije, ki jih uporabnik lahko
vnese v telo v enem dnevu. Odvisno od izbire glede spreminjanja teže smo napisali
naslednjo kodo, ki izračuna najvišje število dnevnih kalorij, ki jih uporabnik lahko vnese:
//bmr * activity
doublebmr_activity = Math.round(bmr * activity_rate);
//weigth goal
double bmr_adjusted = 0.0;
switch (radio_group.getCheckedRadioButtonId())
{
case R.id.radio0:
bmr_adjusted = bmr_activity + (bmr_activity * 0.15);
break;
case R.id.radio1:
bmr_adjusted = bmr_activity;
break;
case R.id.radio2:
bmr_adjusted = bmr_activity - (bmr_activity * 0.15);
17
break;
}
Vse doslej omenjene rezultate smo prikazali z aktivnostjo ActivityResult.java, ki
dejansko predstavlja glavno aktivnost in prinaša meni in ostale možnosti sami aplikaciji.
Ker je debelost resen problem današnjega časa, smo želeli vzbuditi zavest uporabnikom s
tem, da smo dodali sporočilo o tem, kakšen je dejansko njihov problem. Naslednji del
kode prikazuje težo, ki je v mejah normalnega, in izredno težo, kar je odvisno od
sporočila, ki smo ga omenili.
if( bmi < 18.5 )
{
bmi_results = "Vi ste pothranjeni. ";
}
elseif( bmi >= 18.5 && bmi < 25.0 )
{
bmi_results = "Vi imate normalno telesno težo. ";
}
elseif( bmi >= 25.0 && bmi < 30.0 )
{
bmi_results = "Vi ste v fazo debelosti. ";
}
elseif( bmi >= 30.0 && bmi < 35.0 )
{
bmi_results = "Vi ste v prvo fazo debelosti. ";
}
elseif( bmi >= 35.0 && bmi < 40.0 )
{
bmi_results = "Vi ste v drugo fazo debelosti. ";
}
elseif( bmi >= 40.0 )
{
bmi_results = "Vi ste v tretjo fazo debelosti. ";
}
V te aktivnosti smo vstavili meni, v katerem imamo na izbiro dodajanje hrano, pri
čemer so dovoljene dnevne kalorije, ki se zmanjšujejo na osnovi fizičnih aktivnosti. Meni
18
smo naredili kot ListView s svojo zasnovo za vsak item. Vsak item na seznamu iz menija
ima svojo pozicijo in glede na izbrani položaj kliče naslednjo aktivnost. Klic na novo
aktivnost smo naredili takole:
startActivityForResult(
new Intent(ActivityResults.this, ActivityFood.class),
1);
Funkcija StartActivityForResult služi za začetek nove aktivnosti, ki bo, ko bo
dokončana, sporočila rezultat v aktivnosti, ki jo je poklicala. Rezultat vzamemo v
onActivityResult funkcijo, v katero odvisno od kode, s katero kličemo aktivnost, v našem
primeru 1, uporabimo vrnjeni rezultat. Naslednji del kode prikaže prevzemanje podatkov:
protectedvoidonActivityResult(int requestCode, int resultCode,
Intent data)
{
if(requestCode == 1)
{
if(resultCode == RESULT_OK)
{
int result =
data.getExtras().getInt("caloriesselected");
final_result_calories_added = result;
final_result_calories_daily +=
final_result_calories_added;
mProgressStatus += final_result_calories_added;
Resources res = getResources();
if(mProgressStatus>bmr_adjusted)
{
mProgress.setProgressDrawable(res.getDrawable(R.dr
awable.redprogress));
}
else
{
19
mProgress.setProgressDrawable(res.getDrawable(R.dr
awable.greenprogress));
}
}
}
}
Tista koda dejansko posodobi status progres bara in uporabnik obvesti o
preostalih dovoljenih kalorijah. ActivityFood.java je aktivnost, ki jo pokličemo iz menija, v
katerem imam podatke o količini hrane, ki jo pojemo. V tej aktivnosti ima uporabnik
možnost izbrati živila, ki jih vnaša, in njihov znesek, če pa seznam ne vsebuje te hrane ali
uporabnik te vrste hrane ne pozna, lahko sam vnaša količino kalorij, zaužitih pri obroku.
Podobno deluje druga aktivnost ActivityActivity.java, s tem da uporabnik izbere vrsto
fizične aktivnosti, ki jo naredil tekom dneva in koliko časa je ta aktivnost trajala. Če
aktivnost na seznamu ne obstaja, doda samo število porabljenih kalorij, ki jo je izmeril s
posebno napravo. Pri izpolnjevanju seznama teh dve aktivnosti smo uporabili bazo, iz
katere berem podatke, in smo jo napisali s programom SQLite Database Browser. V bazo
smo dodali dve tabeli. V prvo smo napisali vrsto hrane in njihove kalorične vrednosti, v
drugo smo zapisala vrsto fizične aktivnosti in kalorije, ki jih lahko uporabnik izgubi v 1 uri.
3.4 Primer delovanja
Za konec želimo natančneje predstaviti. Aplikacijo smo preizkusili na emulatorju, ki
ponuja razvojno okolje. Ko se aplikacija zažene, se pojavlja aktivnost z vnosi v polja, kar
je prikazano na Error! Reference source not found..
Ko uporabnik klikne gumb “Next”, se zažene naslednja aktivnost, ki prinaša
rezultate, kateri so vezani na prejšnjo aktivnost. Stanje vnesenih kalorij se spreminja, ko
uporabnik doda hrano ali aktivnost. Error! Reference source not found. prikazuje
obljene rezultate:
20
Slika 3.5: Zaslon z vnosi v polja
Slika 3.4:Zaslon z menijem in pridobljenimi rezultati
21
Če uporabnik želi dodati hrano, ima na voljo že nekaj možnosti, kar je prikazano
na Error! Reference source not found., ali pa sam doda število kalorij.
Na Error! Reference source not found. je prikazano, kako lahko uporabnik doda
rano na svoji račun, če pa je opravil kakšno fizično aktivnost in jo želi dodati na svoji
dnevni račun, se ta aktivnost prikaže na Error! Reference source not found..
Slika 3.6: Prebrani podatki iz baze o hrani
Slika 3.7: Zaslon za dodajanje hrane na dnevni
račun
Slika 3.7: Zaslon za dodajanje hrane na dnevni
račun
Slika 3.8: Zaslon za dodajanje fizične aktivnosti na
dnevni račun
22
V nadaljevanju so prikazani rezultati iz preizkušane aplikacije. Vsi uporabniki, ki so
testirali aplikacijo, so bili različno stari, kar pomeni, da so imeli tudi različni bazalni
metabolizem. V Tabela 3.1 so podani njihovi podatki in pridobljeni rezultati. Pri vseh
udeležencih smo vstavili povprečno aktivnost 1−3-krat na teden, ker vsi nimajo dovolj
prostega časa za enostavno vadbo, vstavili smo možnost za vzdrževanje telesne teže.
Nekateri udeleženci bi morali shujšati, da bi bila le-ta spet v mejah normale.
Pri raziskavi smo preizkušali aplikacijo večinoma na Android emulatorju, nekateri
so jo preizkušali na svoji Android napravi. Kot lahko vidimo iz rezultatov, obstajajo različne
stopnje debelosti, odvisno od njihovega BMI indeksa.
Tabela 3.1: Rezultati testiranja aplikacije
Teža (kg) Višina(cm) Starost Spol BMI indeks BMR(kcal) Stopnja debelosti
78 184 22 Moški 23.0 1911 Normalna telesna
teža
Slika 3.8: Zaslon za dodajanje fizične aktivnosti na
dnevni račun
23
63 165 15 Ženski 23.1 1493 Normalna telesna
teža
59 167 27 Ženski 21.2 1402 Normalna telesna
teža
98 175 59 Moški 32.0 1891 Prvo fazo debelosti
65 162 59 Ženski 24.8 1300 Normalna telesna
teža
85 160 46 Ženski 33.2 1549 Prvo fazo debelosti
78 170 47 Moški 27.0 1672 V fazo debelosti
55 150 74 Ženski 24.4 1113 Normalna telesna
teža
24
4 SKLEP
V sklopu diplomske naloge smo naredili raziskavo o debelosti, ki danes predstavlja
velik problem. Tema je zanimiva, ker vsak dan srečujemo ljudi, ki svoji postavi ne
posvečajo pozornosti; žal je med njimi tudi veliko mladine. Kot pomoč pri rešitvi problema
smo se odločili, da naredimo mobilno aplikacijo za Android naprave, ki so danes najbolj
razširjene in uporabljene. Pri tem smo opisali postopek nastanka aplikacije, vključili pa
smo tudi našo raziskavo. Podatki, potrebni za vodenje evidence in skrb za svojo težo, so
implementirani in obravnavani v aplikaciji. Mnogi imajo namreč radi nek nadzor nad svojo
težo, radi poskrbijo za svoj izgled in posledično tudi za idealno težo, s čimer je povezan
vnos dnevnih kalorij, ki morajo biti primerni temu, ali želi oseba zmanjšati, zadržati ali
povečati težo. V aplikaciji smo obravnavali tudi nekatere medicinske poglede in nasvete o
tem, kako bi uporabnik lahko imel neki vodič, ki bi ga usmerjal med samim procesom.
Uporabnik lahko tako nadzira dovoljene dnevne kalorije s pomočjo pravilnega načina
prehranjevanja in fizično aktivnostjo. Tako ima uporabnik ves čas pregled, koliko kalorij še
lahko zaužije do konca dneva. Med gradnjo aplikacije smo uporabili različne komponente
in lastnosti, ki jih razvojno okolje ponuja.
Android naprave so trenutno najbolj razširjene, zato se mora tudi razvojno okolje
za tiste naprave izboljšati, da bi aplikacije izgledale privlačnejše za uporabnike. Ker vedno
obstaja možnost za izboljšavo aplikacije, želimo to tudi storiti in nadaljevati z raziskavo o
tem, kako debelost vpliva na zdravje ljudi. Tako je naš cilj v prihodnosti narediti aplikacijo,
kompatibilno za Windows Phone in iOS operativne sisteme.
25
5 VIRI IN LITERATURA
[1] http://www.who.int/topics/obesity/en/ (07.07.2013)
[2] http://doktori.mk/element/view/4da347a659e1d/debelina-obesitas (07.07.2013)
[3] http://www.preventus.mk/index.php?option=com_content&view=article&id=3059:n
arusuvanja-voishranata&catid=75:poveke&Itemid=99 (10.07.2013)
[4] http://www.cenim.se/UserFiles/image/itm/itm.jpg (14.07.2013)
[5] http://www.calculator.net/ideal-weight-
calculator.html?ctype=metric&cage=22&csex=m&cheightfeet=5&cheightinch=10&
cheightmeter=184&x=46&y=10# (26.07.2013)
[6] http://www.shapefit.com/basal-metabolic-rate.html(01.08.2013)
[7] http://en.wikipedia.org/wiki/Basal_metabolic_rate(01.08.2013)
[8] http://www.mayoclinic.com/health/exercise/SM00109 (07.08.2013)
[9] http://source.android.com/faqs.html(08.08.2013)
[10] http://www.dummies.com/how-to/content/looking-at-the-android-operating-
system0.html(08.08.2013)
[11] http://techland.time.com/2013/04/16/ios-vs-android/(17.08.2013)
[12] http://developer.android.com/reference/android/app/Activity.html(17.08.2013)
[13] http://en.wikipedia.org/wiki/Body_mass_index(15.07.2013)
[14] http://www.manuelsweb.com/IBW.htm(19.07.2013)
[15] https://play.google.com/store/apps/details?id=at.viennasys.bmi (04.09.2013)
[16] https://play.google.com/store/apps/details?id=cn.menue.healthyliving (04.09.2013)
[17] https://play.google.com/store/apps/details?id=org.medhelp.mydiet (04.09.2013)
26
6 SLOVAR
BMI –Body Mass Index
WHO – World Health Organization
BMR – Basal Metabolic Rate
IBW – Ideal Body Weight
XML –Extensible Markup Language
ADT – Android Development Tools
SDK – Software Development Kit
SQL – Structured Query Language
27
28
29