Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Primož Skerbiš
RAZVOJ MOBILNE APLIKACIJE BOLHANOTIFY
Diplomsko delo
Maribor, avgust 2017
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Primož Skerbiš
RAZVOJ MOBILNE APLIKACIJE BOLHANOTIFY
Diplomsko delo
Maribor, avgust 2017
I
RAZVOJ MOBILNE APLIKACIJE BOLHANOTIFY
Diplomsko delo
Študent: Primož Skerbiš
Študijski program: Visokošolski strokovni
Računalništvo in informacijske tehnologije
Mentor: dr. Matej Črepinšek
Lektorica: Maja Antosiewicz Škraba, univ. dipl. slov.
II
III
Razvoj mobilne aplikacije BolhaNotify
Ključne besede: Android, bolha.com, obvestilo, aplikacija
UDK: 004.777:621.395.721.5(043.2)
Povzetek
V diplomskem delu je predstavljen razvoj mobilne aplikacije BolhaNotify za mobilne
naprave z operacijskim sistemom Android. Aplikacija rešuje problem dolgotrajnega
iskanja izdelkov na spletnem oglasniku Bolha.com.
IV
Developement of the mobile application BolhaNotify
Keywords: android, notification, bolha.com, application
UDK: 004.777:621.395.721.5(043.2)
Abstract
This thesis presents the development of the 'BolhaNotify' application for devices running
Android. The application serves as a way to shorten the tedious search engine
implemented by Bolha.com, an online service for buying and selling used items.
V
Kazalo 1. Uvod ..................................................................................................................................... 1
2. Pomembnejše tehnologije ................................................................................................... 3
2.1 Operacijski sistem Android ................................................................................................ 3
2.1.1 Zgodovina Androida ....................................................................................................... 4
2.1.2 Stanje na trgu mobilnih naprav ...................................................................................... 5
2.1.3 Arhitektura operacijskega sistema ................................................................................. 6
2.2: Programsko orodje InteliJ Android Studio ....................................................................... 8
2.3 Programski jezik Java ......................................................................................................... 9
2.3.1 Enostavnost .................................................................................................................. 10
2.3.2 Objektnost .................................................................................................................... 10
2.3.3 Neodvisnost .................................................................................................................. 11
2.3.4 Trdoživost ..................................................................................................................... 11
2.3.5 Varnost ......................................................................................................................... 11
2.3.6 Visoka zmogljivost ........................................................................................................ 12
2.4 Iskanje podatkov v strukturah HTML-ja .......................................................................... 13
2.5 Format JSON .................................................................................................................... 14
2.6 Orodje za verzioniranje kode Git ..................................................................................... 15
3. Ideja aplikacije .................................................................................................................... 16
4. Raziskava trga ..................................................................................................................... 17
5. Idejna zasnova aplikacije .................................................................................................... 18
VI
6. Ustvarjanje projekta........................................................................................................... 20
6.1 Zunanji viri in nastavitve projekta ................................................................................... 21
6.2 Varnost aplikacije ............................................................................................................ 22
6.3 Viri ................................................................................................................................... 23
6.4 Struktura razredov .......................................................................................................... 24
7. Aplikacija BolhaNotify ........................................................................................................ 25
7.1 Glavna aktivnost .............................................................................................................. 25
7.2 Aktivnost dodajanja filtrov .............................................................................................. 26
7.3 Nastavitve aplikacije ........................................................................................................ 27
8. Kaj se dogaja v ozadju? ...................................................................................................... 29
8.1 Asinhrono izvajanje ......................................................................................................... 29
9. Mnenja uporabnikov .......................................................................................................... 31
9.1 Mnenje prvega uporabnika ............................................................................................. 31
9.2 Mnenje drugega uporabnika ........................................................................................... 32
9.3 Mnenje tretjega uporabnika ........................................................................................... 33
9.4 Komentar ......................................................................................................................... 33
10. Test porabe prenosa podatkov ...................................................................................... 34
11. Primerjava aplikacije spletne strani Bolha.com z aplikacijo BolhaNotify ...................... 36
11.1 Razlaga rezultatov ......................................................................................................... 37
12. Zaključek ......................................................................................................................... 38
VII
Kazalo slik
Slika 1.1: Logotip spletnega oglasnika Bolha.com [povzeto dne 15. 7. 2017]. ........................... 1
Slika 2.1: Logotip operacijskega sistema Android. ...................................................................... 3
Slika 2.2: Verzije Androidov. ........................................................................................................ 4
Slika 2.3: Delež naprav z različnimi verzijami operacijskih sistemov [11]. .................................. 5
Slika 2.4: Delež naprav z operacijskim sistemom Android [2]. .................................................... 5
Slika 2.5: Arhitektura operacijskega sistema Android. ................................................................ 6
Slika 2.6: Logotip operacijskega sistema Android. ...................................................................... 8
Slika 2.7: Logotip programskega jezika Java. ............................................................................... 9
Slika 2.8: Primer kode JSOUP. .................................................................................................... 13
Slika 2.9: Primer kode GSON. .................................................................................................... 14
Slika 2.10: Logotip portala GitHub. ............................................................................................ 15
Slika 3.1: Logotip naše aplikacije. .............................................................................................. 16
Slika 4.1: Konkurenčna obstoječa aplikacija [povzeto 17. 7. 2017 – trgovina Google Play]. .... 17
Slika 6.1: Ustvarjanje projekta v programskem orodju Android Studio. ................................... 20
Slika 6.2: Datoteka Gradle z vključenimi paketi. ....................................................................... 21
Slika 6.3: Datoteka manifest našega projekta. .......................................................................... 22
Slika 6.4: Struktura datotek virov. ............................................................................................. 23
Slika 6.5: Razredi, uporabljeni v naši aplikaciji. ......................................................................... 24
Slika 7.1: Glavna aktivnost naše aplikacije. ............................................................................... 25
VIII
Slika 7.2: Videz aktivnosti dodajanja filtrov. ............................................................................. 26
Slika 7.3: Nastavitve filtriranja. ................................................................................................. 28
Slika 8.1: Primer prikaza obvestil o oglasih. .............................................................................. 30
Slika 11.1: Videz konkurenčne aplikacije med testnim iskanjem oglasov [povzeto dne 17. 7.
2017 – aplikacija Bolha]............................................................................................................. 37
IX
Uporabljene kratice
OHA – Open Handset Aliance
HAL – Hardware Abstraction Layer
ART – Android Runtime
API – Application Programming Interface
OS – Operating System
DVM – Dalvik
1
1. Uvod
Ker je tempo življenja vedno hitrejši, so nam opravila, ki jih moramo ponavljati vedno znova
in znova, odveč. Na eno takih opravil smo naleteli med iskanjem želenih izdelkov na
slovenskem spletnem oglasniku Bolha.com (slika 1.1).
Slika 1.1: Logotip spletnega oglasnika Bolha.com [povzeto dne 15. 7. 2017].
Problem nastane, kadar želenega izdelka nismo našli takoj oz. nam najdeni izdelki niso
ustrezali, zato smo morali korake iskanja ponavljati vedno, kadar smo želeli preveriti, če je na
spletnem oglasniku kaj novega.
Cilj diplomskega dela je poglobiti znanje iz uporabe programskega orodja Android Studio,
izdelovanja mobilnih aplikacij in programskega jezika Java.
V okviru dela je nastala aplikacija, ki uporabniku omogoča vnašanje filtrov, glede na katere
aplikacija kasneje išče oglase. Vsi najdeni oglasi se potem prečistijo še čez dva dodatna filtra,
ki ju je uporabnik nastavil v nastavitvah same aplikacije. Po končanem iskanju se v opozorilni
vrstici izpišejo vsi novi oglasi. Klik na enega izmed oglasov nas usmeri na spletno stran
oglasnika.
2
V diplomskem delu smo v prvem delu predstavili uporabljene tehnologije, pri čemer smo na
kratko predstavili tudi njihovo zgodovino in trenutno stanje na trgu. V drugem delu smo
približali postopek izdelave, najzanimivejše komponente aplikacije in uporabljenega
programskega orodja. Za konec smo predstavili še mnenja preizkuševalcev, ki so dala realno
sliko o uporabnosti aplikacije in o tem, kako se je odrezala v primerjavi z že obstoječo
rešitvijo. Na koncu smo navedli še nekaj sklepnih misli, možnosti nadgradnje in analizo
zaupanih mnenj.
3
2. Pomembnejše tehnologije
V tem delu diplomskega dela smo opisali tehnologije, ki so ključnega pomena za uspešno
implementacijo naše ideje v prakso. Za boljšo umestitev v sedanjost smo dodali tudi nekaj
zgodovine in tako dobili jasno sliko o razvoju tehnologije skozi čas.
2.1 Operacijski sistem Android
Android je odprtokoden operacijski sistem (slika 2.1), namenjen prenosnim mobilnim
napravam, kot so pametni mobilni telefoni in tablice. Uporabniška izkušnja temelji predvsem
na direktni manipulaciji z objekti. Glavna interakcija z napravo je prek zaslona, občutljivega na
dotik [1].
Slika 2.1: Logotip operacijskega sistema Android.
4
2.1.1 Zgodovina Androida
Za Android je odgovorno podjetje Android Inc., ki je bilo ustanovljeno oktobra leta 2003.
Ustanovitelji so bili Andy Rubin, Rich Miner, Nick Sears in Chris White. Najprej je bil cilj
podjetja ustvariti nov revolucionaren operacijski sistem, namenjen digitalnim kameram, a so
hitro spoznali, da to ne bo zadostilo njihovim zastavljenim ambicijam, zato so se usmerili na
trg mobilnih naprav, kjer sta takrat kraljevala Symbian (Nokia) in Windows Mobile
(Microsoft).
Julija 2005 je podjetje prevzel Google in ustanovil združenje OHA (Open Handset Aliance). Po
začetnih težavah je bil prvi mobilni telefon z novim operacijskim sistemom izdan septembra
2008. Imenoval se je HTC Dream oz. T-Mobile G1 [1].
Android je dobil več posodobitev, ki so izpopolnjevale sistem in dodajale nove
funkcionalnosti. Posebnost pri posodobitvah Androida je ta, da ima vsaka večja posodobitev
ime po znani slaščici. Septembra 2017 bo izšla že verzija 8.0 oz. Android O (slika 2.2).
Slika 2.2: Verzije Androidov.
5
2.1.2 Stanje na trgu mobilnih naprav
Glede na nekatere spletne vire [2] (slika 2.4) je imelo v prvem četrtletju leta 2017 skoraj 85 %
vseh mobilnih naprav naložen operacijski sistem Android. Trenutno je njegov konkurent le še
produkt podjetja Apple iOS, za ostale pa lahko le upamo, da jim bo uspel kakšen preboj in
bodo ustvarili nekaj zdrave konkurence ter dali pobudo za kakšne večje in korenitejše
nadgradnje.
Slika 2.3: Delež naprav z različnimi verzijami operacijskih sistemov [11].
Slika 2.4: Delež naprav z operacijskim sistemom Android [2].
6
2.1.3 Arhitektura operacijskega sistema
Operacijski sistem Android je sestavljen iz več sistemskih plasti, prikazanih na sliki 2.5 [3]. Ta
zgradba daje Androidu izjemno prenosljivost in učinkovitost.
Slika 2.5: Arhitektura operacijskega sistema Android.
7
Jedro Linux
Ta plast skrbi za interakcijo programske opremo s strojno. V jedru so gonilniki in storitve, ki
upravljajo s porabo energije, frekvenco procesorja, napajanjem komponent itd.
Strojni abstrakcijski nivo (HAL oz. Hardware Abstraction Layer)
Je skupek knjižnic Java, ki upravljajo z določenimi komponentami. V tem nivoju imajo svoje
knjižnice kamera, zaslon, senzorji itd.
Zagonsko okolje (ART oz. Android Runtime)
Zagonsko okolje omogoča izvajanje aplikacij. Od verzije 5.0 naprej ima vsaka aplikacija svoj
proces, ki uporablja svoj ART. Ta je napisan posebej za naprave z majhno količino pomnilnika
in podporo več virtualnim instancam izvajanja aplikacij. Starejše verzije Androida so
uporabljale zaganjalnik Dalvik (DVM).
Knjižnice C/C++
Te knjižnice uporabljajo zagonsko okolje ART in knjižnice HAL ter so namenjene čim bolj
direktni interakciji z jedrom operacijskega sistema. Nekaj teh knjižnic je vključenih tudi v
naslednjo plast knjižnic Java. Če želimo kot programerji dostopati do teh knjižnic, moramo
uporabiti paket Android NDK.
Java API
Vse aplikacije se zaganjajo in pridobivajo podatke iz storitev, ki so vključene v ta API
(izjemoma se lahko dostopa do knjižnic C/C++).
Sistemske aplikacije
So tovarniško prednaložene aplikacije, ki omogočajo osnovno funkcionalnost pametnega
mobilnega telefona. Večino teh aplikacij lahko glede na naše preference zamenjamo z
drugimi, ki jih najdemo v trgovini Google Play.
8
2.2: Programsko orodje InteliJ Android Studio
InteliJ Android Studio (slika 2.6) je uradno s strani Googla priznano orodje za razvoj aplikacij
za operacijski sistem Android. Prvič je bilo predstavljeno 16. maja 2013, prva stabilna različica
pa je izšla decembra 2014. Nadomestilo je rahlo zastarelo orodje Eclipse [4].
Program temelji na videzu programa JetBrains InteliJ IDEA, a je prilagojen razvoju mobilnih
aplikacij.
Slika 2.6: Logotip operacijskega sistema Android.
9
2.3 Programski jezik Java
V poznih 70. letih je Bill Joy dobil idejo, da bi ustvarili nov programski jezik, ki bi združeval
stare in nove koncepte programiranja. Ta ideja je nekaj časa mirovala, a je bila v 80. povod za
zagon projekta Stealth project, katerega cilj je bil raziskati tedanji trg in vanj vpeljati sodobno
tehnologijo. Leta 1991 so se zato sestali glavni odgovorni za ta projekt in prišli do spoznanja,
da ima največji potencial področje pametnih naprav za široko potrošnjo. Ugotovili so tudi, da
kupcev ne zanima strojna oprema naprav, ampak njihova uporabnost v praksi in trajnost
uporabljene tehnologije. Zgled je bil vzet iz tedanjih TV-sprejemnikov, ki so na isti tehnologiji
delovali že skoraj 50 let. Zaradi novih ciljev so projekt preimenovali v Green project. Eden
izmed glavnih akterjev pri novem projektu je bil James Grosling, ki je bil zadolžen za iskanje
najustreznejšega programskega jezika, s katerim bo mogoče doseči zahtevane
funkcionalnosti. Najprej je izbral jezik C++, a je relativno hitro ugotovil, da ta nizkonivojski
jezik ni primeren za namen njihove uporabe. Zato je poskusil z modifikacijo jezika C++ in ga
zmodificiral tako daleč, da je nastal nov programski jezik, ki ga je poimenoval Oak. Šele pri
registriranju patenta so v podjetju Sun Mycrosystems ugotovili, da programski jezik s takim
imenom že obstaja. Če so hoteli registrirati patent, so morali poiskati novo izvirno ime. Našli
so ga med obiskom kavarne v bližini sedeža podjetja in zanj izbrali ime Java (slika 2.7) [5].
Slika 2.7: Logotip programskega jezika Java.
10
Pri razvoju so sledili petim principom, ki jih mora upoštevati programski jezik [6]:
biti mora enostaven, objektno orientiran in poznan (sintaksa mora biti podobna že
obstoječim programskim jezikom),
biti mora robusten (odporen na napake) in varen,
biti mora neodvisen od arhitekture in prenosljiv med več sistemi,
izvajanje mora biti učinkovito in hitro,
biti mora interpretiran, dinamičen in imeti podporo za izvajanje na več procesorskih
nitih.
2.3.1 Enostavnost
Java je enostavnost dosegla z izpeljavo iz splošno znanega programskega jezika C++. Dodatno
pa so bili iz njene sintakse odstranjeni še vsi problematični gradniki, ki so programerjem
povzročali največ težav. K enostavnosti precej pripomore tudi velika zbirka izdelanih funkcij,
ki rešujejo že znane težave pri programiranju. Programer se zato lahko posveti izdelavi novih
programov, ne da bi obtičal na kakšnem že rešenem problemu [6].
2.3.2 Objektnost
Java je že od začetka grajena kot objektni programski jezik, kar ji da veliko prednost pred
jezikom C++ [6].
11
2.3.3 Neodvisnost
Javo zavezuje cilj »Napiši enkrat, poganjaj povsod«. Ta ideja je osnovana na cilju, da se izdela
takšen programski jezik, ki bo enako interpretiran na različnih platformah, ki omogočajo
njegovo prevajanje in izvajanje. Torej če je program preveden na eni platformi in ga
prenesemo na drugo, povsem različno platformo, ga ni treba ponovno prevajati, ampak ga le
zaženemo in pričakujemo enak rezultat. Tukaj so izjeme le datotečne poti, ki so povsem
odvisne od sistema do sistema. A ta težava je programsko lahko rešljiva in ne predstavlja
problema.
Neodvisnost je rešena tako, da sta prevajalno in izvajalno okolje ločeni. Vsaka platforma ima
svoje zaganjalno okolje. Cilj vseh izvajalnih okolij je, da premostijo razlike med različnimi
sistemi in ustvarijo enako okolje za izvajanje programov [6].
2.3.4 Trdoživost
Pri Javi je trdoživost dosežena s tem, da so iz sintakse programskega jezika izpuščene
funkcije, ki so po izkušnjah programerjev v jezikih C in C++ povzročale največ napak. Te
funkcije so: kazalci, večkratno dedovanje, ročno sproščanje pomnilnika (zato skrbi
avtomatiziran proces) in prekrivanje operatorjev, izpuščeni pa so tudi predprevajalni napotki
[6].
2.3.5 Varnost
Pri Javi zagotavlja glavni steber varnosti izvajalno okolje. To skrbi, da se program izvaja
izključno znotraj njega, le-ta pa mu dodeljuje dovoljeno količino pomnilnika in želene
dostope. Koda vseh izvajalnikov je prosto dostopna, kar je v preteklosti že omogočilo odpravo
nekaj varnostnih ranljivosti.
Varnost Jave je danes že praktično potrjena, prav tako pa v njeni zgodovini ni odkriti nobene
večje zlorabe [6].
12
2.3.6 Visoka zmogljivost
Java uporablja za izvajanje programov tolmača, ki iz bitne kode tvori strojno. Ta način v praksi
ne pripomore k zmogljivosti in hitrosti izvajanja. Težavo so delno rešili z različnimi tehnikami
pravočasnega prevajanja. V določenih primerih se Java lahko postavi ob bok jeziku C++ ali pa
ga celo preseže.
Veliko vlogo pri zmogljivosti igra tudi sposobnost uporabe več niti hkrati. Tako se lahko v
programu sočasno izvaja več dejavnosti naenkrat ali pa izvajalno okolje poskrbi, da se ustvari
nova nit, ki poskrbi za čiščenje pomnilnika in na ta način močno poveča učinkovitost izvajanja
programa [6].
13
2.4 Iskanje podatkov v strukturah HTML-ja
Na voljo je precej različnih orodij, ki se uporabljajo v ta namen. Mi smo iskali orodje, ki ga je
mogoče uporabljati s programskim jezikom Java, ima podporo za novejši standard HTML 5 in
je redno vzdrževano. Rešitev smo našli v knjižnici JSOUP.
Knjižnica JSOUP je napisana za programski jezik Java, s pomočjo katere je mogoče iz enakih
podatkov, ki jih dobi brskalnik za prikaz spletne strani, na enostaven način (slika 2.8) izluščiti
informacije, ki jih želimo.
JSOUP si iz podanega URL-ja ustvari drevo podatkov in strukturo, po kateri se kasneje
programer enostavno pomika in iz nje pridobiva podatke [7].
Slika 2.8: Primer kode JSOUP.
14
2.5 Format JSON
JSON je format za prenos in shranjevanje podatkov. To obliko zapisa podpira veliko različnih
programskih jezikov in razvojnih okolij [8]. Za podporo v programskem jeziku Java
potrebujemo eno izmed mnogih dodatnih knjižnic. Mi smo se odločili za knjižnico GSON.
GSON ali Google JSON je odprtokodna knjižnica za programski jezik Java, ki omogoča
serializacijo oz. deserializacijo objektov v obliko JSON. Objekte v taki obliki lahko zelo
enostavno zapisujemo (slika 2.9) v datoteke, zato je hramba v taki obliki zelo pogosta.
Knjižnica je bila naprej izdelana za potrebe Googla, kasneje (maja 2008) pa je bila ponujena
širši javnosti pod licenco Apache License 2.0 [9]. Sedaj se uporablja že verzija 2.8.1, ki je bila
izdana 30. maja 2017.
Slika 2.9: Primer kode GSON.
15
2.6 Orodje za verzioniranje kode Git
Git je široko uporabljeno orodje, namenjeno verzioniranju kode. To je za večino razvijalcev
nepogrešljiv del vsakega projekta, saj nam omogoča jasen pregled nad verzijami kode in nad
tem, kdo je avtor določenih odsekov. Obstaja več različnih ponudnikov, ki ponujajo storitev,
podprto s strani Gita.
Za naš projekt smo izbrali ponudnika GitHub (slika 2.10). Izbrali smo ga zato, ker študentom
omogoča brezplačno hrambo zasebnih projektov. Pri ostalih ponudnikih je ta storitev
plačljiva.
GitHub je bil prvič dostopen 8. februarja 2008 kot beta verzija spletne strani, uradno pa je
izšel tri mesece kasneje, torej je dostopen že več kot devet let. V tem času se je na portalu
GitHub razvilo veliko novih dodatnih funkcionalnosti, kot so razne statistike dela na projektih
in obširno uporabniško omrežje [10].
Slika 2.10: Logotip portala GitHub.
16
3. Ideja aplikacije
Pri grajenju ideje za našo aplikacijo smo izhajali iz dejstva, da mora biti aplikacija narejena
čim bolj enostavno in intuitivno. Zgrajena bo na uporabniku prijazen način, tako da bo
uporabnik najprej določil, kaj želi iskati. To bo določil z dodajanjem filtrov glede na ključno
besedo, kategorijo ali lokacijo prodajalca. Ko bo končal z določanjem filtrov, bo sprožil iskanje
in pozabil na našo aplikacijo.
Aplikacija ga bo, v primeru da se je na spletnem oglasniku pojavil nov oglas, ki ustreza
kateremu od nastavljenih filtrov, obvestila z obvestilom v obvestilni vrstici. S klikom na
prikazano obvestilo ga bo aplikacija usmerila na spletno stran oglasnika, kjer bo lahko videl
vse podrobnosti, ki bi ga utegnile zanimati. Na ta način bomo uporabniku prihranili veliko
časa, ki ga bo lahko posvetil drugim aktivnostim.
Izbrali smo tudi že logotip, ki ga bomo uporabljali za našo aplikacijo (slika 3.1).
Slika 3.1: Logotip naše aplikacije.
17
4. Raziskava trga
V spletni trgovini Google Play smo pod iskanim geslom »bolha« našli že obstoječo mobilno
aplikacijo, namenjeno iskanju oglasov na spletnem oglasniku Bolha.com (slika 4.1).
Aplikacija je narejena pregledno in enostavno. Ima pa tudi možnost vpisa v uporabniški
račun, ustvarjen na njihovem spletnem portalu. Na ta način uporabnik pridobi možnost
pošiljanja zasebnih sporočil in pregled svojih, trenutno objavljenih oglasov. Aplikacija dobro
služi svojemu namenu in je precej boljša rešitev, kot pa da bi morali za vsako iskanje oglasov
obiskati njihovo mobilno spletno stran.
Slika 4.1: Konkurenčna obstoječa aplikacija [povzeto 17. 7. 2017 – trgovina Google Play].
18
5. Idejna zasnova aplikacije
V tem poglavju diplomskega dela bomo opisali idejno zasnovo aplikacije, kakšne razrede
bomo potrebovali, koliko aktivnosti in kakšne težave bi lahko nastale pri takšni zgradbi.
Prva aktivnost bo namenjena prikazovanju že obstoječih nastavljenih filtrov. Za vsak
nastavljen filter bo v seznamu prikazano ime filtra, ki bo po potrebi nastavljivo ali pa bo
samodejno generirano glede na izbrane vrednosti. Pregled filtrov in ugotavljanje napak bi bilo
lahko olajšano tudi tako, da bi se v seznamu z manjšo pisavo izpisal tudi generiran URL, po
katerem bo potekalo iskanje. V zgornjem delu aktivnosti nad seznamom bosta pozicionirana
dva, največ trije gumbi, s katerimi bo mogoče priti do aktivnosti za dodatne nastavitve ali pa
zagnati iskanje v ozadju. Za dodajanje novih filtrov bo v spodnjem desnem kotu plavajoč
gumb, ki te bo usmeril na aktivnost za dodajanje novega filtra.
Druga aktivnost bo za dodatne nastavitve, in sicer bo enostavna in pregledna, imela bo vsaj
dve kategoriji, katerima bodo določene nastavitve za samo iskanje in njegovo pogostost, ter
kategorija za dodatno filtriranje najdenih rezultatov. V zgornjem levem kotu bo gumb, ki nas
usmeri nazaj na glavno aktivnost.
Tretja aktivnost bo namenjena dodajanju novega filtra. Do nje bomo prišli s klikom na gumb
Dodaj v spodnjem levem kotu glavne aktivnosti. V tej aktivnosti bo mogoče nastaviti želene
iskalne parametre za želeno ciljno skupino oglasov, torej ime filtra, kategorije, cenovni
razpon in število preiskanih strani za določen filter.
Četrta aktivnost bo namenjena zgolj izbiri regije in kategorije. Do te aktivnosti bomo prišli, če
bomo v aktivnosti, namenjeni dodajanju novega filtra, kliknili na izbor kategorije ali regije.
Prikazal se bo nov seznam v svoji aktivnosti. Klik na katero koli opcijo te bo preusmeril nazaj
na prejšnjo aktivnost. Izbral se bo kliknjeni element.
Večjih težav pri tej zasnovi ni zaznati, saj je karseda enostavna ter omogoča enostavne
nadgradnje in razširitve v prihodnje. Rešiti bo treba le nekaj težav, ki se lahko pojavijo med
19
implementacijo in so odvisne od samega sistema serviranja ter pridobivanja podatkov s
spletne strani.
Idejni videz aplikacije je zelo osnoven in bo vsekakor potreboval korenito spremembo v eni
od nadgradenj.
20
6. Ustvarjanje projekta
V tem delu bomo na kratko opisali značilnosti projekta, ustvarjenega v programskem orodju
Android Studio, in razložili nekaj odločitev, ki smo jih sprejeli tekom ustvarjanja. Te odločitve
bodo močno vplivale na končno uporabnost aplikacije.
V času ustvarjanja projekta je bila najnovejša dostopna verzija programskega orodja Android
Studio verzija 2.3.3. Ker smo imeli programsko opremo že na osebnem računalniku, smo
ustvarili le nov projekt. Med ustvarjanjem projekta (slika 6.1) smo se omejili na verzije
Androida med 4.1.1 in 7.0, torej bo aplikacija delovala le na tistih mobilnih napravah, ki imajo
verzijo Androida enako ali višjo od 4.1.1, torej API 16 oz. ime Jelly Bean ali novejše.
Takšno odločitev smo sprejeli zato, ker je delež naprav z verzijami Androida pod izbranim API-
jem vedno manjši (v tem trenutku (tretje četrtletje 2017) pod 1,5 % vseh aktivnih naprav in
pada). Prav tako so prenosne naprave, ki ne podpirajo novejših verzij operacijskega sistema,
precej slabše zmogljivosti, kar bi lahko imelo negativen vpliv na uporabnost naše aplikacije.
Dvignila pa se je tudi povprečna učinkovitost procesorjev, kapaciteta baterij in podpora
novejšim standardom prenosa mobilnih podatkov. Na ta način lahko karseda zmanjšamo
možno problematiko naše aplikacije, ki bi se lahko odražala v povečani porabi energije in
količini prenosa podatkov.
Slika 6.1: Ustvarjanje projekta v programskem orodju Android Studio.
21
6.1 Zunanji viri in nastavitve projekta
Ta kategorija datotek (slika 6.2) v programskem orodju Android Studio predstavlja osnovne
nastavitve projekta. V njej so zapisane spodnje in zgornje omejitve verzije Androida, na
katerih lahko deluje aplikacija. Najdemo pa tudi zapise, katere knjižnice naj bodo vključene
pri prevajanju programa, ter lokacije in verzije programov za grajenje programa.
V datoteko Gradle smo vključili knjižnici GSON in JSOUP.
Slika 6.2: Datoteka Gradle z vključenimi paketi.
22
6.2 Varnost aplikacije
Večino nastavitev za varnost same aplikacije najdemo v datoteki AndroidManifest.xml.
V njej lahko:
dodajamo zahteve za dostope do interneta, pošiljanja sporočil, klicanja, mobilnih
podatkov, notranjega spomina naprave itd.,
določamo aktivnosti, ki jih uporabljamo v aplikaciji,
navajamo storitve, ki se bodo uporabljale med samim delovanjem,
nastavljamo, kako bo videti ikona aplikacije.
V naši aplikaciji so registrirane štiri aktivnosti in ena storitev, ki bo skrbela za serviranje novih
podatkov (slika 6.3).
Slika 6.3: Datoteka manifest našega projekta.
23
6.3 Viri
Vse datoteke so napisane v formatu XML (slika 6.4). Vsak element v teh datotekah ima
določeno tudi identifikacijo, na katero se lahko kasneje sklicujemo iz programskih datotek.
V podmapi »layout« najdemo datoteke, ki so odgovorne za videz vsake posamezne aktivnosti
posebej. Videz urejamo z ustrezno postavitvijo notranjih in zunanjih elementov, kasneje pa
jim še lahko določimo odmike od roba ali od katerih drugih elementov.
V podmapah »drawable« in »values« si lahko dodamo poljubne ikone in sličice (»drawable«)
ali pa vrednosti nizov, polij ali barv (»values«), ki jih kasneje lahko uporabljamo za
prikazovanje iz kode, ali pa se nanje sklicujemo že direktno iz mape »layouts«.
Za aktivnost nastavitve je treba v tej mapi ustvariti še mapo »xml«, ki ima podobno vlogo kot
mapa »layouts«, le da je namenjena izključno videzu in funkcionalnosti aktivnosti nastavitve.
Vsebuje le gradnike, s katerimi je mogoče nastavljati kakšne vrednosti, torej stikala, vnosna
polja, sezname za izbore opcij itd.
Slika 6.4: Struktura datotek virov.
24
6.4 Struktura razredov
V teh razredih najdemo kodo, napisano v programskem jeziku Java.
Če kliknemo na kakšen gumb v aplikaciji, se bo prožil dogodek in klicala se bo funkcija, ki je
napisana v enem od teh razredov. Tukaj lahko definiramo tudi strukturne razrede, ki jih
potem uporabljamo za shranjevanje podatkov oz. prenos podatkov med aktivnostmi.
Vse razrede, ki smo jih napisali za našo aplikacijo (slika 6.5), bomo predstavili v enem od
naslednjih poglavij.
Slika 6.5: Razredi, uporabljeni v naši aplikaciji.
25
7. Aplikacija BolhaNotify
V tem delu diplomskega dela bomo na kratko predstavili uporabniški vmesnik, ki smo ga
izdelali glede na zgoraj opisano idejo aplikacije.
7.1 Glavna aktivnost
Vedno, ko zaženemo aplikacijo, se zažene koda v glavnem razredu »MainActivity« (slika 7.1).
Najprej se ustvarijo instance razredov, ki jih bomo potrebovali za nadaljnje delo in
manipulacijo s podatki. Ker ob odprtju aplikacije v začasnem pomnilniku ni podatkov o že
nastavljenih filtrih, te podatke preberemo v obliki JSON-a iz masovnega pomnilnika naprave
(kartice SD) in jih spremenimo v objekte podatkov, ki jih prikažemo v aplikaciji. V razredu so
definirane še metode, ki se prožijo ob klikih na gumbe v Išči, Dodaj in Nastavitve.
Če se odločimo, da bomo dodali nov filter, kliknemo na gumb Dodaj v spodnjem levem kotu
zaslona. Ta gumb nas bo s klicem metode isci_Click preusmeril na naslednjo aktivnost
dodajanja filtrov.
Slika 7.1: Glavna aktivnost naše aplikacije.
26
7.2 Aktivnost dodajanja filtrov
Ta razred je namenjen dodajanju novih filtrov (slika 7.2). Vsebuje logiko in omejitve, s
katerimi se srečamo pri iskanju po spletnem oglasniku Bolha.com. Na primer, iskanje ni
mogoče, če nimamo podane vsaj kategorije, ključne besede ali uporabnika. Razred tako
onemogoči shranjevanje želenega filtra, če nima vsaj enega od teh obveznih podatkov. O
napaki obvesti uporabnika.
Ob kliku na gumb Kategorija ali Regije se odpre nova aktivnost, namenjena lažjemu izboru
želenega podatka s seznama regij/kategorij. Klik na želen izbor nas vrne na prejšnjo aktivnost
in vnese želeno izbiro.
Obveščanje o napakah se sproži ob kliku na gumb, shrani in je implementirano tako, da se
ozadje pri obveznem podatku obarva, če ta ni pravilno vnesen ali pa ga sploh ni. Na koncu, ko
so vsi podatki pravilno vneseni, se objekt s podatki shrani na masovni pomnilnik naprave.
Vrnemo se na prikaz vseh dodanih filtrov.
Slika 7.2: Videz aktivnosti dodajanja filtrov.
27
7.3 Nastavitve aplikacije
Če v glavni aktivnosti kliknemo gumb Nastavitve, nas aplikacija preusmeri v uporabniški
vmesnik, namenjen dodatnim nastavitvam v aplikaciji (slika 7.3). Te nastavitve vplivajo na
izvajanje vsake ponovitve iskanja. Nastavimo lahko:
vsakih koliko minut se bo izvedlo iskanje novih oglasov. Izbiramo lahko v intervalu
med eno in pet minutami. Seveda se je pri tej nastavitvi treba zavedati, da višja kot bo
pogostost osveževanja, večja bo poraba podatkov in baterije mobilnega telefona. Na
ta račun pridobimo pogostejše obveščanje o novih oglasih in zmanjšamo možnost, da
bi se izdelek prej prodal, kot bi mi videli, da je nekdo objavil oglas;
omogočimo ali onemogočimo lahko obvestilo, ki se v obvestilni vrstici pojavi ob vsaki
ponovni osvežitvi rezultatov. Ta nastavitev je namenjena predvsem preverjanju, če
aplikacija še deluje, da nam ni treba skrbeti, da bi zamudili oglas zato, ker se je
aplikacija ustavila zaradi kakšne napake. Obvestilo se ob vsaki osvežitvi prepiše, da je
v obvestilni vrstici vedno samo eno obvestilo takšnega tipa in da ne moti
pregledovanja oglasov;
nivo iskanja podatkov. Aplikacija lahko pridobiva podatke v dveh možnih nivojih, če se
podatke pregleduje le na prvem nivoju. Torej prebira se le seznam oglasov, a dobimo
le nekaj osnovnih funkcij filtriranja (onemogočena so filtriranja podjetij, po
uporabniku in sortiranje po zadnjem datumu spremembe). V tem načinu aplikacija
porabi precej manj podatkov, a se pri tem žrtvuje njena uporabnost. Če pa
preklopimo na naprednejše iskanje, aplikacija porabi precej več virov, a pridobimo vse
podatke, ki jih potrebujemo za polno funkcionalnost aplikacije, omogočita se tudi
dodatni nastavitvi;
določimo uporabnike, ki jih ne želimo zaslediti med prikazanimi oglasi. Če smo imeli
že kdaj kakšno slabo izkušnjo s kakšnim prodajalcem in z njim ne bi več želeli
poslovati, ga lahko enostavno dodamo med izjeme in se njegovi oglasi med
prikazanimi oglasi ne bodo več prikazovali;
28
iz prikazanih rezultatov filtriramo oglase podjetij. Ker podjetja na spletni oglasnik
objavljajo precej oglasov, ki večinoma nimajo konkurenčnih cen, polega tega pa
uporabniki na spletnih oglasnikih večinoma kupujejo rabljene stvari in jih nove ne
zanimajo. Na ta način pridobimo preglednejše rezultate iskanja in manj oglasov, ki nas
ne bi utegnili zanimati.
Slika 7.3: Nastavitve filtriranja.
29
8. Kaj se dogaja v ozadju?
V tem delu bodo predstavljene glavne funkcionalnosti aplikacije, na katere uporabnik nima
neposrednega vpliva, a so ključnega pomena za njeno delovanje.
8.1 Asinhrono izvajanje
Za implementacijo asinhronega izvajanja skrbi razred AsyncTaskRunner. Asinhrono izvajanje
neke zadolžitve nam dovoljuje, da se zadolžitev izvaja v ozadju, mi pa lahko medtem
prikazujemo njen napredek in izvajamo kakšen drug del kode. V naši aplikaciji na tak način
pridobimo možnost spreminjanja nastavitev med delovanjem samega iskanja.
Razred je sestavljen iz treh ključnih funkcij, ki so potrebne za delovanje razreda, in ene, ki je
bila napisana zaradi boljše preglednosti kode. Prva funkcija se imenuje »doInBackground«, v
njej se izvaja poizvedba JSOUP na podan URL, s katerega želimo pridobiti podatke, ta pa nam
vrne drevesno strukturo objektov, po katerih se lahko sprehajamo in iščemo podatke. Vse
pridobljene podatke nato shranimo v objekt in jih pošljemo v naslednjo funkcijo
»onPostExecute«.
Druga funkcija je »onPostExecute«. Ta funkcija se izvede po končanem izvajanju funkcije
»doInBackground«, v katero smo dodali sortiranje in filtriranje pridobljenih podatkov.
Postopek je sledeč:
sortiranje po ID-ju oglasa ali po času, ko je bil oglas nazadnje spremenjen,
filtriranje, kjer se preverja, da je med podatki le en oglas z enakim ID-jem,
odstranjevanje filtriranih uporabnikov in oglasov podjetij,
brisanje že videnih oglasov,
shranjevanje vrednosti zadnjega videnega oglasa,
za vsak element v seznamu izpišemo obvestilo v obvestilno vrstico (slika 8.1).
30
Tretja ključna funkcija je »onStatusUpdate«. Ta funkcija se uporablja za izpis statusa, kako
daleč je izvajanje trenutne zadolžitve. V našem programu je zaenkrat ne uporabljamo, ker se
ves proces izvaja v ozadju, in uporabnika ne zanima, kako napreduje iskanje, ampak želi le
nove oglase s čim manj motečimi faktorji.
Dodali smo še četrto funkcijo, ki se uporablja za izpis obvestila, vedno ko se zažene iskanje
novih oglasov. Ta funkcionalnost je namenjena predvsem razhroščevanju.
Slika 8.1: Primer prikaza obvestil o oglasih.
31
9. Mnenja uporabnikov
Po nekaj tednih uporabe aplikacije smo se odločili, da oddamo aplikacijo v testiranje nekaj
uporabnikom. Za prve preizkuševalce so se javili trije navdušenci, ki so želeli ostati anonimni.
Namestitvena datoteka je bila posredovana uporabniku prek elektronskega naslova, ki si jo je
sam naložil na mobilni telefon in jo uporabljal tri dni. Po treh dneh testiranja je podal mnenje
in predloge za izboljšavo aplikacije.
9.1 Mnenje prvega uporabnika
»Menim, da aplikacija, z izjemo nekaterih napak, ki sem jih opazil med delovanjem, deluje
odlično in mi je v teh dneh prihranila ogromno časa, ki bi ga drugače porabil za iskanje po
obstoječi mobilni aplikaciji. Zelo uporabno se mi zdi, da se mi že takoj na zaklenjenem
zaslonu prikažejo obvestila o novih oglasih na Bolha.com. Aplikacija se je enkrat sama od
sebe ustavila in jo je bilo treba ponovno zagnati. Po tem problemu se to ni več ponovilo. Sem
pa opazil, da se mi je na mobilnem telefonu povečala poraba baterije. Iskanje sem imel
nastavljeno na vsako minuto z omogočenim naprednim iskanjem. Kot nadgradnjo bi
predlagal izboljšavo videza, predvsem same aplikacije.«
32
9.2 Mnenje drugega uporabnika
»Najprej sem imel težave pri namestitvi in zagonu aplikacije, ker mi je mobilni telefon blokiral
namestitev aplikacije iz neznanih virov. Ko sem uredil nastavitve v telefonu, se je aplikacija
namestila brez težav. Že takoj ob zagonu me je zmotil videz uporabniškega vmesnika, ampak
sem se v njem znašel in takoj ugotovil, kakšen je način delovanja aplikacije. Po dodajanju
želenih filtrov sem zagnal iskanje, ampak se je aplikacija vsake pol ure zaustavljala in
prenehala iskati oglase. Krivec za to je bila druga aplikacija, ki je vsake pol ure čistila aplikacije
v ozadju. Ko sem dodal BolhaNotify med izjeme, je delovanje aplikacije potekalo brez težav.
Ideja aplikacije se mi zdi super in v njej vidim možnost za uspeh v trgovini Play. Razen videza
aplikacije ne vidim večjih potreb po nadgradnji, razen mogoče nastavitev, da bi se za vsak
filter posebej dalo nastaviti, če aplikacija išče napredno ali osnovno, ter filtriranje po
podjetjih na podlagi enega filtra in ne vseh naenkrat. Zakaj nas klik na obvestilo ne pripelje v
osnovno aplikacijo in nas prestavi na spletno stran oglasnika?«
33
9.3 Mnenje tretjega uporabnika
»Aplikacija se mi zdi zelo uporabna in jo bom vsekakor uporabljal še naprej, manj dovršen
videz aplikacije me niti ne moti, ker jo odpreš enkrat, nastaviš, kar želiš, in potem pozabiš
nanjo. V teh treh dneh mi je verjetno prihranila kakšno uro časa, ki bi ga drugače porabil za
iskanje po vseh kategorijah, na katerih iščem oglase na mobilni aplikaciji. Sem pa opazil, da v
naprednem načinu iskanja aplikacija pri mojih filtrih in pogostosti iskanja porabi kar veliko
količino mobilnih podatkov. Zato napredna nastavitev in začetna nastavitev iskanja na vsako
minuto nista najbolj primerni za uporabnike z majhno količino mobilnega prenosa podatkov.
Izboljšal bi edino videz obvestil, ki jih prikazuje aplikacija, in vanje dodal kakšno sliko ali
podobno, ampak se zavedam, da bi to verjetno še povečalo porabo podatkov, in zato
domnevam, zakaj se tega še ni implementiralo.«
9.4 Komentar
Glede na mnenja uporabnikov aplikacije smo prišli do spoznanja, da bo treba najprej urediti
grafični vmesnik aplikacije, saj je bila ta pomanjkljivost omenjena kar dvakrat. Najprej bomo
uredili aktivnost vnosa novih filtrov, saj je po našem mnenju to najšibkejša točka grafičnega
vmesnika. Nato se bomo lotili še obvestil.
Vsekakor bo v aplikacijo dodanih tudi več nastavitev, ki si jih bodo lahko uporabniki prilagajali
glede na svoje želje. Zaskrbelo nas je, ker sta imela dva preizkuševalca težave pri namestitvi
aplikacije oz. se je ta med delovanjem zaustavljala. Menimo, da je bila za zaustavljanje
aplikacije kriva druga programska oprema, namenjena varčevanju s porabo energije, ki je
preprečevala delovanje naše aplikacije v ozadju. Začasno rešitev vidimo v opozorilu, ki se
prikaže na glavni aktivnosti, če je na sistemu prisotna kakšna podobna aplikacija. Kasneje bo
treba težavo rešiti elegantneje.
34
10. Test porabe prenosa podatkov
Po komentarjih in izraženi zaskrbljenosti smo se odločili narediti testne meritve porabe
prenosa podatkov (Tabela 10.1). Meritve porabe smo izvajali s programom My Data
Manager, najdenim v trgovini Google Play. Program ima zelo pregledno in nazorno prikazano
porabo podatkov iz različnih virov (mobilni, domači brezžični internet) in ločeno porabo na
vsako aplikacijo posebej. Zato ni bilo težko razbrati porabe podatkov naše aplikacije.
Test je potekal pod točno določenimi pogoji na domačem brezžičnem omrežju, na katerem je
bila vseskozi preverjana stabilnost povezave. Mobilna naprava je bila med testiranjem na
enakem mestu priključena na polnilec. Na ta način smo izključili možnost, da bi naprava
izgubila povezavo z omrežjem in zato test ne bi pokazal pravih rezultatov. Vsak test je bil
ponovljen dvakrat in vsak je trajal tri ure. V tabeli so napisani povprečni rezultati obeh
meritev.
Tabela 10.1: Izmerjena poraba virov
Čas
osveževanja
Napredno
iskanje
Količina
filtrov
Poraba
podatkov
Poraba
energije
1 minuta DA 1 61,8 MB 132 mAh
1 minuta NE 1 4,26 MB 54 mAh
1 minuta NE 2 7,32 MB 78 mAh
1 minuta DA 2 117,6 MB 228 mAh
3 minute DA 1 21 MB 48 mAh
3 minute NE 1 3,2 MB 30 mAh
3 minute NE 2 6,1 MB 41 mAh
3 minute DA 2 45,1 MB 90 mAh
35
5 minut DA 1 13,3 MB 54 mAh
5 minut NE 1 2,0 MB 30 mAh
5 minut NE 2 4,9 MB 38 mAh
5 minut DA 2 26,1 MB 79 mAh
Iz rezultatov meritev je razvidno, da se poraba podatkovnega prenosa močno poveča, če
imamo omogočeno nastavitev naprednega iskanja. Poraba se sorazmerno niža glede na
dolžino intervala iskanja.
Naša priporočila so, da za osnovno iskanje uporabljamo interval treh minut in onemogočimo
možnost naprednega iskanja.
S porabo podatkov je močno povezana tudi poraba energije mobilne naprave, zato z
nastavitvami, ki ugodno vplivajo na porabo podatkov, ugodno vplivamo tudi na porabo
energije.
36
11. Primerjava aplikacije spletne strani Bolha.com z
aplikacijo BolhaNotify
Če primerjamo našo izdelano aplikacijo z že obstoječo rešitvijo (Tabela 11.1), pridemo do
spoznanja, da sta aplikaciji namenjeni istemu cilju, le da sta izdelani z drugačno začetno idejo.
Konkurenčna aplikacija je namenjena splošnemu iskanju, ki ga ponavljamo vedno znova in
znova. In na ta način ponovno izpostavlja problem, ki ga rešuje naša aplikacija. Torej če
želimo v aplikaciji poiskati želeno ciljno skupino oglasov, moramo aplikacijo vedno znova
odpreti, določiti želene iskalne parametre in pregledati vrnjene rezultate.
Če naredimo preprost izračun na preprostem primeru: na primer koliko klikov na zaslon je
potrebnih za iskanje izdelka s ključno besedo »SSD« z lokacijo prodajalca v »Podravski« regiji.
Pri iskanju ne bomo šli v podrobnosti, kot npr. z določitvijo cenovnega razpona in lokacije
izdelka. Iskanje ponovimo desetkrat v razmahu ene minute ne glede na to, če so na strani
novi rezultati ali ne.
Vsi kliki se štejejo z domačega zaslona, na katerem je bližnjica za odpiranje aplikacije. Prvi klik
je odprtje, zadnji pa zaprtje aplikacije.
Tabela 11.1: Primerjava obstoječe aplikacije z našo
BolhaNotify Aplikacija Bolha.com
Število klikov za testni primer 12 110
37
11.1 Razlaga rezultatov
Prednost naše aplikacije je, da so filtri nastavljeni vnaprej in jih aplikacija kasneje uporablja
vedno znova in znova, ko pregleduje spletno stran za nove oglase. Obvestilo o novem oglasu
pa prikaže le takrat, ko je med najdenimi oglasi našla novega. Zato vse narejene klike
naredimo v prvi iteraciji iskanja. V ostalih pa klikov ne ponavljamo več.
Pri konkurenčni aplikaciji (slika 11.1) je bilo treba želene korake in klike ponavljati vedno
znova in znova, zato so se kliki z vsako iteracijo le še ponavljali.
Slika 11.1: Videz konkurenčne aplikacije med testnim iskanjem oglasov [povzeto dne 17. 7. 2017 –
aplikacija Bolha].
38
12. Zaključek
Rezultat diplomskega dela je aplikacija BolhaNotify, ki nam lahko prihrani veliko časa pri
iskanju želenih izdelkov, saj nam omogoča, da v njej prednastavimo filtre, po katerih želimo
iskati oglase, nato pa aplikacija sama poskrbi za iskanje teh oglasov in nas o njih tudi obvešča.
Uporabnik lahko med tem časom počne druge pomembnejše stvari.
Aplikacije ja namenjena vsem, ki so že kadar koli iskali kakšen izdelek po katerem koli
spletnem oglasniku in prišli do ugotovitve, da jim ta postopek vzame preveč časa.
V diplomskem delu smo najprej na kratko spoznali tehnologije in se sprehodili čez njihovo
zgodovino. Te tehnologije so kasneje uporabljene v drugem delu, ki je bil bolj praktično
obarvan ter nas je na zelo enostaven način popeljal v razvoj in v podrobnosti naše aplikacije.
Po predstavitvi aplikacije in njenih najzanimivejših delov smo za mnenje o njej vprašali tri
neodvisne prizkuševalce.
Glede na naše mnenje in mnenje preizkuševalcev je vsekakor treba najprej nadgraditi videz in
dizajn same aplikacije, šele kasneje pa dodati funkcionalnosti, ki bodo uporabnost aplikacije
še razširile. V načrtu za prihodnost je tudi, da se bo aplikacija razširila tudi na druge spletne
oglasnike po Sloveniji, nato pa še v tujino. Koraki za prihodnje trženje same aplikacije se bodo
gibali v smeri objave aplikacije na spletni tržnici Google Play, a bo aplikacija zagotovo prosto
dostopna, se pa bo uredilo oglaševanje v sami aplikaciji.
Pri primerjanju naše aplikacije z obstoječo rešitvijo smo ugotovili, da obe aplikaciji služita
svojemu namenu, a smo spoznali, da se razlikujeta že v sami ideji aplikacije. Zato sta se
razvijali vsaka v svojo smer. Naša aplikacija je usmerjena povsem v iskanje oglasov, obstoječa
rešitev pa je usmerjena v več smeri hkrati, saj lahko z njo oglase iščeš, jih dodajaš, pišeš
zasebna sporočila in še mnogo več. Menimo, da se končna produkta toliko razlikujeta, da ju ni
smiselno uvrščati v enako kategorijo oz. da bi bilo primerno zaradi ene rešitve opustiti drugo,
ki bi jo nadomestila. Po našem mnenju je najprimernejše uporabljati obe aplikaciji hkrati.
39
Med razvojem in raziskovanjem za izdelavo smo spoznali veliko novih stvari s področja
programiranja. Ker se do začetka izdelave te aplikacije še nismo srečali s programiranjem za
mobilni telefon, je bilo to za nas povsem novo področje, a hkrati poučno doživetje. Vemo, da
nam bodo izkušnje vsekakor prišle prav še pri nadaljnji strokovni poti, saj je veščina
programiranja mobilnih aplikacij zelo cenjena tudi pri delodajalcih. Pri tem diplomskem delu
nam je bolj pomembna pot, ki smo jo prehodili, da smo izdelali aplikacijo, kot pa aplikacija
sama. Seveda pa ta izdelek vsekakor ne bo šel v pozabo in ga bomo z veseljem še naprej
izboljševali, razvijali in seveda pridno uporabljali.
40
13. Viri
[1] »Wikipedia – Android (Operating system)« [Elektronsko] – obiskano 21.06.2017
https://en.wikipedia.org/wiki/Android_(operating_system)
[2] »IDC« [Elektronsko] – obiskano 28.06.2017
http://www.idc.com/promo/smartphone-market-share/os
[3] »Android platform Arhitecture« [Elektronsko] – obiskano 28.06.2017
https://developer.android.com/guide/platform/index.html
[4] »Wikipedia – Android Studio« [Elektronsko] – obiskano 29.06.2017
https://en.wikipedia.org/wiki/Android_Studio
[5] »Osnove programiranja v Javi« [Knjižno] – Marjan Heričko, Aleš Živkovič, Simon
Beloglavec, Ivan Rozman – Maribor, maj 1999
[6] »Java2 – Temelji programiranja« [Knjižno] Uroš Mesojedec, Borut Fabjan – Ljubljana 2004
[7] »Wikipedia – JSOUP« [Elektronsko] – obiskano 30.06.2017
https://en.wikipedia.org/wiki/Jsoup
[8] »JSON« [Elektronsko] – obiskano 21.06.2017
http://www.json.org/
[9] »Wikipedia – GSON« [Elektronsko] – obiskano 21.06.2017
https://en.wikipedia.org/wiki/Gson
[10] »Wikipedia – GitHub« [Elektronsko] – obiskano 18.07.2017
https://en.wikipedia.org/wiki/GitHub
41
[11] »Android Dashboards« [Elektronsko] – obiskano 18.07.2017
https://developer.android.com/about/dashboards/index.html
42
43
44
45