Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE
V NOVEM MESTU
MAGISTRSKA N A L O G A
ŠTUDIJSKEGA PROGRAMA DRUGE STOPNJE
PETER ZUPANČIČ
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE
V NOVEM MESTU
MAGISTRSKA NALOGA
RAZVOJ MOBILNE APLIKACIJE – MOBILNI
IMENIK GOSTINSKIH PONUDNIKOV MALCAJT
Mentor: izr. prof. dr. Blaž Rodič
Novo mesto, junij 2017 Peter Zupančič
IV
IZJAVA O AVTORSTVU
Podpisani Peter Zupančič, študent FIŠ Novo mesto, izjavljam:
da sem magistrsko nalogo pripravljal samostojno na podlagi virov, ki so navedeni v
magistrski nalogi,
da dovoljujem objavo magistrske naloge v polnem tekstu, v prostem dostopu, na
spletni strani FIŠ oz. v elektronski knjižnici FIŠ,
da je magistrska naloga, ki sem jo oddal v elektronski obliki, identična tiskani verziji,
da je magistrska naloga lektorirana.
V Novem mestu, dne _________________ Podpis avtorja ______________________
Zahvaljujem se mentorju izr. prof. dr. Blažu Rodiču za mentorstvo pri magistrski nalogi. Prav
tako se zahvaljujem celotnemu referatu za vso pomoč, ki so mi jo nudili tekom študija.
Zahvala pa gre tudi družini, ki mi je stala ob strani in me podpirala skozi vsa leta
izobraževanja.
VII
POVZETEK
Aplikacija Malcajt je imenik, ki na enem mestu združuje vse gostinske ponudnike. Cilj mobilne,
kakor tudi spletne aplikacije je uporabniku na enem mestu nuditi celovite informacije o
ponudniku ter njegovi ponudbi. Prednost v aplikaciji dajemo predvsem ponudnikom, ki nudijo
vsakodnevne malice ter kosila. Vsak posamezen ponudnik lahko povsem samostojno skrbi za
objavljanje njegove ponudbe malic ter kosil in urejanje splošnih podatkov o njegovem lokalu.
Ponudniku lahko za določen znesek ponudimo dodaten način oglaševanja in promocije.
Dodatna prednost naše aplikacije je objava ponudbe na enem mestu, ki je nato prikazana na več
mestih hkrati. Z enim klikom tako ponudnik objavi ponudbo v spletni aplikaciji, mobilni
aplikaciji, njegovi spletni strani ter na Facebook profilu. Uporabnik lahko z enim klikom
spremlja ponudbo gostinskih ponudnikov in tudi njihove splošne informacije, kot so kontaktni
podatki, delovni čas, njihova lokacija ipd.
KLJUČNE BESEDE: Malcajt, aplikacija, mobilna aplikacija, gostinski ponudniki, malice in
kosila, spletna aplikacija
ABSTRACT
Mobile and web application Malcajt is an application which contains all restaurants on one
place. Main idea of the application is to offer to a user all the information on one place for all
restaurants in Slovenia. Our focus is on all restaurant providers which offer daily lunches and
snacks. Restaurant owner can simply modify all of his data and his daily offer. For an agreed
fee an owner can get extra advertising and promotion. Only with one click owner can publish
his daily or weekly offer on multiple places which are published in mobile app Malcajt, web
app Malcajt, his own web page - if he integrates embedded code on his page, and also Facebook
page for his restaurant. Simply by one click users can get all restaurant data about their daily
offer of lunches and other information like contact information, opening hours, their location
etc.
KEY WORDS: Malcajt, mobile application Malcajt, restaurants, list of restaurants, lunch, web
app
IX
KAZALO
1 UVOD ................................................................................................................................. 1
1.1 Cilj ............................................................................................................................ 1
1.2 Raziskovalna vprašanja ............................................................................................ 2
2 ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH
APLIKACIJ ........................................................................................................................ 3
2.1 Mobilne tehnologije ................................................................................................. 3
2.1.1 Mobilne aplikacije ........................................................................................ 3
2.1.2 Mobilne naprave ........................................................................................... 3
2.1.3 Operacijski sistemi ........................................................................................ 4
2.1.4 Razvojno okolje ............................................................................................. 5
2.2 Spletne tehnologije ................................................................................................... 8
2.2.1 PHP ............................................................................................................... 8
2.2.2 MySQL ........................................................................................................ 10
2.2.3 HTML .......................................................................................................... 11
2.2.4 CSS .............................................................................................................. 11
2.2.5 JavaScript ................................................................................................... 13
2.3 Ostale uporabljene tehnologije ter orodja .............................................................. 15
2.3.1 Linux operacijski sistem .............................................................................. 15
2.3.2 Apache spletni strežnik ............................................................................... 15
2.3.3 SSL protokol za varno povezavo ................................................................. 15
2.3.4 IPV6 protokol .............................................................................................. 15
2.3.5 Google API.................................................................................................. 15
XI
3 RAZVOJ APLIKACIJE MALCAJT ................................................................................ 18
3.1 Ideja ........................................................................................................................ 18
3.2 Pregled obstoječih rešitev....................................................................................... 18
3.3 Metodologija .......................................................................................................... 21
3.3.1 Razvojna metodologija................................................................................ 21
3.4 Analiza in specifikacija zahtev ............................................................................... 22
3.4.1 Zahteve oziroma želene funkcionalnosti ..................................................... 22
3.4.2 Specifikacije zahtev aplikacije .................................................................... 22
3.5 Načrtovanje in razvoj aplikacije ............................................................................. 24
3.5.1 Načrtovanje podatkovne strukture .............................................................. 24
3.5.2 Načrtovanje posameznih delov aplikacije .................................................. 24
3.6 Testiranje ................................................................................................................ 35
3.6.1 Testiranje strežnika ..................................................................................... 35
3.6.2 Testiranje podatkovne strukture ................................................................. 35
3.6.3 Testiranje programske kode ........................................................................ 35
3.6.4 Testiranje uporabniškega vmesnika ............................................................ 35
4 REZULTATI RAZISKAVE............................................................................................. 40
5 ZAKLJUČEK ................................................................................................................... 52
6 LITERATURA IN VIRI ................................................................................................... 55
XIII
KAZALO SLIK IN TABEL
Slika 2.1: Potek izvajanja PHP skripta ..................................................................................... 10
Slika 2.2: Primer predprocesorskega jezika SASS, LESS ....................................................... 12
Slika 2.3: Delovanje SSL protokola ......................................................................................... 16
Slika 3.4: Prikaz iskalnika po ponudnikih ................................................................................ 26
Slika 3.5: Predstavitev ponudnika na spletu ............................................................................. 28
Slika 3.6: Okno za prijavo/registracijo ..................................................................................... 29
Slika 3.7: Urejevalno okolje za ponudnika ............................................................................... 30
Slika 3.8: Prikaz imenika ponudnikov v mobilni aplikaciji Malcajt ........................................ 32
Slika 3.9: Prikaz mobilne aplikacije Malcajt ............................................................................ 34
Slika 3.10: Testiranje strežnika 1000 zahtevkov/min ............................................................... 35
Slika 3.11: Testiranje strežnika 5000 zahtevkov/30 s .............................................................. 36
Slika 3.12: Testiranje strežnika 10000 zahtevkov/15 s ............................................................ 36
Slika 4.13: Primer promocije na Facebook socialnem omrežju ............................................... 42
Slika 4.14: Primer zadetkov iskanja v Google iskalniku .......................................................... 43
Slika 4.15: Promocijski material za ponudnika ........................................................................ 45
Slika 4.16: Prikaz obiskanosti mobilne aplikacije .................................................................... 48
Slika 4.17: Obiskanost spletne aplikacije ................................................................................. 50
Slika 4.18: Statistika obiskanosti spletne aplikacije za mesec april ......................................... 50
Slika 4.19: Obisk spletne strani pred in po izdelavi predstavitvene spletne aplikacije ............ 51
Tabela 3.1: Prednosti/slabosti produkta Gostilne.si ................................................................. 19
Tabela 3.2: Prednosti/slabosti produkta Gostilne.delo.si ......................................................... 19
Tabela 3.3: Prednosti/slabosti produkta Dobregostilne.si ........................................................ 20
Tabela 3.4: Prednosti/slabosti produkta Restavracije-gostilne.si ............................................. 20
1
1 UVOD
Aplikacija Malcajt je mobilna in spletna aplikacija, katere cilj je zbrati čim več gostinskih
ponudnikov na enem mestu. Velikokrat imamo težave ravno pri tem, ko ne vemo, kaj in kam
bi šli jest. V ta namen si lahko pomagamo z našim novim produktom na slovenskem trgu.
Mobilna aplikacija, ki je razvita za iOS in Android operacijske sisteme, trenutno omogoča
pregledovanje gostinskih ponudnikov, filtracijo ponudnikov po dodatnih opcijah, kot so
invalidski dostop, dostava hrane, odprto za vikende itd., prikazovanje gostinskih ponudnikov,
ki so najbližje naši trenutni lokaciji, kakor tudi iskanje po ponudnikih s pomočjo iskalnika. S
pomočjo izbire regije oziroma kraja pa lahko še enostavneje pridemo do določene gostilne, ki
nas zanima. Sam gostinski ponudnik ima na voljo kar nekaj podatkov, ki jih lahko izpolni in se
tako še bolj približa uporabnikom. Objavi lahko svojo naslovno sliko, svoje osnovne podatke,
spletno stran, e-poštni naslov, delovni čas in, kar je najbolj pomembno, dnevno objavlja malice
ter kosila, če jih ima na voljo. Med drugim je pomembna tudi njegova stalna in aktualna
ponudba.
Magistrska naloga je sestavljena iz dveh delov. Prvi del zajema teoretično razlago vseh
uporabljenih tehnologij, ki smo jih uporabili za izdelavo aplikacije Malcajt. Podrobneje se
bomo seznanili s tehnologijami PHP, MySQL, JavaScript, katere so bile uporabljene pri sami
izvedbi produkta. Predstavljene so tudi tehnologije razvoja mobilnih aplikacij.
Drugi del magistrske naloge zajema predstavitev aplikacije Malcajt. Opisana je podrobna
funkcionalnost aplikacije, predstavljena je uporaba določenih funkcionalnosti in podrobneje
predstavljen segment med uporabniki in ponudniki. Predstavljen je tako uporabniški del
aplikacije, kakor tudi administracijski del, katerega uporabljajo gostinski ponudniki za urejanje
njihove ponudbe.
1.1 Cilj
Cilj magistrske naloge je raziskati možnosti za uporabo mobilne aplikacije na pametnem
telefonu, kot pomoč uporabniku pri vsakodnevnem odločanju kam na malico. Predstavljena je
tako mobilna, kakor tudi spletna aplikacija Malcajt ter tudi potek samega razvoja.
UVOD
2
1.2 Raziskovalna vprašanja
Pred razvojem produkta smo si zastavili vprašanja, na katera smo dobili odgovor tekom same
raziskave. V najširšem pomenu delamo raziskavo, za katero smo zbrali podatke za odgovore na
vprašanja, ki rešujejo težave. Za dobro raziskovanje je pomembno, da definiramo dobra
raziskovalna vprašanja, na katera kasneje najdemo odgovore. Naša raziskovalna vprašanja so
naslednja:
Kako pridobiti čim večji nabor uporabnikov?
Kako skrbeti za promocijo in oglaševanje mobilne aplikacije?
Kako gostinskega ponudnika pripraviti, da bo skrbel za aktualno ponudbo in s tem
pridobil še večje število uporabnikov na svojo stran?
Katera razvojna orodja uporabiti za razvoj mobilne aplikacije?
Ali spletna aplikacija pripomore k pridobivanju dodatnih uporabnikov?
3
2 ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER
MOBILNIH APLIKACIJ
Poglavje zajema podrobnejši opis vseh uporabljenih tehnologij za razvoj tako spletne, kakor
tudi mobilne aplikacije. Podrobneje smo predstavili mobilne tehnologije, ki se v današnjem
času uporabljajo za razvoj mobilnih aplikacij, in tudi tehnologije, ki so bile uporabljene pri
razvoju spletne aplikacije.
2.1 Mobilne tehnologije
Mobilne tehnologije, med katere štejemo pametne telefone, tablice in prenosne računalnike, vse
bolj prodirajo v naše življenje. Skupna značilnost vseh je majhen zaslon v visoki ločljivosti,
dostop do spleta iz najbolj neobičajnih krajev; tablice in pametne telefone, pa je moč gledati v
pokončni oziroma ležeči (vodoravni) postavitvi zaslona (Mobilne tehnologije, 2017).
2.1.1 Mobilne aplikacije
Mobilne aplikacije so posebni programi, ki jih naložite na vaš mobilni telefon. Trenutno jih je
na voljo že več sto tisoč, najbolj priljubljene pa so naslednje: aplikacije za zagotavljanje dodatne
funkcionalnosti družabnih omrežij, igre, aplikacije za novice in informacije, zemljevidi ipd.
(Oldsafe, 2016).
Na pospešen razvoj mobilnih aplikacij je vplival predvsem pojav t. i. pametnih telefonov
(smartphones), ki omogočajo preprost dostop do mobilnih aplikacij in enostavno brskanje po
spletu. Vse aplikacije pa ne delujejo na vsakem mobilnem telefonu, zato je potrebno pred
namestitvijo preveriti, kakšne aplikacije podpira določen mobilni telefon. Najpogosteje se
mobilne aplikacije delijo glede na operacijske sisteme in platforme, na katerih delujejo
(Symbian, BlackBerry, Windows Phone, Java, Android, IPhone ...) (Oldsafe, 2016).
2.1.2 Mobilne naprave
Mobilna naprava je naprava, ki ima prilagojen operacijski sistem, kot so iOS, Android,
BlackBerry OS, Windows Mobile in je prenosljiva (mobilni telefoni, tablični računalniki ipd.).
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
4
V to kategorijo lahko uvrstimo tudi vse naprave, ki se lahko prenašajo in dostopajo do interneta
brez fizične povezave – brezžično (torej tudi prenosniki, prenosne igralne konzole, industrijski
čitalci ipd.) (Safe, 2017).
Razvoj na področju mobilnih naprav gre v smeri človeku prijaznih uporabniških vmesnikov,
hitrega prenosa podatkov, zmogljivih večpredstavnostnih predvajalnikov in univerzalnih
komunikacijskih naprav, ki bodo uporabnikom omogočale neposredno komunikacijo z drugimi
uporabniki in pisarniškimi ter gospodinjskimi napravami. Storitve bodo vedno bolj
personalizirane, kar pomeni, da bodo funkcije in vsebine prirejene vsakemu uporabniku
posebej. V bližnji prihodnosti lahko pričakujemo inteligentne mobilne naprave, ki se bodo znale
prilagajati trenutnemu okolju, situaciji in uporabnikovim željam. Uporabniški vmesniki bodo
omogočali čim bolj naravno upravljanje mobilnih naprav in dostop do informacij ter storitev,
na primer z glasom ali gibanjem (Hribar, 2009).
2.1.3 Operacijski sistemi
Na trgu trenutno obstaja kar veliko število različnih operacijskih sistemov, ki so razviti za
mobilne naprave. Današnji trend operacijskih sistemov za mobilne naprave zagotovo
predstavljajo Android, iOS ter Windows Phone, med drugimi pa poznamo še Symbian, Bada,
Palm OS, Maemo, Blackberry OS in ostale, ki pa so tako rekoč v manjšini zaradi porasta
uporabe prej omenjenih treh sistemov.
2.1.3.1 Android operacijski sistem
20. september 2008 je bil dan, ko je Google na trgu prvič predstavil Android OS z imenom
Astro. Po določenem obdobju so se tej verziji pridružile tudi različice Bender ter Cupcake.
Kasneje so trend poimenovanja svojih operacijskih sistemov povzeli kar po imenu sladic, s
čimer nadaljujejo še dandanes. Ostale različice Android OS so še Donut, Eclair, Froyo,
Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, KitKat, Lollipop in Marshmallow.
Zadnja različica operacijskega sistema Android pa se imenuje Nougat. Na trgu obstaja tudi kup
drugih neuradnih sistemov Android, katere so razvili razvijalci iz obstoječih jeder, ki so
odprtokodna. Takoj po vstopu na trg mobilnih naprav in tabličnih računalnikov je Android OS
pridobil velik delež priljubljenosti, katerega drži še danes. Razvitih je bilo veliko novih
funkcionalnosti, ki so igrale veliko vlogo pri pridobivanju takšnega deleža uporabnikov. Google
Play je uradna tržnica mobilnih aplikacij za operacijske sisteme Android, na kateri je na voljo
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
5
veliko število različnih aplikacij. Med najbolj priljubljenimi napravami z Android OS pa
najdemo naprave Samsung, HTC, Motorola itd. Trenutno je Android OS med top operacijskimi
sistemi (Shout Me Loud, 2015).
2.1.3.2 iOS operacijski sistem
iOS OS je bil javnosti predstavljen 29. junija 2007, ko je bil na trg prvič lansiran mobilni telefon
iPhone. Od takrat je napredek iOS sistema strmo rastel, trenutna zadnja verzija sistema pa ima
oznako iOS 10.2. Applov operacijski sistem je še vedno zaprt javnosti za razliko od Android
sistema in je nedostopen za kakršne koli nadgradnje, s katerimi bi ga razvijali po svoji volji.
Njihov dolgoročni cilj je ustvariti kakovosten, stabilen in uporabniku prijazen produkt, ki pa
zelo dobro uspeva. Kljub njihovi ne-odprtokodnosti, pa iOS spada v sam vrh mobilnih
operacijskih sistemov in je velika grožnja operacijskim sistemom, predvsem sistemu Android.
Trenutno je sistem prilagojen za iPhone, iPod in iPad naprave, ki so v lasti podjetja Apple
(Shout Me Loud, 2015).
2.1.3.3 Windows Phone operacijski sistem
Windows Phone (v nadaljevanju WP) je operacijski sistem, razvit s strani Microsofta. Je
naslednik zastarelega Windows Mobile, a med seboj nista združljiva. WP ima tako popolnoma
nov uporabniški vmesnik in je primarno namenjen potrošniškemu trgu. Prvi Windows Phone je
bil predstavljen oktobra 2010. Delo na posodobitvi starejše različice Windows Mobile se je
začelo že zgodaj leta 2004 pod kodnim imenom "Photon". Vse skupaj se je razvijalo zelo počasi,
projekt so kasneje celo ustavili. Leta 2008 je Microsoft reorganiziral Windows Mobile oddelek,
s čimer se je lahko pričelo delo na novem operacijskem sistemu. Windows Phone se je nato
razvijal mnogo hitreje. V načrtu je bila popolna združljivost med sistemoma, kot tudi uporaba
za poslovni in potrošniški trg, a do tega, kot vemo, žal ni prišlo. Vzrok je bilo pomanjkanje časa
in sredstev. Veliko glavobolov za Windows Mobile sta povzročila tudi prehod na kapacitivni
zaslon in odsotnost pisala (Zupančič, 2014).
2.1.4 Razvojno okolje
V sedanjem času večina mobilnih naprav uporablja dva giganta na področju operacijskih
sistemov za mobilne naprave, in sicer operacijski sistem Android, ki zajema 48,3 % trga, in
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
6
iOS, ki ima 41-odstotni delež uporabnikov po celem svetu. Razlika med temi operacijskimi
sistemi in z njimi povezanimi napravami ni samo estetska, ampak tudi funkcionalna. Tako kot
MacBook ne bo deloval z uporabo operacijskega sistema Windows, Android telefon ne more
zagnati aplikacijo, zgrajeno za iOS operacijske sisteme. Z vzponom uporabe pametnih
telefonov se je povečala tudi uporaba mobilnih aplikacij in posledično tudi sam razvoj
(MobiLoud, 2017). Trg nam ponuja več različnih vrst razvoja mobilnih aplikacij. Ta je odvisen
predvsem od financ in časa, katerega želimo porabiti za razvoj želene aplikacije. Trenutno na
trgu poznamo tri različne tipe razvoja mobilnih aplikacij, in sicer razvoj aplikacije v obliki
mobilne spletne strani, razvoj »Hibridne« mobilne aplikacije in razvoj »Native« mobilne
aplikacije.
2.1.4.1 Spletna mobilna aplikacija
Spletne mobilne aplikacije so zadnje čase eden od trendov izdelave mobilnih aplikacij. So
relativno enostavne za izdelavo, saj za razvoj zadostuje znanje HTML, CSS in JS jezika.
Omenjen tip aplikacij je viden v brskalniku mobilne naprave in je tako za razliko od ostalih
dveh vrst dosegljiv kar neposredno preko domene, kar pomeni, da ni potrebe po namestitvi
aplikacije na mobilno napravo. Rečemo lahko, da je to eden od cenejših vrst razvoja mobilnih
aplikacij, prav tako pa tudi časovno najhitrejši. Slabost teh aplikacij pa je predvsem v tem, da
so omejene glede uporabe funkcionalnosti naprave. Uporabljamo lahko le funkcionalnosti
telefona, saj nima posrednega dostopa do API-jev same naprave (Agrimbau, 2016).
2.1.4.2 Native mobilne aplikacije
Razlika med »Native« in prej omenjenimi alternativami za izdelavo mobilnih aplikacij je, da
so te zasnovane in razvite za določeno vrsto naprave. Na primer iOS aplikacije so tako napisane
v Objective-C programskem jeziku, aplikacije za Android pa so napisane v programskem jeziku
Java. Vsaka mobilna platforma v tem primeru ponuja razvijalcem razvoj lastnih orodij,
grafičnih vmesnikov in standardiziranih SDK knjižnic (MobiLoud, 2017). Takšna vrsta razvoja
ima veliko prednosti, kot tudi slabosti. Prednosti so sledeče:
nudi najhitrejšo, najbolj zanesljivo in najbolj odzivno izkušnjo za uporabnike;
pokrije širše delovanje naprave; vključno s kamero, mikrofonom, kompasom in ostalimi
deli naprave;
omogoča uporabo raznih »Push« obvestil, kjer je uporabnik v interakciji z obvestili
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
7
(MobiLoud, 2017).
Pri tej vrsti razvoja je pomembno spoštovati določene oblikovne in funkcionalne standarde, ki
so različni glede na posamezni operacijski sistem. Obstaja na stotine majhnih razlik v zasnovi
uporabniške interakcije na vsaki platformi posebej, kar pomeni, da so intuitivne za uporabo in
upoštevajo splošne standarde pri razvoju (MobiLoud, 2017). »Native« mobilne aplikacije pa
imajo tudi kar nekaj slabosti, in sicer:
potrebno je znanje več različnih programskih jezikov za posamezno platformo (Android
– Java, iOS – Objective C, Swift, Windows OS – C#);
časovno in finančno zahtevnejši tip razvoja;
težje vzdrževanje, saj je potrebno razvijati vzporedno za dve ali več različnih platform
(MobiLoud, 2017).
2.1.4.3 Hibridne mobilne aplikacije
Hibridne aplikacije so kombinacija »Native« mobilnih aplikacij »Mobile spletnih strani«. Za
razliko od mobilnih spletnih strani, se te namestijo na mobilno napravo, kakor »Native«
mobilne aplikacije z mobilnih trgovin, medtem ko se mobilne spletne strani pregleduje
neposredno v brskalniku naše naprave (Kuryliak, 2015). Imajo kar nekaj prednosti pred
ostalimi, in sicer:
zmanjšanje stroška razvoja za več mobilnih platform – saj se koda posamezne platforme
dejansko uporabi na vseh platformah;
omogoča dostopanje do »Native« API funkcionalnosti mobilne naprave, kot jih ponuja
»Native« razvoj mobilnih aplikacij;
cenovno in stroškovno bistveno ceneje od »Native« (Kuryliak, 2015).
Trenutno ta vrsta razvoja postaja čedalje večji trend, saj je dokaj enostaven in omogoča
enostaven razvoj na več platformah hkrati. Za razvoj »Hibridnih« aplikacij imamo na voljo več
različnih ogrodij, kot so Phonegap, Titanium, Ionic, React Native itd.
Ionic framework
Trenutno najbolj priljubljeno ogrodje za izdelavo hibridnih mobilnih aplikacij. Je popolnoma
brezplačno odprtokodno ogrodje, ki poleg ogrodja ponuja tudi nabor dodatnih orodij za
enostavnejšo izdelavo mobilne aplikacije. V primeru, da imamo že znanje iz razvoja spletnih
strani, je razvoj mobilnih aplikacij s pomočjo omenjenega ogrodja bistveno enostavnejši.
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
8
Omogoča »cross-platform« razvoj oziroma razvoj za več platform hkrati. Mobilna aplikacija se
tako razvije na enem mestu in nato deluje na naših želenih platformah. Trenutno je na trgu že
več kot 120 različnih vtičnikov, kot so Bluetooth, HealthKit, Finger Print Auth itd. Pri samem
razvoju tudi zelo dobro skrbijo za razvoj dokumentacije, ki je zelo dobro definirana in omogoča
uporabnikom enostavno razumevanje (Ionic, 2017). Ionic framework je izdelan s pomočjo
ogrodja Cordova, ki je odprtokodno ogrodje, katero omogoča izdelavo mobilnih aplikacij.
Glavni cilj Cordova ogrodja je omogočanje dostopa do API funkcionalnosti na naši mobilni
napravi v skladu z njihovimi določenimi standardi. S pomočjo Cordova ogrodja lahko tako
dostopamo do ostalih funkcionalnosti, kot so senzorji, kamera, podatki, internetna povezava
itd. Aplikacija se še vedno zaganja s pomočjo WebView vmesnika, vendar pa lahko ta tudi
dostopa do API funkcij, ki sicer niso na voljo kot samostojne JavaScript knjižnice (Cordova,
2017).
2.2 Spletne tehnologije
2.2.1 PHP
2.2.1.1 Zgodovina PHP-ja
PHP je odprtokodni programski jezik, ki služi oblikovanju in razvijanju dinamičnih spletnih
strani ter njenih vsebin. Kratica PHP je kratica za »PHP Hypertext Preprocessor«, ki je imela
prvotno drugačen pomen, in sicer je bil njem pomen »Personal Home Page«. Prvi začetki PHP-
ja segajo v leto 1994, ko ga je začel razvijati Rasmus Lerdorf za potrebe upravljanja svoje
spletne strani (Čater, 2016).
Na začetku je bil PHP skupek skript prehodnih vmesnikov, napisanih v programskem jeziku C,
zasnovam z namenom, da je lahko Rasmus Lerdorf spremljal obiske na svoji spletni strani, zato
je poimenoval ta skupek skript »Personal Home Page Tools«. Potreba po večji funkcionalnosti
je Lerdorfa prisilila, da je nadgradil PHP, ki je nato ponujal zelo izboljšano implementacijo.
Novi nadgrajeni »PHP Tools« model je omogočal povezavo in interakcijo s podatkovno bazo
ter ogrodje, po katerem so lahko uporabniki začeli razvijati dinamične spletne aplikacije.
Junija 1995 je Rasmus Lerdorf objavil izvorno kodo PHP-ja z namenom uporabe in izboljšanja
izvorne kode, ter štiri mesece kasneje razširil implementacijo PHP-ja in ga preimenoval v »FI«,
kar je kratica za Forms Interpreter. Čeprav je imela ta verzija nekaj pomanjkljivosti, kot je ta,
da so morali razvijalci uporabljati HTML komentarje, če so hoteli vključiti kodo v HTML
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
9
datoteke, je PHP, ki se je takrat imenoval FI, še vedno širil med uporabniki po svetu (Čater,
2016).
Programska koda je doživela temeljite spremembe aprila leta 1996 z različnimi podporami za
podatkovne baze, piškotke in številne druge funkcionalnosti. Takrat se je tudi vrnila kratica
PHP za programski jezik, ki se je sedaj imenoval PHP/FI. Ko je Lerdorf s prijateljema Andijom
Gutmansom in Zeevom Suraskim razvijal univerzitetni projekt, so ugotovili, da programskemu
jeziku PHP/FI še vedno manjkajo funkcije in je neučinkovit za izvedbo aplikacij, ki omogočajo
elektronsko poslovanje, zato so se odločili, da bodo programski jezik temeljito predelali in
izboljšali. Želeli so ustvariti popolnoma neodvisen programski jezik in zato so ustvarili nov
jezik, ki se je sedaj imenoval PHP (angl. PHP Hypertext Preprocessor), kot ga poznamo danes.
Ime PHP/FI se ni nikoli več uporabilo in PHP je dobil končnico 3.0. Leta 2000 je izšel PHP 4
in v juliju 2004, po dolgem času razvijanja, PHP 5. Od leta 2014 naprej je PHP v razvoju verzije
7 (Čater, 2016).
2.2.1.2 Kako deluje PHP?
PHP deluje na načelu odjemalec–strežnik. Ko v spletni brskalnik vnesemo URL strežniško pot,
se pošlje zahteva strežniku, da nam pošlje želeno HTML datoteko. Strežnik se odzove in nam
pošlje HTML datoteko, ki jo nato prikažemo na spletnem brskalniku. Ko strežnik interpretira
PHP kodo, nam vrne nazaj generirano HTML datoteko, ki jo prikažemo v spletnem brskalniku.
V datoteki, ki nam jo vrne strežnik, ni več PHP kode, zato nekateri rečejo, da PHP koda ni
vidna (Čater, 2016).
Primer uporabe PHP-ja je na dinamičnih spletnih straneh, ki nam lahko posredujejo podatke
glede na želene parametre, ki jih posredujemo s pomočjo PHP kode. S pomočjo PHP-ja rešimo
spreminjanje datoteke za ažuriranje podatkov, saj jih PHP ažurira s pomočjo povezave z bazo,
v kateri se nahajajo podatki. PHP komunicira z bazo s pomočjo sistemov, ki skrbijo za
upravljanje s podatkovnimi bazami (Čater, 2016).
PHP je objektno orientiran jezik, kar pomeni, da se ne razlikuje od sodobnejših programskih
jezikov, ki podpirajo objektno programiranje. Pojem objektnega programiranja nudi namen
ponovne uporabe programske kode in je bil dodan v PHP-ju 3 z osnovnimi lastnostmi in
dopolnjen v PHP-ju 4 (Čater, 2016).
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
10
Slika 2.1: Potek izvajanja PHP skripta (MonsterTUT, 2017)
2.2.2 MySQL
MySQL je eden izmed sistemov, ki obstajajo za upravljanje z bazami podatkov. Drugi sistemi
so še dBase, Fox, Oracle, MS SQl Server … MySQL je odprtokodna implementacija relacijske
baze podatkov, ki s strukturiranim poizvedovalnim jezikom SQL (Structure Query Language)
upravlja s podatki v bazi podatkov. MySQL lahko deluje kot povsem samostojen podatkovni
strežnik, lahko pa deluje v kombinaciji z ostalimi tehnologijami. MySQL deluje na načelu
odjemalec–strežnik, kjer lahko strežnik namestimo samostojno, lahko pa ga namestimo kot
sistem, porazdeljen na več strežnikov. Do podatkovne zbirke lahko dostopamo s številnimi
odjemalci, programskimi vmesniki ter zbirkami ukazov (Petek, 2017).
Strežnik MySQL se upravlja na dva načina – z ukazno vrstico in z grafičnim vmesnikom
(MySQL Front, MyAdmin …). Način z ukazno vrstico je počasnejši, hkrati pa pri večjih
zbirkah podatkov pridobi nepregledne množice podatkov, iz katerih težko najdemo želeno.
Vendar pa je v praksi zaželeno, da je uporabnik seznanjen z obema načinoma, ker si le tako
lahko lažje razlaga posamičen rezultat poizvedbe (Petek, 2017).
Zbirka podatkov lahko obstaja brez tabel, nobena tabela pa ne more obstajati brez vsaj enega
stolpca. Tabele v MySQL-ovih zbirkah, katerih lastnosti lahko določamo sami, imajo natančno
določeno obliko. Vsakem polju v podatkovni bazi je potrebno določiti tip polja ter lastnost.
Najpogosteje so uporabljeni tipi, prikazani v nadaljevanju:
INT: standardno celo število, ki ni večje od 4.294.967.295;
VARCHAR(N): znakovno polje spremenljivk z največ N znaki;
CHAR(N): znakovno polje s točno N znaki;
DATE: datum v obliki »LLLL-MM-DD« (Petek, 2017).
V MySQL-u lahko določimo vsakemu polju tudi lastnost. V nadaljevanju so prikazane lastnosti
polj, ki so najpogostejše:
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
11
AUTO_INCREMENT: celo število, katero se ob novem vnosu poveča za eno v
kombinaciji z lastnostjo PRIMARY_KEY;
PRIMARY_KEY: primarni, unikaten ključ tabele;
DEFAULT: nastavimo privzeto vrednost polja;
NOT_NULL: vrednosti stolpca ne smejo biti prazne;
NULL: vrednosti stolpca so lahko prazne (Petek, 2017).
2.2.3 HTML
HTML je označevalni jezik, s katerim ustvarimo spletne strani. HTML sestavljajo označevalne
značke, ki opisujejo spletno stran. HTML temelji na predhodnem označevalnem jeziku SGML.
Značke se nahajajo med lomljenimi oklepaji; npr. kot primer začetka značke <h1> in konec
</h1>. Dokumente HTML prikazuje brskalnik, ki posamezen dokument prebere, ga razčleni in
na podlagi značk interpretira vsebino strani. Brskalnik ne prikazuje značk, saj te služijo kot
meta podatki za vsebino in določajo njen prikaz v brskalniku ali enoto strukture vsebine (npr.
naslov, odstavek). Značke HTML predstavljajo različne bloke, kot so na primer slike, obrazci,
polja, gumbi ali objekti, določajo strukturo dokumenta s semantičnim označevanjem npr. glava
dokumenta, odstavki, seznami, povezave, citati itd. ali celo vsebujejo posebne skripte, ki
omogočajo dodatno interaktivnost spletnim stranem (Lipuš, 2011).
2.2.4 CSS
CSS (Cascading Style Sheets) ali kaskadna stilska predloga, omogoča razvijalcem spletnih
strani, da se posameznim elementom v HTML dokumentih predpiše obliko. Ker so elementi v
HTML dokumentih namenjeni logičnemu oblikovanju in jih vsak brskalnik oblikuje po svoje,
se z uporabo CSS slog bolj natančno določi. Z uporabo CSS stilov elementom določimo vrsto
oblikovnih lastnosti, med katere spadajo pisava, razmiki, odmiki, ozadje, robovi, poravnava,
barva itd. CSS omogoča oblikovanje ločeno od vsebine, kar izboljša preglednost kode,
oblikovalcem pa omogoča oblikovanje spletnih strani brez posega v kodo (Kamin, 2016).
Organizacija World Wide Web Consortium (W3C), ki razvija spletne standarde in priporočila,
je tudi za CSS izdala priporočilo, kako naj bi bili CSS stili opisani. Tako kot drugi spletni
standardi se tudi CSS razvija vse od leta 1996, ko je nastala prva generacija. Trenutno so v
pripravi priporočila za CSS tretje generacije. Žal pa si razvijalci spletnih pregledovalnikov po
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
12
svoje razlagajo priporočila organizacije W3C in še vedno se dogaja, da se iste spletne strani v
različnih brskalnikih prikazujejo različno (Kamin, 2016).
2.2.4.1 Predprocesorski jeziki CSS
SASS in LESS so odprtokodni predprocesorski jeziki CSS-ja (Cascading Style Sheets). Tako
SASS in LESS dodajo CSS-ju dinamično obnašanje v obliki spremenljivk, operacij, funkcij …
Vsi jeziki so na koncu prevedeni v standardno obliko CSS-ja. Namen SASS-a in LESS-a je
pohitriti in poenostaviti oblikovanje spletnih projektov (Pomagalnik, 2012).
Slika 2.2: Primer predprocesorskega jezika SASS, LESS
SASS
SASS(Syntactically Awesome Stylesheets) uporablja dve različni sintaksi. Prva sintaksa je bila
podobna sintaksi Haml, ki uporablja zamike za ločevanje posameznih blokov kode in nove
vrstice brez ločil na koncu. Medtem se druga z imenom SCSS zgleduje po CSS sintaksi in
uporablja zavite oklepaje za označevanje posameznih blokov kode in podpičja za ločevanje
vrstic. Datoteke imajo končnico .sass oziroma .scss. SASS je bil prvotno sprogramiran v
programskem jeziku Ruby. Pojavile pa so se že druge oblike, med drugim tudi PHP za Drupal.
SASS lahko uporabljamo le na strežniški strani (server-side) (Pomagalnik, 2012).
LESS
LESS uporablja samo eno sintakso, ki se zgleduje po CSS sintaksi in je tudi zelo podobna SCSS
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
13
sintaksi. Uporablja zavite oklepaje za označevanje posameznih blokov kode in podpičja za
ločevanje vrstic. Datoteke imajo končnico .less. LESS je bil prav tako prvotno sprogramiran v
programskem jeziku Ruby, vendar je bila v novejših verzijah uporaba Ruby-ja opuščena in
zamenjana z JavaScriptom. Za razliko od SASSa lahko LESS teče tako na strani strežnika
(server-side), kot na strani uporabnika (client-side) (Pomagalnik, 2012).
2.2.4.2 Bootstrap ogrodje
Bootstrap je najbolj priljubljeno HTML, CSS in JavaScript ogrodje za izdelavo odzivnih
spletnih strani. S pomočjo ogrodja izdelamo odzivno spletno stran bistveno hitreje in
enostavneje. Izdelano je za razvijalce z različnim nivojem znanja, za različne naprave ter za
izdelavo spletnih strani različnih oblik. Privzeto že vsebuje predprocesorski jezik tako LESS
kot SASS. Prednost takšnega ogrodja je izdelava spletne strani za več naprav hkrati. Ogrodje
izdelano spletno stran pravilno prilagaja in prikazuje na vseh napravah tako na računalniku kot
na mobilnih napravah, saj se prilagaja dejanski širini našega ekrana. Pri uporabi ogrodja si lahko
pomagate z veliko dodatnih vtičnikov, ki nam olajšajo delo (Bootstrap, 2017). Trenutna zadnja
stabilna različica ima verzijo 3.3.7, v razvoju pa je že nova verzija Boostrap 4.0, katera pa
prinaša veliko novosti.
2.2.5 JavaScript
JavaScript je programski jezik, namenjen uporabi na spletu. Leta 1995 ga je, za potrebe
spletnega brskalnika Netscape, razvil Brendan Eich. Kasneje je bil standardiziran kot ECMA
Script in je, brez razširitev, podprt v vseh sodobnih spletnih brskalnikih. Skupaj z jezikoma
HTML in CSS tvori jedro tehnologij za izdelavo spletnih strani (Rakovič, 2016).
JavaScript je zelo primeren tudi za začetnike, saj ne zahteva veliko predznanja programiranja.
Je neodvisen od platforme in deluje tako na Macu kot na PC-ju in Linuxu. Kot programska
oprema pa zadostuje že spletni brskalnik in preprost urejevalnik. JavaScript tako poenostavi
razvoj uporabniških vmesnikov, saj deluje na vseh platformah, kjer so nameščeni klasični
brskalniki (Rakovič, 2016).
2.2.5.1 jQuery knjižnica
jQuery je programska knjižnica za JavaScript. Zavzame malo prostora, je hitra in funkcionalno
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
14
bogata. HTML dokumente lahko naredi bogatejše z raznimi dogodki, animacijami ali
manipulacijami. Za njeno uporabo moramo dokument povezati s knjižnico. Ima sorazmerno
enostaven programski vmesnik, ki deluje na večini spletnih brskalnikov. S kombinacijo
vsestranskosti in razširljivosti je jQuery spremenil način, kako milijoni ljudi pišejo JavaScript
jezik (Žlebič, 2016).
jQuery knjižnica se navezuje na:
izbiro in manipulacijo s HTML elementi;
manipulacijo z dogodki na spletni strani;
premikanje po HTML DOM modeli in manipulacijo z njegovimi objekti;
manipulacijo z elementi jezika CSS;
uporabo že pripravljenih efektov in animacij;
asinhrono komunikacijo med odjemalcem in strežnikom (AJAX);
različna druga podporna orodja (Žlebič, 2016).
2.2.5.2 Angular JS ogrodje
AngularJS je odprto-kodno (pod MIT licenco) ogrodje za razvoj spletnih aplikacij na
odjemalčevi strani. Vzdrževano je s pomočjo Googla in posameznih odprtokodnih razvijalcev.
Poudarek je predvsem na izboljšanju razvoja in testiranja enostranskih spletnih aplikacij z
arhitekturo MVVM (Model-View-Viewmodel). Arhitektura MVVM je zelo podobna
arhitekturi MVC. Glavna razlika je, da pri MVC pogled (View) in krmilnik (Controller) med
sabo ne moreta komunicirati. Pri MVVM krmilnik zamenja pogled modela (Modelview), ki
omogoča, da sta pogled in pogled modela konstantno povezana in lahko komunicirata med
sabo. AngularJS temelji na treh že uveljavljenih spletnih tehnologijah, to so Javascript, CSS in
HTML (Golobič, 2016). Glavne funkcionalnosti, ki jih AngularJS ponuja, so:
vključevanje odvisnosti (angl. dependency injection), ki razvijalcu omogoča, da že
napisano logiko uporabi večkrat;
Ajax (ang. asynchronous JavaScript and XML), ki omogoča asinhrono komuniciranje
odjemalca s strežnikom;
MVVM arhitektura in s tem avtomatska sinhronizacija med modelom in pogledom;
testiranje skozi celoten razvoj spletne aplikacije (Golobič, 2016).
Razlogi za izbiro AngularJS so: enostavnost razvoja interaktivnih strani, razbremenjevanje
strežnika tako, da se večina logike izvaja na odjemalčevi strani, in možnost učenja sodobne
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
15
spletne tehnologije.
2.3 Ostale uporabljene tehnologije ter orodja
2.3.1 Linux operacijski sistem
Ime Linux se nanaša na jedro operacijskega sistema (OS), ki ga s tujko imenujemo kernel.
Linux ponuja nabor sistemskih objektov, potrebnih za vsak sistem, ki temelji na Linuxih, da
pravilno deluje. Programska oprema temelji na specifičnih funkcijah jedra Linuxov, kot je
upravljanje strojne opreme in zagotavljanje različnih temeljnih abstrakcij, kot je npr. virtualni
pomnilnik, opravila, datoteke in programskih vtičnikov. Linux kernel je običajno zagnan preko
zagonskega nalagalnika in nato teče ves čas in ni nikoli med rednim delovanjem izklopljen.
Linux kernel je samo operacijski sistem brez kakršne koli programske opreme. Temu so
namenjene predpripravljene Linux distribucije, ki vključujejo programsko opremo. Glavni
namen Linux distribucij je ponuditi uporabniku pripravljene in skrčene datoteke za namestitev
jedra operacijskega sistema in osnovne programske opreme na strojno opremo za različne
namene (Dolinar, 2016).
2.3.2 Apache spletni strežnik
Spletni strežnik Apache, pogovorno samo Apache, je najbolj priljubljen spletni strežnik. V
osnovi je temeljil na NSCA HTTPd strežniku. Podprt je v večini priljubljenih in manj znanih
operacijskih sistemov (Windows, Linux, Mac OS, FreeBSD in ostale variante Unix sistemov),
posledično pa kar preko 60 % vseh spletnih strani na internetu gosti spletni strežnik Apache
(Mitrović, 2016).
Spletni strežnik služi komunikaciji in posredovanju podatkov brskalniku. V večini primerov so
to HTML strani in multimedijske datoteke. Apache ima veliko število dodatkov, v sebi pa
vsebuje tudi podporo za PHP in MySQL. Ta kombinacija zadosti našo potrebo za prikaz
dinamičnih strani na spletnem brskalniku. Na splošno velja za varen, robusten in prilagodljiv
strežnik (Mitrović, 2016).
2.3.3 SSL protokol za varno povezavo
SSL (Secure Socket Layer) certifikat je digitalno varnostno potrdilo, ki zagotavlja pristnost
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
16
identitete spletnega mesta, hkrati pa z uporabo SSL tehnologije šifrira vse podatke, ki se
prenašajo med spletno stranjo in njenimi obiskovalci. SSL certifikat torej poskrbi za varnost
prenosa podatkov (Neoserv, 2017).
SSL certifikate je najbolj smiselno uporabljati na spletnih straneh, pri katerih prihaja do prenosa
občutljivih podatkov (osebni podatki, gesla, bančni podatki …), ki nikakor ne smejo končati v
nepravih rokah. Do prenosa občutljivih podatkov največkrat prihaja v primeru spletne trgovine.
SSL certifikat je smiselno namestiti tudi na spletne strani, kjer prenosa občutljivih podatkov ni.
Razlog za to je v iskalniku Googlu, ki spletne strani z nameščenim varnostnim certifikatom
nagradi z višjo pozicijo (Neoserv, 2017).
Glavni razlogi za uporabo varne povezave:
prvi razlog je varnostni, saj se na spletni strani, na katero je nameščen varnostni
certifikat, vsi podatki prenašajo prek zavarovane HTTPS povezave;
drugi razlog je prodajni, saj so spletni uporabniki vse bolj pozorni na ikono varnostne
ključavnice ter HTTPS povezave, kar se najbolj vidno izraža v povečani prodaji varnih
spletnih trgovin;
tretji razlog pa je tesno povezan z obiskanostjo spletnega mesta oz. z njegovo vidnostjo
v iskalniku Google. Za iskalnik Google je SSL certifikat pozitiven signal, ki prispeva k
višjim uvrstitvam spletnega mesta za posamezne iskalne poizvedbe (Neoserv, 2017).
Slika 2.3: Delovanje SSL protokola (Hölbl, 2011)
2.3.4 IPV6 protokol
IPv6 je nov način, kako oštevilčiti internet in s tem omogočiti komunikacijo v internetu. Vsaka
ORODJA IN TEHNOLOGIJA ZA RAZVOJ SPLETNIH TER MOBILNIH APLIKACIJ
17
naprava v internetu ima svoj IP-naslov. Ta naslov in protokol, ki ga morajo upoštevati naprave,
če želijo komunicirati med seboj, sta pogoja za IP-povezljivost. Ko danes govorimo o IP-
povezljivosti, ne mislimo le na stari in trenutno še vedno najbolj razširjeni IP-protokol različice
4 (IPv4), temveč tudi na novejši protokol IPv6, ki postaja stalnica sodobnih IP-omrežij. Zelo
poenostavljeno – IPv6 je torej le nov način oštevilčenja interneta. Brskalniku je ta pretvorba iz
imena v IP-naslov skrita. Povezal se bo s spletnim strežnikom na IP-naslovu, ki ga je izvedel
od DNS strežnika, in s tega naslova pridobil podatke za prikaz spletne strani. Za delovanje
brskalnika ni pomembno, ali je ta naslov dosegljiv po protokolu IPv4 ali IPv6. Lahko je
dosegljiv tudi v obeh različicah. V tem primeru se mora brskalnik odločiti za tisto, ki ji bo dal
prednost. Za večino sodobnih internetnih storitev v takem primeru velja, da ima IPv6 prednost
pred starejšim protokolom IPv4 (Arnes, 2017).
2.3.5 Google API
Pri razvoju produkta smo za uporabo zemljevidov ter pridobivanja naslova na podlagi
geokoordinat uporabili tako imenovan Google API. Google API je skupek vseh Googlovih
storitev, katere lahko uporabljamo pri razvoju naših produktov. Omogoča integracijo Google
zemljevidov, YouTube, Google Drive in vseh ostalih Google produktov, ki jih ponujajo tudi za
samostojno uporabo. S pomočjo API-jev povečamo predvsem robustnost celotnega projekta
(Google, 2017).
18
3 RAZVOJ APLIKACIJE MALCAJT
V nadaljevanju bomo predstavili idejo aplikacije Malcajt. Zajema tudi bolj podroben opis
razvoja aplikacije ter testiranje produkta pred objavo na trgu.
3.1 Ideja
Ideja o aplikaciji Malcajt se je razvila na podlagi dobrih praks medijskega portala ePosavje.
ePosavje je eden izmed najbolj obiskanih medijskih portalov v Posavju, ki zajema objavo novic,
dogodkov, obvestil ter ostalih informacij za Posavsko regijo. Portal v eni izmed sekcij zajema
tudi objavo malic ter kosil za področje Posavja (Brežice, Krško, Sevnica …). Glede na takratne
statistike obiska, je bila ta stran med najbolj obiskanimi stranmi in smo posledično zaradi tega
prišli do ideje, da bi v ta namen razvili tudi mobilno aplikacijo. Prvoten cilj je bil razviti mobilno
aplikacijo, ki na enem mestu združuje vse ponudnike v posavski regiji. Če bi ta cilj razvili, kot
smo si ga prvotno zamislili, bi aplikacijo naredili uporabno zgolj za uporabnike znotraj
omenjene regije, za vse ostale regije pa bi v tem primeru bila aplikacija neuporabna. Če si
predstavljamo kot primer, da se nahajamo v centru Ljubljane in si naložimo aplikacijo Malcajt.
Ko uporabnik aplikacijo odpre je seveda seznam najbližjih ponudnikov prazen, saj ta ne vsebuje
njegove regije. V tem primeru uporabnika omejimo in naredimo aplikacijo neuporabno za ostal
delež populacije. Takšnega uporabnika pa tudi sicer zelo težko prepričamo k nadaljnji uporabi.
Na podlagi vseh teh domnev smo se tako odločili, da razvijemo aplikacijo, ki bo pokrila celotno
Slovenijo in bo zajemala približno 2000 gostinskih objektov.
3.2 Pregled obstoječih rešitev
Pred razvojem mobilne aplikacije smo izvedli pregled sorodnih projektov in strokovne
literature, na podlagi katere smo si lažje zastavili, kakšne bodo funkcionalnosti ter kako izdelek
izboljšati glede na predhodne izdelane produkte. Kot vemo na trgu obstaja že kar nekaj
podobnih produktov, ki imajo identičen cilj – predstaviti nabor uporabnikov na enem mestu.
Kljub večjemu število produktov, ki trenutno obstajajo, smo se naslanjali na štiri produkte, ki
so na spletu najbolj izpostavljeni: gostilne.si, gostilne.delo.si, dobregostilne.si in restavracije-
gostilne.si. V spodnji tabeli so vidne prednosti ter slabosti posameznih produktov po našem
RAZVOJ APLIKACIJE MALCAJT
19
mnenju.
Produkt Gostilne.si
Tabela 3.1: Prednosti/slabosti produkta Gostilne.si
Prednosti Slabosti
- Varna povezava.
- Mobilna prilagodljivost.
- Mobilna aplikacija (Android in iOS).
- Dnevna/tedenska ponudba.
- Interaktivni prikaz ponudnikov na
zemljevidu.
- Uporabniški dostop za ponudnike.
- Najbližji ponudniki.
- Veliko manjkajočih ali nepravilnih
podatkov.
- Veliko ponudnikov manjka.
- Slabo oskrbovano oglaševanje preko
socialnih medijev.
- Neprijazen uporabniški vmesnik.
- Ohlapni rezultati glede na iskalne nize.
- Ne omogoča filtracije pri iskanju
ponudnika.
Produkt Gostilne.delo.si
Tabela 3.2: Prednosti/slabosti produkta Gostilne.delo.si
Prednosti Slabosti
- Mobilna prilagodljivost.
- Mobilna aplikacija (Android in iOS).
- Interaktivni prikaz ponudnikov na
zemljevidu.
- Uporabniški dostop za ponudnike.
- Ne vsebuje varne povezave.
- Mobilna aplikacija uporabniku
neprijazna.
- Ne vsebuje dnevne/tedenske ponudbe.
- Ne uporabljajo socialnih medijev za
promocijo.
- Pomanjkljivi podatki.
- Veliko ponudnikov manjka.
RAZVOJ APLIKACIJE MALCAJT
20
Produkt Dobregostilne.si
Tabela 3.3: Prednosti/slabosti produkta Dobregostilne.si
Prednosti Slabosti
- Varna povezava.
- Interaktivna mapa.
- Najbližji ponudniki.
- Mobilno prilagodljiva.
- Ocenjevanje ter komentiranje
ponudnikov.
- Slabo oskrbovana ponudba.
- Pomanjkljivi podatki.
- Veliko gostinskih ponudnikov manjka.
- Ne obstaja kot samostojna aplikacija za
mobilne naprave.
- Zastarel grafični vmesnik.
- Slab iskalnik po ponudnikih.
Produkt Restavracije-gostilne.si
Tabela 3.4: Prednosti/slabosti produkta Restavracije-gostilne.si
Prednosti Slabosti
- Ponudniki zelo podrobno predstavljeni
(osnovne informacije, opis, delovni čas,
ponudba …).
- Dobro zajeti skoraj vsi gostinski
ponudniki v Sloveniji.
- Uporabniški dostop za ponudnike.
- Kategorizacija po ponudnikih.
- Ni varne povezave.
- Zastarel grafični vmesnik.
- Ni mobilno prilagodljivo.
- Ne obstaja kot samostojna aplikacija za
mobilne naprave.
- Slab iskalnik po ponudnikih.
Pri zgoraj omenjenih produktih smo ugotovili kar nekaj slabosti oziroma pomanjkljivosti, na
podlagi katerih smo lahko naš produkt razvili bistveno bolj učinkovito ter uporabniku bolj
prijazno. Največja pomanjkljivost trenutnih produktov na trgu je predvsem slabo oskrbovanje
tedenske kot tudi aktualne ponudbe gostinskih ponudnikov. Neažuriranost podatkov prav tako
igra zelo pomembno vlogo tako ponudniku, kot tudi samem uporabniku. Ena izmed pomembnih
pomanjkljivosti pa je tudi uporaba novih tehnologij pri razvoju spletnih aplikacij, kot je mobilna
prilagodljivost ter uporaba varnega protokola za komunikacijo HTTPS. Vse te pomanjkljivosti
smo tudi pri razvoju našega produkta kar se da dobro dodelali in sledili vsem trenutnim
trendom, ki so pomembni pri razvoju spletnih in mobilnih aplikacij.
RAZVOJ APLIKACIJE MALCAJT
21
3.3 Metodologija
Za razvoj mobilne aplikacije smo uporabili ogrodje Ionic, ki se uporablja za razvoj hibridnih
mobilnih aplikacij za operacijske sisteme iOS ter Android. Ogrodje uporablja AngularJS
knjižnico, ki je uporabljena kot MVC model. Pri razvoju spletne aplikacije smo uporabili
tehnologije HTML, CSS(Less), JavaScript (jQuery knjižnico) za »Front-end« del ter PHP,
MySQL za »Back-end« del. Front-end je del, ki je viden uporabniku. Ta uporablja tehnologije,
ki skrbijo za predstavitev ter vizualizacijo določenih elementov na spletni strani, medtem ko se
»Back-end« izvaja na strani strežnika in skrbi za izpisovanje določenih podatkov iz baze
(Pluralsight, 2015). Poleg omenjenih uporabljenih tehnologij pa je pomembna tudi sama
postavitev strežnika. Strežnik mora zadoščati določenim kriterijem, in sicer je potreben IPV6
protokol, saj to zahteva predvsem App Store za potrditev aplikacije na njihovem trgu, prav tako
pa imajo zahteve po varni izmenjavi podatkov, kar pomeni, da mora biti REST API prav tako
na varni povezavi. REST API je nabor funkcij, ki jih razvijalec uporablja za izvedbo zahtevkov
preko GET ali POST metode. Po poslani poizvedbi nam REST API posreduje odgovor v obliki
podatka. Ta način komunikacije med klientom in strežnikom je postal standard za pridobivanje
podatkov iz drugih strežnikov (Deering, 2017).
3.3.1 Razvojna metodologija
Pri razvoju produkta Malcajt smo uporabili agilno metodologijo razvoja. Agilne metodologije
poudarjajo ljudi na projektu in komunikacijo med njimi, hitro razvit in testiran delujoč produkt,
komunikacijo in sodelovanje med razvijalci in naročniki ter priložnosti pri spremembah zahtev.
Prednosti takšnega pristopa razvoja glede na plansko vodene metodologijam so predvsem:
inkrementalni razvoj (kratki cikli, rezultat cikla je delujoča koda), intenzivno sodelovanje z
uporabniki, enostavnost metode za učenje in uporabo ter prilagodljivost sprotnega vključevanja
sprememb. Za naš produkt je bila najbolj primerna agilna metodologija SCRUM. SCRUM
metodologija poteka v iteracijah, ki si sledijo ena za drugo. Rezultat vsake iteracije je nova
(dodatna) funkcionalnost izdelka. Pri metodi so pomembni vsakodnevni pregledi znotraj enega
cikla, ki omogočajo pregled opravljenega dela in izvedbo prilagoditev. Osnova za cikel je
seznam zahtev. Ko so vse izvedene, je cikel končan. Metodologija vključuje 4 vloge, in sicer:
lastnika izdelka, razvojno skupino, skrbnika metodologije ter opazovalce (Rožanc, 2008).
RAZVOJ APLIKACIJE MALCAJT
22
3.4 Analiza in specifikacija zahtev
3.4.1 Zahteve oziroma želene funkcionalnosti
Želeli smo razviti mobilno aplikacijo, ki bi na enem mestu združevala vse gostinske ponudnike
in tako posameznemu uporabniku omogočala enostaven pregled ponudbe. Na eni strani imamo
tako uporabnika, ki želi priti do vseh teh podatkov, na drugi strani pa gostinca, ki skrbi za te
podatke. Aplikacija mora tako uporabniku ponuditi čim večji nabor podatkov, ki bi mu prišli
prav in bi tako aplikacijo naredilo še bolj uporabno. Uporabniku je potrebno ponuditi najbližje
ponudnike glede na njegovo trenutno lokacijo. Imeti mora tudi možnost izbire regije oziroma
kraja, za katerega želi izpis ponudnikov, kar pomeni, da lahko izbira med najbližjimi ponudniki
ali pa med regijo oziroma krajem. Glede na to, da ima posamezna gostilna več različnih
lastnosti, kot so parkirni prostor, otroška igrala, Wi-Fi dostopna točka, možnost uporabe
kreditnih kartic itd., je pomembno, da lahko uporabnik enostavno filtrira tudi po teh lastnostih
in tako pridobi vse ponudnike, ki ustrezajo njegovim željam. Vsak uporabnik ima tudi
priljubljene gostilne, do katerih bi rad dostopal na najenostavnejši način, kar pomeni, da mora
imeti možnost ponudnika dodati na listo priljubljenih. Ena od pomembnih funkcij pa je tudi, da
lahko uporabnik ponudnika čim enostavneje poišče s pomočjo iskalnika po nazivu, kraju ali po
ponudbi. Dobrodošlo je tudi, da lahko sam uporabnik skozi aplikacijo predlaga novega
ponudnika ali pa tudi poda kakšno pripombo pri obstoječem ponudniku. Zelo dobrodošla pa bi
bila tudi enostavna pomoč oziroma enostaven pregled najpogosteje uporabljenih funkcij, ki bi
uporabniku lažje predstavila, kako se kateri del funkcionalnosti lahko uporablja. Cilj nam je
predvsem narediti enostaven, hiter in pregleden imenik, ki združuje vse naštete funkcionalnosti.
3.4.2 Specifikacije zahtev aplikacije
Na podlagi želenih funkcionalnosti aplikacije smo tako definirali specifikacije zahtev, katerih
smo se držali pri razvoju mobilne aplikacije:
aplikacijo bo možno uporabljati na operacijskih sistemih Android in iOS. Prilagojena bo
tudi starejšim napravam, vendar z določenimi omejitvami. Podpora za Android je nudena
od verzije 4.3 naprej, v starejših tako ne bo delovala. Aplikacija bo prilagojena tudi
tabličnim napravam tako za Android kot za iOS;
aplikacija bo brezplačna vsem uporabnikom. Uporabniki iOS naprav bodo tako brezplačno
prenesli mobilno aplikacijo iz Android trgovine Google Play in iz trgovine App Store;
RAZVOJ APLIKACIJE MALCAJT
23
uporabnik bo na podlagi trenutne lokacije pridobil njemu najbližje ponudnike. Uporabnik
mora pri namestitvi aplikacije na Android napravah potrditi in se strinjati z uporabo trenutne
lokacije, da bo tako imela aplikacija pravice dostopati do teh podatkov, medtem ko pri iOS
napravah potrdi dovoljenje za pridobivanje trenutne lokacije ob prvem zagonu aplikacije.
Če uporabnik ne dovoli uporabe trenutne lokacije, aplikacija ne more dostopati do teh
podatkov. Trenutna lokacija poda vse gostinske ponudnike, ki so oddaljene največ 10 km
zračne razdalje;
uporabnik bo ob prvem zagonu aplikacije v primeru, da aplikacija ne pridobi trenutnih
podatkov o njegovi lokaciji, izbral regijo iz seznama regij in v naslednjem koraku občino
znotraj regije, da lahko na ta način omeji število izpisanih ponudnikov;
uporabnik bo lahko enostavneje našel gostilno s pomočjo uporabe iskalnika. Kot iskalni niz
bo uporabnik lahko podal ime gostilne, kraj ali ponudbo in tako pridobil vse ponudnike, ki
ustrezajo iskalnemu nizu;
uporabnik bo na podlagi izbrane regije oziroma občine omejeval število izpisanih gostinskih
ponudnikov, ki bodo ustrezali njegovim kriterijem. Na izbiro ima 12 slovenskih regij in 212
občin, po katerih lahko filtrira;
uporabnik bo lahko dodal ponudnike na listo priljubljenih. Dodani priljubljeni ponudniki
bodo na višjem mestu, če bo uporabnik izpisoval vse ponudnike znotraj regije ali znotraj
občine, kar pomeni, da bodo priljubljeni vedno izpostavljeni višje in bodo uporabniku
vedno na dosegu roke;
za enostavnejši pregled ponudnikov bo lahko uporabnik tudi izbiral lastnosti, ki mu
ustrezajo in na podlagi tega bo izpis gostinskih ponudnikov omejen glede na njegove
zahteve. Tako bo imel uporabnik na voljo izbiro lastnosti, kot so: parkirni prostor, odprto
ob vikendih, malice, kosila, primerno za invalide, kosila itd.;
izpis ponudnikov bo razvrščen glede na tip filtra. V primeru, da je izbrana trenutna lokacija,
so ponudniki izpisani po oddaljenosti od trenutne lokacije, najprej bodo prikazani najbližji
ponudniki, na koncu pa ti, ki so oddaljeni največ od trenutne lokacije. Izpisuje ponudnike
do 10 km od trenutne lokacije gledano iz zračne razdalje. V primeru, da pa bi uporabnik
izbral regijo ali občino, pa najprej sledijo vsi priljubljeni ponudniki, nato ponudniki, ki
imajo objavljeno ponudbo, na koncu pa vsi ostali, ki so razvrščeni po abecednem seznamu
glede na njihovo ime;
izpis ponudnikov bo na začetni strani vseboval ime ponudnika, lokacijo, ikono za telefon,
ponudbe ter v spodnjem delu še podatke, kot so oddaljenost od trenutne lokacije ter
RAZVOJ APLIKACIJE MALCAJT
24
informacije o delovnem času;
uporabnik bo ob kliku na posameznega ponudnika pridobil vse splošne podatke o
ponudniku. Na vrhu izpisa bo prikazana slika gostinskega ponudnika, njegovi osnovni
podatki (ime, naslov, kraj) in pa kontaktni podatki (telefon, elektronska pošta, spletna stran,
klik na zemljevid). V primeru, da bo ponudnik imel vpisane malice ali kosila, bo tako ob
odprtju na začetnem zaslonu izpis malic ali kosil. Malice in kosila so izpisana po dnevih in
so lahko ločena po želji ponudnika. V primeru, da ima ponudnik v svoji ponudbi tudi
študentsko prehrano, je tudi ta vključena v samem prikazu na podoben način, kot so
objavljene malice oziroma kosila. Naslednji zaslon je izpis aktualne in stalne ponudbe,
katero definira ponudnik. Če ponudnik definiran aktualno ponudbo in če nima objavljenih
malic oziroma kosil, je ta aktualna ponudba prikazana pri spisku vseh ponudnikov.
Naslednja sekcija pri ponudniku je splošen opis ponudnika, delovni čas in dodatne opcije,
katere ponudnik nudi. Zadnja sekcija pa predstavlja galerijo slik, katero ponudnik ureja
povsem samostojno;
uporabniki bodo lahko sami predlagali novega ponudnika;
uporabnik bo lahko predlagal spremembe obstoječega ponudnika, katere pa pred
posodobitvijo preverijo administratorji;
v primeru kakršnih koli dilem si bo lahko uporabnik s funkcijo pomoči pomagal do
določenih funkcionalnosti.
S pomočjo specifikacije zahtev, katere smo si določili, smo se lahko lažje podali v naslednji
korak, in sicer načrtovanje in kasneje tudi razvoj aplikacije.
3.5 Načrtovanje in razvoj aplikacije
3.5.1 Načrtovanje podatkovne strukture
Na podlagi specifikacij smo izdelali podatkovno strukturo, ki je del mobilne kot tudi spletne
aplikacije Malcajt. Podatkovna struktura, katero uporablja mobilna aplikacija, je enaka tudi pri
uporabi spletne aplikacije. Podatkovna struktura zajema 19 različnih tabel. Te so med sabo
povezane s primarnimi oziroma sekundarnimi ključi in so realizirane za hitrejše delovanje.
Zaradi poslovnih skrivnosti ne bomo podrobneje opisovali same podatkovne strukture.
RAZVOJ APLIKACIJE MALCAJT
25
3.5.2 Načrtovanje posameznih delov aplikacije
Celotna aplikacija je razdeljena na dva dela, in sicer na spletno aplikacijo za administracijo
gostinskih ponudnikov ter predstavitev ponudnikov in mobilno aplikacijo. Na eni strani imamo
spletno aplikacijo, katero uporablja gostinski ponudnik za urejanje njegovih podatkov, ter
spletno aplikacijo za administracijo vseh ponudnikov, na drugi strani pa imamo mobilno
aplikacijo, ki omogoča pregled vseh ponudnikov. Naknadno pa smo razvili tudi spletno
aplikacijo za predstavitev ponudnikov, ki ima identične funkcionalnosti kot mobilna aplikacija.
3.5.2.1 Spletna aplikacija
Spletna aplikacija je sestavljena iz dveh delov, in sicer iz »front-end« dela, ki je namenjen
ponudnikom, in »back-end« dela, ki je namenjen administriranju vseh ponudnikov.
Predstavitveno okolje za ponudnika
Predstavitev posameznega ponudnika je bila v začetku možna samo preko mobilne aplikacije,
kar je po eni strani uporabnika omejevalo. Gledano z uporabniškega vidika ima sicer vsak
uporabnik mobilno napravo vedno pri sebi, vendar večina uporabnikov, ki opravljajo delo v
pisarnah za računalniki, v večji meri uporabljajo le-te. V ta namen smo se odločili razviti tudi
spletno aplikacijo za predstavitev uporabnikov. Vsak uporabnik je predstavljen tudi na naši
spletni aplikaciji Malcajt in je lahko dosegljiv tudi preko določene spletne povezave. To je tudi
boljši način predstavitve ponudnika z vidika SEO, saj je ponudnik lahko najden tudi preko
ostalih iskalnikov, kot so Google, Najdi.si in Yahoo. Predstavitveno okolje je razdeljeno na dva
dela: prvi del zajema iskanje ponudnika po določenih iskalnih parametrih ter imenik
ponudnikov, drugi del pa zajema predstavitev samega ponudnika. Spodnja slika prikazuje
prikaz iskalnika po ponudnikih.
RAZVOJ APLIKACIJE MALCAJT
26
Slika 3.4: Prikaz iskalnika po ponudnikih
Iskanje ponudnika poteka podobno kot na mobilni aplikaciji Malcajt, s tem da je tu bistveno
iskalno polje. V to polje lahko uporabnik vnese želene besede, na podlagi katerih mu vrne
rezultate. Iskanje se izvaja po naslednjih atributih, ki so zabeleženi v podatkovni strukturi:
Title – naziv ponudnika;
Description – opis ponudnika;
City – kraj, v katerem se nahaja ponudnik;
Address – naslov, na katerem se nahaja ponudnik;
Postage – poštna številka, v kateri je kraj ponudnika;
OfferText – posebna ponudba, ki jo lahko vnese ponudnik;
ActualText – aktualna ponudba;
LunchText – dnevna/tedenska ponudba malic oziroma kosil;
Keywords – ključne besede, po katerih lahko ponudnika iščemo.
V iskalno polje lahko uporabnik vnaša sestavljene besede, na podlagi katerih kasneje pridobi
rezultate. Kot primer uporabnik v iskalno polje vnese iskalni niz »krško malice« in tako dobi
kot vrnjen rezultat izpis vseh ponudnikov, ki imajo ti dve ključni besedi v katerem koli polju,
ki so bila prej omenjena. Ne glede na dolžino vnosa v iskalna polja želimo uporabnikom izpisati
RAZVOJ APLIKACIJE MALCAJT
27
čim več smiselnih zadetkov in mu s tem prihraniti čas, ki bi ga sicer porabil za prehode po
posameznih straneh. Privzeto razvrščamo ponudnike po oddaljenosti od trenutne lokacije. V
primeru, da uporabnik potrdi uporabo njegove trenutne lokacije, s tem aplikacija pridobi
trenutne koordinate naše lokacije in izpiše ponudnike od najmanjše do največje oddaljenosti.
Razvrščanje izpisa ponudnika se lahko povsem samostojno tudi spremeni. Parametri, po katerih
lahko razvrščamo, so »Distance« – oddaljenost od trenutne lokacije – in pa »Title« – naziv
ponudnika. Če uporabniku ne zadošča iskanje s pomočjo iskalnega niza, si lahko omeji število
zadetkov tudi z uporabo filtra. Filtri »Nudimo« so enaki v mobilni aplikaciji. Z njimi lahko
uporabnik filtrira število zadetkov po karakteristikah, kot so invalidski dostop, malice, tedenska
kosila, odprto ob vikendih, parkirni prostor itd. Uporabnik ima omogočeno tudi dodatno
filtracijo, in sicer po regijah oziroma občinah. Vsak zadetek po iskalnem nizu ali po zgoraj
omenjeni filtraciji zmanjšuje tudi število ponudnikov po določeni regiji oziroma občini, tako
da so rezultati dejansko čim bolj smiselni uporabniku. Del, kjer so prikazani zadetki vseh
ponudnikov, je povsem podoben shematiki, katero uporabljamo pri mobilni aplikaciji. Vsak
zadetek ima podan naziv, kraj, oddaljenost od trenutne lokacije, delovni čas (odprto/zaprto),
telefonsko številko, vstopno fotografijo in najpomembnejše – predstavitev ponudbe, ki jo
ponuja na trenutni dan, ali pa aktualno ponudbo, če jo ima vneseno. Tako uporabnik enostavno
pregleda vso današnjo ponudbo in se lažje odloči za ponudnika. Glede na to, da je v bazi veliko
število ponudnikov, smo jih omejili po straneh. Na posamezni strani je največ 25 ponudnikov.
Za nadaljnje rezultate se premikamo na naslednjo stran, kjer pridobimo rezultat naslednjih 25
ponudnikov in s tem ne obremenjujemo strežnika ter zmanjšamo interakcijo med strežnikom in
uporabnikom.
Predstavitev ponudnika na spletu je podobna predstavitvi ponudnika v mobilni aplikaciji. Glede
na to, da smo želeli shematiko mobilne aplikacije prenesti na splet, smo se držali enake logike
glede uporabnosti. Vsak ponudnik je samostojno predstavljen na spletni strani z določeno
spletno povezavo, preko katere lahko tudi sicer uporabnik pride do ponudnika. Ponudnik je
predstavljen z vsemi podatki, katere imamo shranjene v naši podatkovni bazi. V zgornjem
levem delu imamo naziv ponudnika, kraj, oddaljenost od trenutne lokacije ter opis odprto/zaprto
v primeru, da ima določen delovni čas. Nato sledi izpis galerije, kjer so prikazane slike za
posameznega ponudnika. Ponudniku je na voljo galerija, kjer lahko naloži največ 15 dodatnih
fotografij, ki bodo kasneje vidne uporabniku. Pod predstavitvijo fotografij so tako imenovani
tabulatorji, pri katerih preklapljamo med informacijami. V primeru, da ima ponudnik dodane
malice, kosila ali študentsko prehrano, se na prvem mestu pojavi tabulator, ki izpisuje te
podatke in vsebuje preklope med malicami/kosili in študentsko prehrano v primeru, da je ta na
RAZVOJ APLIKACIJE MALCAJT
28
voljo. Drugi tabulator zopet vsebuje predstavitev ponudbe v primeru, če jo ponudnik vpiše. Tu
je na voljo izpis aktualne in posebne ponudbe. Zadnji tabulator vsebuje predstavitev opisa
ponudnika in opcije, ki jih nudi v obliki ikon, ki nazorno opišejo, kaj ima kateri ponudnik na
voljo. To so opcije, ki smo jih lahko pri samem iskanju tudi uporabili za lažje filtriranje
zadetkov iskanja. Desni del predstavitve ponudnika zajema predstavitev kontaktnih podatkov,
kot so telefon, spletna stran, e-poštni naslov in pa gumb »Pišite nam«, kateri vodi na obrazec
za povpraševanje, ki neposredno kontaktira ponudnika. Naslednje okno zajema predstavitev
delovnega časa, ki ga je vnesel ponudnik. Tu so predstavljeni dnevi z imeni ter čas odprtja
oziroma zaprtja. Nazorno je tudi predstavljeno, ali je ponudnik trenutno odprt oziroma zaprt.
Zadnje okno vsebuje izpis slike iz Google zemljevida. Klik na sliko nas vodi neposredno na
Googlovo stran, kjer je prikazana karta z neposredno potjo od naše trenutne lokacije do
ponudnika.
Slika 3.5: Predstavitev ponudnika na spletu
Urejevalno okolje za ponudnika
Front-end administracija za dostop zahteva vnos t. i. prijavnih podatkov, in sicer uporabniško
ime ter geslo, katero so uporabniki pridobili z dopisom oziroma so ga pridobili tekom
registracije v spletno aplikacijo. Najprej je bilo potrebno izdelati prijavno in registracijsko okno.
Prijavno okno vsebuje vnosna polja »Uporabniško ime« in »Geslo« in ob vnosu teh dveh
podatkov preveri v obstoječi podatkovni bazi, če uporabnik obstaja in če je aktiven. Če je
prijava uspešno potrjena, je ponudnik preusmerjen na urejevalno okolje za uporabnika. Spodnja
slika prikazuje primer prijavnega in registracijskega okna.
RAZVOJ APLIKACIJE MALCAJT
29
Slika 3.6: Okno za prijavo/registracijo
Registracija na drugi strani vsebuje vnosna polja »Uporabniško ime«, »Geslo« ter »E-poštni
naslov«. Pri registraciji je potrebno vnesti vsa polja, prav tako je potrebno izpolniti polja
»Geslo« in »Ponovi geslo«, katera morata biti identična. Ob vnosu vseh obveznih podatkov se
v bazi podatkov preveri, ali že obstaja uporabnik s tem uporabniškim imenom ali e-poštnim
naslovom. Če ne obstaja, je registracija uspešna in ponudnik je preusmerjen v administracijo
njegove ponudbe. Uporabnik na vnesen e-poštni naslov prejme obvestilo o registraciji in o
potrditvi profila ter s tem pridobi vse pravice za objavo in oskrbovanje ponudbe. Ko je ponudnik
prijavljen, ima pravico urejanja gostinskih lokalov, katerih lastnik je. Ponudniki so sicer ločeni
na dva dela. Delijo se na ponudnike, ki imajo Mali paket, in ponudnike, ki imajo Veliki paket.
Ponudnik z Malim paketom ima možnost objave osnovnih podatkov, kar je brezplačno za vse
ponudnike. Vsak ponudnik, ki ne podaljša naročnine, postane naročnik tega paketa in ima
pravico do urejanja naslednjih podatkov: naziv in naslov lokala, lokacija, telefon, delovni čas
in nosilna slika. Spodnja slika prikazuje primer urejevalnega okolja za ponudnika.
RAZVOJ APLIKACIJE MALCAJT
30
Slika 3.7: Urejevalno okolje za ponudnika
Ponudnik velikega paketa pa ima poleg osnovnih podatkov še možnost dodatnih polj, kot so
spletna stran, opis lokala, ponudba, aktualna ponudba, lastnosti lokala – izbira opcij parkirni
prostor, dostop za invalide itd., galerija, objava malic oziroma kosil ter možnost objave ponudbe
na spletni strani in na Facebooku. V primeru lastništva velikega paketa ponudnik z enim
vnosom pridobi pravico za objavo ponudbe na več lokacijah hkrati.
Urejevalno okolje za administratorje
Urejevalno okolje za administratorje je namenjeno celotni administraciji vseh gostinskih
ponudnikov. Do tega okolja lahko dostopajo le administratorji, ki imajo popoln nadzor nad
vsemi ponudniki.
Administracija je sestavljena iz treh delov. Prvi je del, ki pokriva vse dodane ponudnike. Pri
njem imamo spisek vseh dodanih ponudnikov, katere lahko filtriramo po regijah/občinah ali
poiščemo s pomočjo iskalnika, lahko jih pa tudi filtriramo po tipu ponudnika. Vsak ponudnik
ima določen tip. Prvi tip so ponudniki, ki nimajo malic in so v imeniku zgolj samo informativno
ali pa še niso uvrščeni v pravilno kategorijo. Naslednji tip so ponudniki, ki imajo dnevno
ponudbo malic in kosil, vendar za to skrbimo mi – te imajo tako imenovani tip »Ročno«. Tretji
tip pa so ponudniki, ki za objave skrbijo samostojno in spadajo v kategorijo »Samostojno«,
takšni pa za svoje ponudbe skrbijo popolnoma sami in so tako neodvisni od nas. Administrator
ima popoln nadzor nad ponudniki, kar pomeni, da lahko ureja celotno ponudbo ponudnika.
Lahko spreminja vse podatke, ki so izpolnjeni, dodaja slike, lastnosti in ostale podatke, ki
manjkajo ali so nepravilni. V osnovi pa lahko seveda administrator dodaja nove ponudnike.
RAZVOJ APLIKACIJE MALCAJT
31
Drugi del administracije je namenjen pregledu naročnin posameznega ponudnika. Glede na to,
da imamo dva paketa, v katerih so ponudniki, in sicer »Mali« ter »Veliki« paket, po tem ključu
tudi v administraciji nadzorujemo ponudnike. Podan je podroben izpis vseh ponudnikov, kjer
imamo opisano ime paketa, v katerem je ponudnik, njihov čas aktivacije paketa in zaključek,
kdaj paket poteče. Administrator ima seveda možnost popravljanja datuma poteka in
spreminjanje tipa paketa, prav tako pa lahko tudi definira posamezno ceno paketa.
Tretji del administracije je namenjen pregledu vseh uporabnikov. Na tem mestu se lahko
spremlja celoten pregled prijav/registracij uporabnikov, da lahko lažje spremljamo tudi
spremembe pri posameznih ponudnikih. Izpisane imamo zadnje prijavljene uporabnike, njihov
status (aktiven/neaktiven), čas zadnje prijave, čas registracije in ostale podrobne informacije,
ki jih potrebujemo za lažji nadzor nad uporabniki. Administrator lahko tudi spreminja
uporabniške podatke ponudniku, spreminja osnovne podatke (ime in priimek naročnika, naslov,
e-poštni naslov itd.) ter prijavne podatke (uporabniško ime, geslo). Prav tako lahko tudi
vklaplja/izklaplja uporabnika ter ga po željah tudi odstrani.
3.5.2.2 Mobilna aplikacija
Mobilna aplikacija Malcajt združuje vse gostinske ponudnike v Sloveniji na enem mestu.
Aplikacija omogoča enostaven pregled gostinskih ponudnikov z vsemi informacijami, katere
so gostinci objavili. Ciljna skupina so predvsem vsi gostinski ponudniki, ki imajo
dnevno/tedensko ali aktualno ponudbo in želijo oglaševati svojo ponudbo še na enem dodatnem
medijskem kanalu. Iz vidika uporabnika aplikacija omogoča pregled vseh dodanih ponudnikov
v posamezni izbrani regiji ali občini in tudi podroben opis posameznega ponudnika.
Ko uporabnik prvič namesti mobilno aplikacijo na iOS ali Android mobilno napravo, ga v
prvem koraku vpraša za privolitev pravic do uporabe trenutne lokacije. V primeru, da je bila
uporaba lokacije potrjena, aplikacija preusmeri na izpis ponudnikov, ki so najbližje naši trenutni
lokaciji. V nasprotnem primeru pa je potrebno izbrati regijo in po želji občino, v kateri bi želeli
izpis ponudnikov. Če je izbran izpis ponudnikov »Najbližji ponudniki«, so ti razvrščeni po
trenutni oddaljenosti od najbližjega proti najbolj oddaljenem, če pa ima uporabnik izbrano
regijo oziroma občino, pa imenik izpisuje ponudnike glede na njihovo ponudbo. Najprej so na
vrhu višje razvrščeni vsi ponudniki, katere imamo nastavljene kot priljubljene, nato sledijo tisti,
ki imajo vneseno dnevno/tedensko ali aktualno ponudbo. Ti so posledično razvrščeni tudi glede
na naziv. Po tem spisku pa sledijo vsi ostali ponudniki, razvrščeni po nazivu. Na levi strani
RAZVOJ APLIKACIJE MALCAJT
32
aplikacije se v primeru, da se nahajamo na začetnem naslovu, kjer imamo izpis ponudnikov,
nahaja meni, s pomočjo katerega dostopamo do drugih oken v mobilni aplikaciji. Prvi v meniju
je »Ponudniki«, kateri izpisuje vse ponudnike in je hkrati začetni zaslon ob odprtju aplikacije.
Naslednji v meniju je »Priljubljene«, kjer je zbirka vseh izbranih priljubljenih ponudnikov.
Nato sledi meni »Objavi ponudbo«, kjer se v pop-up oknu odpre možnost do povezave na
spletno aplikacijo za prijavo oziroma registracijo ponudnika. »Predlagaj ponudnika« omogoča
uporabniku dodajanje novega ponudnika v primeru, če tega ni v imeniku. Zadnji od menijev
»Pomoč« pa omogoča pregled enostavnega pregleda vseh oken in dodatnih opcij za lažjo
uporabo v primeru, če pride do kakršnih koli dilem. Med drugimi pa so dodane tudi ikone
spletne strani, e-poštnega naslova in splošnih informacij o sami aplikaciji.
Imenik ponudnikov omogoča pregled vseh ponudnikov tudi za določen dan oziroma za
naslednje 4 dni vnaprej. Tako se lahko uporabnik enostavno z zdrsom v levo ali desno premika
med dnevi, da ni potrebe po kliku na posameznega ponudnika. Vsak ponudnik ima poleg
svojega naziva na desni strani ikono za neposredni klic na njihovo telefonsko število. Pod
nazivom sledi izpis splošnih informacij, kot so kraj, v katerem se nahaja ponudnik, oddaljenost
ponudnika od trenutne lokacije ter opis, ali je ponudnik odprt oziroma zaprt. Pred nazivom so
tudi smiselne ikone, katere ponazarjajo, ali je ponudnik priljubljen (ikona srček), ikona študent,
ki opisuje, da ima ponudnik vneseno tudi študentsko prehrano, ikona malice, ki ponazarja, da
je za trenutni dan objavljena malica oziroma kosilo, in pa ikona ogenj, ki ponazarja aktualno
ponudbo. Spodnja slika prikazuje izpis imenika ponudnikov glede na najbližje ponudnike.
Slika 3.8: Prikaz imenika ponudnikov v mobilni aplikaciji Malcajt
Na začetnem naslovu ponudnikov je pri posameznem ponudniku napisana tudi današnja
RAZVOJ APLIKACIJE MALCAJT
33
ponudba malic oziroma kosil. Če te ni, je nadomeščena z opisom študentske prehrane, če pa ni
tudi te, pa jo nadomesti opis aktualne ponudbe. Kot je bilo že zgoraj omenjeno, lahko uporabnik
enostavno preklaplja med dnevi in se s tem izogiba dodatnim klikom na posameznega
ponudnika za ponudbo ostalih dni. Izpis malic/kosil ali študentske prehrane je na začetnem
zaslonu omejen na 5 vrstic, za več vrstic pa je tudi nazorno prikazano, da lahko uporabnik
klikne na posameznega ponudnika in pridobi izpis celotne ponudbe. V desnem zgornjem kotu
zaslona se nahaja ikona za iskanje (lupa), kjer v iskalno polje uporabnik vnese želene iskalne
nize in pridobi rezultate, ki nadomestijo trenutni izpis. Iskalnik deluje podobno kot ostali
iskalniki na spletu – vpiše se ključne besede, kot recimo »malice Krško«, in v tem primeru nam
iskalnik ponudi rezultate vseh ponudnikov, ki imajo te besede uporabljene v določenem polju,
po katerem iščemo. Uporabnik lahko na klik izbrane regije/občine tudi menja trenutno
filtriranje ponudnikov in se povsem samostojno premika po ostalih regijah oziroma občinah.
Vsaka regija/občina ima tudi nazorno napisano število ponudnikov, da tako uporabnik pridobi
občutek, kolikšen je obseg ponudnikov v posameznem delu Slovenije. Ena od opcij filtracije
pa je tudi filtracija po opcijah, katere nudi ponudnik. Uporabnik lahko tako izbira po naslednjih
opcijah in tako filtrira izpis ponudnikov:
dostava na dom;
invalidski dostop;
kreditne kartice;
malice;
možnost rezervacije;
nedeljska kosila;
odprto ob vikendih;
otroška igrala;
parkirni prostor;
parkirni za tovornjake;
ponudba brez glutena;
ponudba za vegane;
ponudba za vegetarijance;
prenočišča;
študentski boni;
tedenska kosila;
WI-FI.
RAZVOJ APLIKACIJE MALCAJT
34
Tu lahko seveda uporabnik izbere poljubno število opcij, po katerih želi filtrirati izpis vseh
ponudnikov, in se s tem izogne vsem tistim, katerih ne želi na spisku oziroma pridobi zgolj
tiste, ki so zanj lahko potencialni.
S klikom na posameznega ponudnika se odpre nov zaslon za podroben opis ponudnika. Ta
zajema predstavitveno sliko, da uporabnik dobi občutek, o kakšni gostilni je govora, nato sledijo
osnovni podatki, kot je naziv ponudnika, kraj, naslov. Pod osnovnim opisom sledijo ikone, ki
se lahko uporabljajo za kontaktiranje preko klica ali e-poštnega naslova ter gumb za navigacijo,
katera nam neposredno izriše pot do ponudnika glede na našo trenutno lokacijo. Naslednje okno
zajema predstavitev ponudbe. Tu je celotni zaslon razdeljen na tabulatorje, ki se uporabljajo
tudi pri spletni različici. Izpis je popolnoma identičen spletni različici aplikacije, torej se izpis
malic/kosil ali študentske prehrane nahaja na prvem tabulatorju, izpis aktualne/posebne
ponudbe pa se nahaja na naslednjem tabulatorju ponudba. Tabulator »Info« zajema opis
ponudnika ter ikone »nudimo«, ki nazorno opisujejo, kaj posamezen ponudnik nudi. Zadnji
tabulator zajema prikaz galerije fotografij ponudnika, kjer uporabnik pridobi še dodaten
občutek, kakšen je videz gostilne ali pa kakršne koli druge fotografije, ki predstavljajo
ponudnika. Posameznega ponudnika lahko tudi obvestimo o kakršni koli pomanjkljivost s
klikom »Predlagaj spremembo«, kjer ponudnik dobi obvestilo s strani Malcajt-a. Uporabnik si
lahko ponudnika tudi doda na listo priljubljenih s klikom na ikono srce, katera shrani ponudnika
na listo k vsem preostalim ponudnikom. Ti ponudniki so na začetnem zaslonu tudi sicer višje
razvrščeni oziroma se pojavljajo prvi na seznamu, razen v primeru, ko izpisujemo ponudnike
glede na nam najbližje ponudnike. Vsak ponudnik je s tem tudi samostojno podrobno
predstavljen z vsemi osnovnimi, kakor tudi dodatnimi podatki, ki lahko uporabniku pridejo
prav. Prikaz mobilne aplikacije je viden na spodnjih slikah.
Slika 3.9: Prikaz mobilne aplikacije Malcajt
RAZVOJ APLIKACIJE MALCAJT
35
3.6 Testiranje
3.6.1 Testiranje strežnika
Preden je bila aplikacija javno dostopna, smo se lotili testiranja strežnikov. Največja dilema je
bila, ali kupiti nov strežnik, ki bi bil v celoti ločen od drugih strežnikov in bi bil uporabljen
samo v namene aplikacije Malcajt. Glede na to, da to doprinese kar velik dodaten strošek, smo
najprej testirali obstoječi strežnik, koliko zahtevkov je le ta zmožen izvesti v določenem času.
Za namene testiranja strežnika smo uporabili loader.io – aplikacijo za testiranje obremenitve
strežnika. To je brezplačna spletna aplikacija, ki omogoča izvajanje stresnega testa na našem
strežniku. Uporabnik določi spletni naslov, na spletnem naslovu potrdi certifikat, ko je ta
potrjen, pa lahko s pomočjo spletne aplikacije pošljemo večje število zahtevkov na strežnik.
Aplikacija omogoča podrobni pregled prejemanja ter pošiljanja zahtevkov ter celotno analizo
(Loader, 2017). Spodnja slika prikazuje testiranje 1000 zahtevkov na minuto, kar je približno
16 zahtevkov na sekundo oziroma 16 uporabnikov na sekundo.
Slika 3.10: Testiranje strežnika 1000 zahtevkov/min
V naslednjem testu smo malce povečali število zahtevkov in skrajšali čas, kar pomeni, da smo
na strežnik poslali še večje število zahtevkov v še krajšem časovnem obdobju. Poslali smo 5000
zahtevkov v časovnem razponu 30 sekund, kar bi pomenilo 166 uporabnikov na sekundo.
RAZVOJ APLIKACIJE MALCAJT
36
Spodnja slika prikazuje odzivanje strežnika ob prejemanju 5000 zahtevkov v 30 sekundnem
intervalu.
Slika 3.11: Testiranje strežnika 5000 zahtevkov/30 s
Zadnji test je bil najbolj zahteven, in sicer 10000 zahtevkov v le 15 sekundah, kar bi pomenilo
približno 666 uporabnikov na sekundo. Spodnja slika prikazuje zadnje testiranje pošiljanja
zahtevkov na naš strežnik.
Slika 3.12: Testiranje strežnika 10000 zahtevkov/15 s
RAZVOJ APLIKACIJE MALCAJT
37
Glede na pridobljene rezultate smo ugotovili, da je strežnik sposoben prejemati večje število
zahtevkov in se v tem primeru ni bilo potrebno odločiti za nakup oziroma najem dodatnega
strežnika samo v namen Malcajt-a.
3.6.2 Testiranje podatkovne strukture
Podatkovno strukturo smo testirali v veliki večini tekom same izvedbe aplikacije. Torej se je
interno testiranje izvajalo medtem, ko smo izdelovali poizvedbe po podatkovni bazi. Predvsem
je tu pomembno, da so tabele čim bolj optimalno izdelane, kar pomeni, da so realizirane –
vsebujejo ključe do drugih pod-tabel in s tem omogočijo hitrejše pridobivanje želenih poizvedb.
Glede na to, da je naša podatkovna struktura kar velika (v ozadju imamo ca. 2000 gostinskih
ponudnikov), je posledično velik tudi del tabel, katere pa morajo biti čim bolj optimalne za
hitrejše izvajanje poizvedb.
Zelo pomemben del pri podatkovni strukturi je njeno indeksiranje, po katerem izvajamo iskanje.
Indeks je podatkovna struktura, ki nam omogoča, da v poizvedbi poiščemo vrstice iz tabele
mnogo hitreje kot sicer. Če ne uporabimo indeksa, mora SQL preiskati celotno tabelo, pri čemer
začne pri prvi vrstici in preišče celotno zbirko podatkov, dokler ne najde ustreznih zadetkov.
Časovna zahtevnost iskanja v tem primeru narašča linearno s številom vrstic O(n), zato je
iskanje hitro, dokler vrstic v tabeli ni preveč. Ko velikost tabele narašča, pa ustrezno postavljen
indeks pospeši iskanje, saj je v tem primeru časovna zahtevnost iskanja O(log n) (Mrgole,
2013). V ta namen smo določene atribute, po katerih izvajamo iskanje, indeksirali. Indeksirali
smo naslednje atribute:
Title – nam pove naziv gostilne;
Description – vsebuje podroben opis gostilne;
City – kraj, v katerem je gostilna;
Postage – poštna številka kraja;
Address – naslov, na katerem je gostilna;
OfferText – opis posebne ponudbe;
ActualText – opis aktualne ponudbe;
Keywords – ključne besede gostinskega ponudnika;
LunchText – opis dnevne ponudbe/malic/kosil.
S pomočjo indeksiranja po tabelah smo spremenili hitrost odziva na rezultat iz 10 sekund na
RAZVOJ APLIKACIJE MALCAJT
38
0,5 sekund, kar je seveda bistvena razlika tako za uporabnika kot tudi za odzivnost našega
strežnika. To uporabniku omogoča predvsem boljšo interakcijo in hitrejše delovanje strežnika.
3.6.3 Testiranje programske kode
Testiranje programske kode je v večini potekalo tekom samega razvoja. Programer najbolje
pozna produkt in tudi ve, kako in kaj bi bilo smiselno uporabiti, da pride do neke logične rešitve.
Mobilna aplikacija se je programirala s pomočjo ogrodja Ionic, ki v namene testiranja uporablja
tudi različna orodja. Programiranje se je izvajalo v programu PHPStorm, prav tako pa tudi
testiranje in razhroščevanje. PHPStorm je orodje, ki je namenjeno razvoju tako spletnih kot
drugih vrst aplikacij. Uporabnik ima na voljo 30-dnevno preizkusno različico, kjer lahko
program preizkusi. Prilagojeno je za različna PHP ogrodja, kot so Symfony, Drupal, Wordpress,
Zend, Laravel itd. Vsebuje celotno »front-end« podporo za spletne razvijalce, kot je HTML5,
CSS, Less, SASS, Javascript in drugo. Omogoča tudi »Live edit« torej živo urejanje, ki je vidno
takoj ob narejeni spremembi. Poleg vseh orodij za razvoj spleta omogoča tudi dodatne vtičnike
za VCS, oddaljeni dostop, SSH povezovanje na druge strežnike, terminal, urejanje podatkovnih
baz, Composer ter Rest API klient za prejemanje ter pošiljanje zahtevkov (PHPStorm, 2017).
Pri testiranju spletne, kakor tudi mobilne aplikacije, pa smo si pomagali tudi z orodjem Chrome
DevTools. To je eden od vtičnikov Google Chrome brskalnika, namenjen razhroščevanju
aplikacij, do katerih dostopamo preko spleta. Omogoča pregled elementov znotraj spletne
strani, njihovih lastnosti ter tudi spreminjanje posameznih lastnosti. S pomočjo omenjenega
orodja lahko posegamo neposredno v izvorno kodo spletne strani in spreminjamo/dodajamo
oziroma brišemo posamezne elemente spletne strani. Pomembna prednost uporabe tega vtičnika
je predvsem konzola, namenjena JavaScript izpisovanju vseh interakcij med klientom in spletno
stranjo. Ta konzola nam javlja podrobne podatke, s pomočjo katerih lahko bolj učinkovito
poiščemo kakšno težavo, ki se pojavlja. Mrežna plošča je tudi eno od zelo uporabnih sekcij tega
vtičnika, saj omogoča spremljanje pošiljanja in prejemanja zahtevkov na spletni strani, katero
pregledujemo. Sam vtičnik pa ima tudi dodatne funkcionalnosti, kot so pregledovanje piškotkov
ter sej na spletni strani, pregledovanje certifikatov, ki jih uporablja spletna stran, pregledovanje
ter urejanje predpomnjenja, katerega cilj je naložiti spletno stran v čim krajšem možnem času,
ter kup ostalih funkcionalnosti, ki za nas niso bile tako pomembne (Google, 2017).
RAZVOJ APLIKACIJE MALCAJT
39
3.6.4 Testiranje uporabniškega vmesnika
Testiranje uporabniškega vmesnika je potekalo predvsem s strani uporabnikov, saj smo kot
razvijalci težko ocenili, kako dober je dejansko naš uporabniški vmesnik. Kot razvijalcem se
nam zdi vsaka stvar enostavna ter logična, medtem ko je lahko navadnem uporabniku vsak klik
v aplikaciji bistveno težji in neuporaben.
Uporabniki so v večini testirali predvsem enostavnost uporabe same aplikacije. Kako priti do
določenega cilja s pomočjo ponujenih opcij in kako v našem primeru v najhitrejšem času priti
do kontaktnih podatkov posamezne gostilne, v kateri bi naročili. Največji delež uporabnikov
nam je javljal, kako bi lahko določene dele grafičnega vmesnika popravili, da bi do nekega
podatka lahko uporabnik dostopal čim hitreje in čim bolj enostavno. Prav tako so uporabniki
podajali mnenja o menjavi določenih barvnih kombinacij, tako da smo z njihovo pomočjo
oblikovali dober uporabniški vmesnik, ki je dokaj pregleden in enostaven za uporabo.
40
4 REZULTATI RAZISKAVE
Tekom celotnega razvoja produkta, tako spletne kot mobilne aplikacije, smo s pomočjo
raziskave lažje prišli do pomembnih odgovorov, ki so nam kasneje lahko še kako zelo koristili.
Zastavili smo si nekaj raziskovalnih vprašanj, na katera smo se naslanjali in si z njimi pomagali
pri razvoju produkta.
Prvo raziskovalno vprašanje se je nagibalo k pridobivanju uporabnikov. Vprašanje se je glasilo:
»Kako pridobiti čim večji nabor uporabnikov?«. Z lansiranjem izdelka na trg smo izdelek
izpostavili celotni javnosti, kar pomeni, da smo izdelek predstavili velikem številu
uporabnikov. Z objavo aplikacije na App store in Google Play smo tako izdelek predali v
uporabo vsem uporabnikom tako iOS mobilnih naprav, kakor tudi Android mobilnih naprav.
Na mobilnih trgovinah so aplikacije dosegljive prav vsem uporabnikom omenjenih naprav.
Aplikacija je ciljno namenjena uporabnikom v Sloveniji, saj vsebuje spisek gostinskih
ponudnikov v Sloveniji. Uporaba aplikacije v tujih državah je sicer bolj kot ne nesmiselna, saj
uporabnik ne bo pridobil konkretnih uporabnih informacij. Ob lansiranju mobilne aplikacije na
trg smo javno objavili tudi spletno stran Malcajt.com, katera privzeto zajema predstavitev
mobilne aplikacije, kakor tudi urejevalno orodje za ponudnika. Spletna stran je ciljna predvsem
za ponudnike gostinskih lokalov, ki skrbijo za objavo in urejanje ponudb na eni strani, na drugi
strani pa tudi za uporabnike, ki želijo pridobiti več podatkov o sami aplikaciji.
Mobilna aplikacija je bila na trgu predstavljena v sredini decembra 2016. Kot je bilo že prej
omenjeno, je dosegljiva za vse iOS in Android naprave. Registrirali smo se tudi na ostalih
socialnih kanalih, preko katerih smo začeli pridobivati uporabnike, in sicer Twitter, Facebook
in Youtube. Twitter je spletno mesto, kjer lahko v tem trenutku ugotovimo, kaj se dogaja po
celem svetu. Omogoča vnos objav, označevanje ostalih profilov, deljenje objav po celotnem
spletu ter spremljanje ostalih uporabnikov. Posebnost Twitterja je bila, da je posamezna objava
imela omejeno število znakov, z letom 2015 pa so to omejitev odstranili in s tem uporabnikom
omogočili več svobode (Twitter, 2017). Socialni medij Facebook je nam vsem dobro poznan
medij, ki omogoča registracijo novih uporabnikov, pregled uporabnikov, objavljanje objav,
deljenje objav, nalaganje fotografij/video posnetkov in kup ostalih funkcionalnosti. Facebook
je dosegljiv v več kot 70 različnih jezikih in je dosegljiv po celem svetu. Uporabniku prijazne
funkcije omogočajo tudi omejevanje vseh naših podatkov samo določenim osebam in s tem
REZULTATI RAZISKAVE
41
ščitenje pred zlorabo podatkov (Facebook, 2017). YouTube pa je nam vsem poznan spletni
gigant, ki omogoča objavljanje/pregled video posnetkov. Je eden večjih spletnih gigantov,
katerega lastnik je Google in ponuja nabor dodatnih funkcionalnosti ter še en dober način, kako
marketinško oglaševati izdelek. Z objavo aplikacije na mobilnih trgovinah smo tako začeli tudi
z objavljanjem vsebin na omenjenih socialnih medijih. S pomočjo socialnih medijev lahko zelo
dobro predstavimo produkt in pridobimo veliko število uporabnikov. Pomembno je predvsem
čim bolj ažurno objavljanje vsebin, ki uporabnike pritegne k uporabi. S Facebookom se je širil
glas o mobilni aplikaciji Malcajt preko drugih profilov, ki so produkt všečkali ali delili naprej.
Glede na to, da smo uporabili profil, ki je imel že kar precejšnjo maso uporabnikov, nam je to
deljenje objav pripomoglo pri dodatnem pridobivanju uporabnikov. Eno od pomembnih funkcij
je tudi všečkanje vseh potencialnih gostinskih ponudnikov, ki bi lahko na tak način izvedeli o
obstoju mobilne aplikacije in kasneje tudi spletne aplikacije. Tekom celotnega obdobja tako na
tedenski ravni objavimo novost ali kakršno koli vsebino, ki je povezana z našim produktom in
daje uporabnikom občutek, da je stvar vedno bolj atraktivna za uporabo. Poleg tedenskega
oskrbovanja medijskih kanalov z objavljanjem vsebin smo izvedli tudi nagradno igro v smislu
»deli-dobi« kar je bil v našem primeru primer deljenje določene objave na Facebooku v
časovnem obdobju enega meseca. Po pretečenem roku smo izžrebali uporabnike, ki so dobili
manjšo nagrado za uspešno objavljanje ter širjenje glasu. Ponudnikom smo po drugi strani
razdelili tudi oglasna gradiva, nalepke, plakate ter oglasne letake za zatikanje. Na ta način se
lahko uporabnika obvesti, da je tudi ta ponudnik v naši aplikaciji in da lahko pri nas spremlja
dnevno ponudbo. Zadnji način, preko katerega smo obveščali uporabnike glede aplikacije
Malcajt, pa je objava oglasov na različnih radijskih postajah. V našem primeru smo izbrali tri
najbolj znane radijske postaje in izvajali objavo oglasnega bloka v 14-dnevnem obdobju med
delavnikom v časovnem razponu od 8. do 22. ure. Na ta način je vsak uporabnik lahko slišal
besedo »Malcajt«, katero si je lahko po večkratnem objavljanju lažje zapomnil.
Naslednje raziskovalno vprašanje se je naslanjalo na oglaševanje produkta na trgu: »Kako
skrbeti za promocijo in oglaševanje mobilne aplikacije?« Oglaševanje je eden od
pomembnejših delov poslovanja in internet (splet) ima danes pred tradicionalnimi
oglaševalskimi mediji vrsto prednosti (interaktivnost medija, doseganje ciljnih skupin in hitra
odzivnost). Z nenehnim tehnološkim razvojem in nenehno dostopnostjo ponuja spletno
oglaševanje številne možnosti in priložnosti. Izrazite prednosti spletnega oglaševanja so tudi v
tem, da omogoča visoko stopnjo prilagodljivosti in nenehne dosegljivosti, posebej pomembno
pa je nagovarjanje obiskovalcev na družbenih omrežjih, ki ponuja izjemno možnost razvoja
REZULTATI RAZISKAVE
42
podjetja in rast blagovne znamke (Promocija in oglaševanje, 2017). Vse od razvoja ideje do
same implementacije in lansiranja na trg smo imeli kot razvijalci v glavi, da bo aplikacija res
pritegnila veliko število uporabnikov, kakor tudi ponudnikov, vendar je realno stanje po vsem
tem času bistveno drugačno. Prva težava, ki se je pojavljala že od samega začetka, je dejstvo,
da imena Malcajt nihče ne pozna, saj je to nov produkt na trgu. Pri samem oglaševanju smo
vložili velik del finančnih sredstev predvsem za to, da pridobimo čim večji nabor uporabnikov.
Celotna promocija ter oglaševanje poteka preko socialnih medijev Facebook ter Twitter. Tu je
seveda zelo pomembno, da na neko časovno obdobje objavimo ali članek ali sliko in s tem
pritegnemo čim več uporabnikov. Na socialnem omrežju se tudi neprestano izvaja promocija
objav. Promocija objave poteka na ta način, da neko našo objavo, ki se nam zdi smiselna, s
pomočjo finančnih sredstev delimo tudi med druge uporabnike, ki načeloma niso všečkali naše
strani, je pa tudi njim ta objava vidna. Pri takšni promociji je seveda vse odvisno od števila
doseženih oseb – večje kot je število, večji nabor uporabnikov lahko pridobimo, seveda pa je
tudi iz finančnega vidika promocija dražja oziroma se ta zaključi, ko dosežemo finančni limit
za določeno objavo. Na sliki spodaj vidimo primer promocije za nagradno igro, kjer smo
podarili majice.
Slika 4.13: Primer promocije na Facebook socialnem omrežju
Iz zgornje promocije je razvidno, da smo v 11 dneh porabili za promocijo objave 20,64 €.
Proračun za omenjeno promocijo, je bil 25 €. Ko se ta sredstva porabijo, se seveda promocija
samodejno ustavi. Doseg objave je bil 12.717, kar pomeni, da je objavo na Facebooku videlo
toliko oseb bodisi med reklamnimi bloki bodisi med deljenjem med drugimi uporabniki. Na
objavi je bilo izvedenih 251 delitev med drugimi osebami ter 238 reakcij oziroma všečkov, saj
REZULTATI RAZISKAVE
43
je bil to tudi cilj igre pri žrebanju nagrajencev.
Poleg promocije na socialnem omrežju Facebook se izvaja tudi oglaševanje preko spletne
aplikacije Google AdWords. Google AdWords je Googlova spletna aplikacija za oglaševanje
in promocijo produktov ter spletnih strani. Cilj takšnega načina oglaševanja je izpostaviti želeno
storitev na prvo mesto in s tem prehiteti konkurenco. S tem načinom oglaševanja pridobimo
dodatno število obiskovalcev, doseg objav lahko omejimo glede na čas, glede na kraj, glede na
tip uporabnikov, glede na starostno skupino itd. Oglase sestavljamo čisto samostojno po svojih
željah in zahtevah. Politika njihovega oglaševanja je predvsem takšna, da plačamo samo
dosežene rezultate. Torej se vedno plača samo klik na posamezni oglas. Za določeno
oglaševalsko kampanjo se določi preračun. Ko se ta prekorači, se oglaševanje začasno ustavi
(Get your ad on Google today, 2017). Za produkt Malcajt se izvaja oglaševanje v spletnem
iskalniku Google, kakor tudi v mobilni trgovini Google Play. Spodaj je prikazan primer
oglaševanja aplikacije Malcajt v spletnem iskalniku Google.
Slika 4.14: Primer zadetkov iskanja v Google iskalniku
Zgoraj je izpisan primer oglasa v Google spletnem, kakor tudi mobilnem iskalniku. Za besedo
»malice in kosila« smo izdelali oglaševalsko akcijo »Malice in Kosila v Ljubljani – Preveri
Kam Jesti V Ljubljani – malcajt.com«. Ta oglaševalska akcija ima seveda tudi nabor drugih
ključnih besed, kot so: malice, kosila, kosilo, kaj skuhati, meni za kosilo itd. Glede na to, da v
času, ko se je izvajala ta oglaševalska akcija, še ni bilo izdelane spletne aplikacije za
predstavitev ponudnikov, je bil posledično manjši tudi strošek oglaševanja. Če pogledamo
REZULTATI RAZISKAVE
44
primer za obdobje od 1. 3. 2017 do 1. 4. 2017, je bilo prikazov za te ključne besede 8645, od
tega je bilo 297 klikov, kar je zneslo okoli 3,44 %, kar pomeni, da je od števila prikazov 3 %
uporabnikov tudi kliknilo neposredno na oglas. Za to oglaševalsko akcijo smo v mesecu dni
zapravili 42,59 €. Takšna oglaševalska akcija je sicer bolj primerna za promoviranje spletne
aplikacije. Za namene promoviranja mobilne aplikacije pa smo izdelali posebno oglaševalsko
akcijo. Ta se pojavlja na posameznih spletnih straneh kot oglasni blok in tudi v sami mobilni
trgovini Google Play. Akcija beleži število prenosov znotraj mobilne trgovine Google Play ob
prikazanem oglasnem bloku. Enako kot pri predhodni akciji, komentiramo rezultate za obdobje
med 1. 3. 2017 in 1. 4. 2017, torej za en mesec. Dnevni proračun akcije je bil 3 €. Število
prikazov oglasnega bloka je bilo 174.551, od tega je bilo zabeleženih 868 klikov. Od 868
izvedenih klikov je 18,20 % uporabnikov aplikacijo namestilo, kar znaša 158 konverzij. Cena
posamezne konverzije oziroma v tem primeru cena namestitve znaša 0,25 €, kar je skupno 39,23
€ za mesečno obdobje med marcem in aprilom. Vse promocije, ki so se izvajale in se še izvajajo,
so imele oziroma imajo dokaj dober rezultat glede na ceno. To velja tako za promocije na
Facebook omrežju, kjer se lahko zelo dobro promovira določeno objavo in s tem doseže veliko
število uporabnikov za relativno ugodno ceno, kot za oglaševanje preko Google AdWords
spletne aplikacije, kjer se promovira tako spletno aplikacijo, kakor tudi mobilno aplikacijo.
Dnevno posodabljanje ponudb gostinskega ponudnika igra pomembno vlogo pri uporabnosti te
aplikacije. Če se uporabnik navadi dnevno pregledovati ponudbe gostinca in ta ni objavljena,
je lahko to za gostinca zelo velika napaka. Vprašanje, ki smo si ga zastavili, je: »Kako
gostinskega ponudnika pripraviti, da bo skrbel za aktualno ponudbo in s tem pridobil še večje
število uporabnikov na svojo stran?« Vsak ponudnik, ki je bil vnesen v naš sistem, je ob
lansiranju aplikacije na trg pridobil tudi uporabniško ime ter geslo, s katerim se je nato lahko
prijavil v sistem. Skupno je bilo poslanih 1860 dopisov z oglasnim letakom ter nalepko za vrata.
Od 1860 ponudnikov se je prijavilo 234 ponudnikov, kar je malo več kot 10 %. Glede na
posredovane dopise je število prijav vsekakor znak, da pri ponudnikih objavljanje ponudbe na
spletu ne igra tako velike vloge. Prvotna težava je seveda neprepoznavnost celotnega produkta
in nezaupanje ponudnika v produkt, ki še ni vsem dobro poznan. Vsak ponudnik ima 3-mesečno
preizkusno obdobje, v katerem lahko aplikacijo v celoti preizkusi in testira, po preizkusnem
obdobju pa dobi določene omejitve, ki so dosegljive le za ponudnike velikega paketa oziroma
za ponudnike, ki so plačali letno naročnino. Od vseh ponudnikov, ki so se prijavili v sistem, je
približno 60 ponudnikov takšnih, ki samostojno skrbijo za objavljanje ponudb, kar pomeni, da
se vsakodnevno ali tedensko prijavijo v sistem ter vnesejo malice/kosila ter ostalo, kar nudijo
REZULTATI RAZISKAVE
45
v ponudbi. Ni enostavno pripraviti ponudnika, da sam vnaša podatke. Razlogi so naslednji:
ponudnik je nevešč uporabe takšnih in drugačnih računalniških tehnologij;
prevelik strošek za nov produkt na trgu, ki še nima velikega nabora uporabnikov;
ponudbo dnevno objavlja na svoji spletni strani ali na socialnih omrežjih ali pa že
uporablja kakšno podobno rešitev.
Za vse te razloge smo poiskali smiselne rešitve, da bi tako olajšali vnos ponudbe ponudniku ter
poskrbeli za objavljanje ponudbe. V primeru, ko se zgodi, da imamo na drugi strani neveščega
ponudnika, mu lahko ponudimo za določen znesek vnos ponudbe. Tako nas ponudnik lahko
pokliče ali kontaktira na kakršen koli drug način ter sporoči svojo ponudbo, katero mu bomo
objavili mi v aplikacijo Malcajt. Če ponudnik že samostojno vnaša vsebino v obstoječ sistem
ali na socialno omrežje, mu lahko v takšnem primeru ponudimo objavo ponudbe v aplikaciji
Malcajt, katera pa bo lahko vidna na več mestih hkrati z samo enim vnosom. V primeru, da je
ponudba vnesena v Malcajt, je sinhronizirana tako v mobilni, kakor tudi v spletni aplikaciji.
Ponudnik lahko tudi z določeno kodo, ki jo pridobi v spletni aplikaciji, prikaže objavo na svoji
spletni strani, lahko pa tudi samo z enim klikom ponudbo objavi na Facebook zidu lastnega
profila ali pa predstavitvene strani. Tako lahko z enim vnosom objavi svojo ponudbo na štirih
različnih koncih. Ko ponudnik uporabi kodo na svojo spletni strani, je tudi na nek način
primoran nadaljevati z vnosom ponudbe, sicer ima izpis Malcajt na spletni strani prazen, kar pa
lahko uporabnika odvrne od dnevnega pregledovanja. Vsak ponudnik ima tudi možnost
pridobiti oglasno gradivo, s katerim promovira sebe, kakor tudi aplikacijo Malcajt. Spodnja
slika prikazuje primer promocijskega materiala za ponudnika v njegovem lokalu.
Slika 4.15: Promocijski material za ponudnika
REZULTATI RAZISKAVE
46
Pri izbiri pravilnega orodja za razvoj mobilnih aplikacij smo si pomagali z raziskovalni
vprašanjem: »Katera razvojna orodja uporabit za razvoj mobilne aplikacije?« Razvoj
mobilnih aplikacij je v vedno večjem porastu. Na trgu se išče predvsem aplikacije, ki so
uporabne tako uporabnikom, kakor tudi razvijalcu in imajo neko dodano vrednost. Izbira
razvojnega orodja je predvsem odvisna od specifike posamezne aplikacije. Za aplikacijo, ki
potrebuje dostop do strojne opreme telefona in za delovanje uporablja specifične UI elemente,
je najbolj smiselna rešitev razvoja »native« mobilne aplikacije. Pri tem moramo vzeti v zakup,
da je razvoj takšne aplikacije iz vidika financ in časa bistveno bolj potraten. Razvoj takšne
aplikacije se že v osnovi podvoji glede na druga razvojna okolja, saj tu razvoj poteka za vsak
operacijski sistem posebej. Sicer dandanes obstajajo rešitve, ki se imenujejo »Crossplatform
development«, katere omogočajo razvoj aplikacije na enem mestu za več operacijskih sistemov.
Primer je recimo razvoj mobilne aplikacije s pomočjo orodja »Xamarin« ali »React Native«.
Xamarin orodje temelji na razvoju »Crossplatform« aplikacij, ki se razvijajo v C# programskem
jeziku, medtem ko je React Native bližje razvoju spletnih aplikacij, ki temeljijo na JavaScript
skriptnem jeziku. Na drugi strani imamo rešitev hibridnih aplikacij, ki se tudi razvijajo kot
spletne strani s pomočjo jezikov HTML, CSS ter JavaScript, vendar aplikacija v tem primeru
ne dostopa neposredno do »native« API-jev, temveč deluje preko vmesnika WebView. Iz
časovnega in finančnega vidika je razvoj takih aplikacij najbolj smiseln v primeru, če ima
razvijalec že obstoječe znanje iz spletnih aplikacij ter spletnih strani. V našem primeru smo se
odločili za razvoj hibridne mobilne aplikacije, saj smo tako izhajali iz znanja, ki smo ga že imeli
pri izdelavi spletnih strani. Kljub temu pa bi se danes v primeru ponovnega razvoja odločili za
razvoj mobilne spletne strani. Glede na to, da naša aplikacija dostopa samo do uporabnikove
trenutne lokacije s pomočjo GPS koordinat, ki jo načeloma lahko pridobimo že tudi z uporabo
brskalnika, je kakršno koli drugo razvojno okolje nesmiselno. Takšna aplikacija ni nič drugega
kot spletna stran, ki je prilagojena mobilnim napravam. Prednosti razvoja mobilne spletne strani
so predvsem:
hitra in finančno ugodna rešitev;
ne potrebujemo dodatnega znanja;
lažje vzdrževanje;
ni potrebnih posodobitev na mobilnih trgovinah;
prilagodljivost večini mobilnih naprav na vseh operacijskih sistemih.
Velika prednost je tako predvsem lažje vzdrževanje – kar pomeni, da popravimo na enem mestu
REZULTATI RAZISKAVE
47
in je vidno povsod brez dodatnega posodabljanja na posameznih mobilnih trgovinah. Ker takšna
mobilna aplikacija deluje po enakem načelu kot spletna stran, je dejansko dosegljiva preko
določenega spletnega naslova in je lahko vidna tako na mobilnih napravah, kakor tudi na
računalniku. Ob kakršni koli spremembi je sprememba vidna prav povsod – tako na pametnih
telefonih kot aplikacija, kakor na spletni strani. Dodatna prednost takšnega razvoja je tudi
prilagodljivost večini mobilnih naprav. Pri mobilnih aplikacijah se nenehno srečujemo s
težavami podpore po posameznih napravah, pri tem primeru razvoja pa se takšnim težavam
zlahka izognemo. Dodatna prednost pa je tudi ta, da lahko na enem mestu podpremo večino
operacijskih sistemov, medtem ko to zelo težko dosežemo tako pri hibridnem, kakor tudi pri
»native« razvoju.
Naše zadnje raziskovalno vprašanje se je nanašalo predvsem na pridobivanje novih
uporabnikov pri objavi spletne aplikacije, ki je po funkcionalnosti enaka mobilni aplikaciji:
»Ali spletna aplikacija pripomore k pridobivanju dodatnih uporabnikov?« Pred objavo
aplikacije na trgu smo se v največji meri orientirali na razvoj mobilne aplikacije in na stranski
tir postavljali spletno aplikacijo, ki bi imela identične funkcionalnosti. Glavna funkcija mobilne
aplikacije je imenik gostinskih ponudnikov v Sloveniji s podrobnimi opisom ponudnika, kakor
tudi njegove ponudbe. Mobilna aplikacija je prisotna na trgu od decembra 2016. V tem obdobju
je sledilo še nekaj manjših popravkov brez večjih sprememb. Statistiko obiska v mobilni
aplikaciji spremljamo preko dveh različnih programskih orodij za merjenje in analizo. Prva
aplikacija je Google Analytics – spletna, kakor tudi mobilna aplikacija za merjenje in analizo
obiskanosti. Je orodje, s katerim lahko izvedemo kakovostno analizo obiskanosti tako naše
spletne strani, kakor tudi mobilne aplikacije. Orodje s pomočjo algoritmov natančno podaja
podatke, kot so: kako je uporabnik prišel na neko mesto, koliko časa se je tam zadrževal, katere
naprave pri tem uporablja in ostale podrobnosti, ki nam lahko ponudijo izboljšanje obstoječega
stanja obiskanosti. S pomočjo orodja lahko tudi lažje spremljamo, ali določene spremembe
pozitivno vplivajo na sam obisk ter ali je potrebna kakšna dodatna izboljšava, da bo rezultat
boljši. Še ena od zelo velikih prednosti pa je tudi »Real-time« statistika, ki beleži trenutno stanje
obiska ter podaja podrobno analizo, kdo vse se nahaja trenutno v naši aplikaciji ali spletni strani
ter kaj trenutno izvaja sam uporabnik (Analytics - overview, 2017).
Druga aplikacija za merjenje obiskanosti se imenuje AWStats. To je brezplačna aplikacija, ki
je nameščena na našem strežniku in na podlagi naših Apache log zapisov izpiše statistiko z
podrobnimi podatki in grafi. Ta lahko na podlagi log datotek generira izpis celotne statistike za
različne tipe strežnikov. Primerna je tako za e-poštne, FTP ter Web strežnike. Možna je uporaba
REZULTATI RAZISKAVE
48
v dveh oblikah, in sicer preko spletnega naslova kot spletna aplikacija ali preko terminala kot
samostojni skript (What is AWStats, 2017).
S pomočjo omenjenih aplikacij smo spremljali celotni promet v naši mobilni aplikaciji. Google
Analytics je sicer začel z beleženjem mesec dni kasneje, tako da lahko sklepamo, da določeni
redni uporabniki niso posodobili aplikacije na zadnjo verzijo, zato so možna tudi odstopanja
obiskanosti glede na podatke, ki nam jih ponuja AWStats. V nadaljevanju bomo predstavljali
zgolj rezultate statistike iz spletne aplikacije Google Analytics, saj sklepamo, da je ta bolj
natančna in nam hkrati podaja bolj podrobne ter nazorne rezultate. Spodnja slika nam prikazuje
statistiko obiska v aplikaciji Google Analytics za obdobje zadnjih dveh mesecev od 1. 2. 2017
do 1. 4. 2017.
Slika 4.16: Prikaz obiskanosti mobilne aplikacije
Kot je razvidno iz statistike Google Analytics smo imeli v tem obdobju skupno 6882 unikatnih
obiskov, kar pomeni unikatno število uporabnikov glede na njihovo napravo. Skupno imamo
25.601 sejo oziroma uporabnike, ki se vračajo vsakodnevno tudi nazaj, kar pomeni, da odprejo
aplikacijo, pregledajo ponudbo, pregledajo tudi kakšno posamezno gostilno itd. Skupno število
ogledov z vsemi ponudniki je bilo 68.034, povprečen čas uporabe aplikacije pa je znašal 2:06.
V tem časovnem obdobju je bilo 21,50 % novih uporabnikov, ki so si aplikacijo namestili in jo
začeli uporabljati, medtem ko je 69,50 % starih uporabnikov, ki se vsakodnevno vračajo. Glede
na statistiko tudi vidimo potek obiskanosti po dnevih. Kot smo že tudi sami pričakovali, je
padec obiska iz povprečnih 400 na povprečnih 200 ob sobotah in nedeljah. Prav tako so vidni
padci obiska ob praznikih, torej lahko sklepamo, da so padci ob nedelovnih dneh dejansko na
mestu. Ob teh dneh je seveda večina ponudnikov zaprtih ali pa ni poskrbljeno za objavo
ponudbe. Na podlagi statistike sicer težko sklepamo, kateri dnevi so bolj obiskani in kateri
manj. Načeloma je začetek tedna kar prevladujoč glede obiskanosti, saj se takrat največ ljudi
REZULTATI RAZISKAVE
49
vrne vsakodnevno v službo, so pa tudi tedni, kjer je obiskanost ob sredah v porastu. V tem
časovnem obdobju je tako Google Analytics zabeležil najmanj obiska v soboto 19. 3. 2017, in
sicer točno 200 obiskovalcev. Največ obiska pa je bilo zabeleženega v istem tednu, in sicer v
sredo 15. 3. 2017, ko je znašal 419 obiskovalcev. V statistiki beležimo tudi obiskanost
posameznih ponudnikov, vendar teh zaradi poslovnih skrivnosti ne bomo razkrili. Na podlagi
statistike o obisku posameznih ponudnikov pa lahko pridemo do sklepa, da ponudnik, ki skrbi
za dnevno ponudbo in promovira tako sebe kot aplikacijo Malcajt, z gotovostjo prevlada po
številu obiska glede na ostale. Seveda število ogledov posameznega ponudnika še ne pomeni,
da ta beleži tudi največ prometa, ampak je to lahko le sklep glede na podane rezultate. Če se
dotaknemo še tipa operacijskega sistema, je aplikacija namenjena dvema operacijskima
sistemoma, in sicer iOS ter Android. Glede na število namestitev lahko tudi po statistiki vidimo,
da je obiskanost iz operacijskega sistema Android bistveno višja. Približno 80 % obiska po
statistiki je zabeleženega iz Android operacijskega sistema, kar potrjuje že samo dejstvo glede
števila namestitev.
Razvoj spletne aplikacije je potekal na podoben način kot razvoj mobilne aplikacije. Njen cilj
je prikazati gostinske ponudnike tudi na spletu. Že od samega začetka je bila velika težava, ker
se gostinec ni prepoznal v mobilni aplikaciji. Od desetih gostincev sta si največ dva ogledala,
kako je videti njihova gostilna v aplikaciji, kar pomeni, da jih takšna predstavitev ni dovolj
pritegnila. Z uvedbo predstavitvene spletne aplikacije vsak gostinec pridobi URL naslov, preko
katerega je dosegljiv neposredno preko spleta, kar pomeni, da je izpostavljen celotnem spletu
in ga tako vsi iskalniki zlahka najdejo. Predstavitev ponudnikov, kakor tudi posameznega
ponudnika, je identična kot v mobilni aplikaciji, s tem da je prilagojena predvsem nekim
zahtevam, katerih se držimo pri spletnih straneh. Z začetkom aprila smo javnosti predstavili
spletno aplikacijo za predstavitev ponudnikov. Kot je bilo že omenjeno pri mobilni aplikaciji,
se je do sedaj povprečje gibalo med 300 do 350 uporabniki na dan. Uvedba spletne aplikacije
pa nam je še povečala število uporabnikov.
REZULTATI RAZISKAVE
50
Spodnja slika prikazuje statistiko obiska spletne aplikacije od 1. 2. 2017 do 20. 4. 2017.
Slika 4.17: Obiskanost spletne aplikacije
Pred uvedbo spletne aplikacije za predstavitev ponudnikov je imela sama spletna aplikacija v
povprečju okoli 80 obiskov. Prvi teden je seveda bil drastičen poskok števila ogledov zaradi
objav po socialnih medijih ter ostalih portalih in je seveda veliko število uporabnikov zanimalo,
kar smo predstavili. V tem časovnem razponu je bilo največje število uporabnikov na spletni
aplikaciji 841. Upad obiska je identičen kot na mobilni aplikaciji za vikende – takrat število
uporabnikov upade tudi za polovico. Trenutno je spletna aplikacija na trgu mesec dni in beleži
naslednje rezultate.
Slika 4.18: Statistika obiskanosti spletne aplikacije za mesec april
REZULTATI RAZISKAVE
51
Kot je razvidno iz zgornje slike, je v zadnjem mesecu spletno aplikacijo obiskalo 6273 različnih
uporabnikov. Skupno beležimo 8438 uporabnikov, kateri se večkrat vrnejo nazaj. Število
obiskov se giblje med 200 in 300 na dan, vse je seveda odvisno od dneva in tudi od posamezne
ure. Kakor pri mobilni aplikaciji, je tudi pri spletni aplikaciji podobna rast obiskanosti ob
določeni uri. Največ uporabnikov si ogleduje stran med 10. in 11. uro dopoldan, ko imajo
podjetja malice, ter med 13. in 14. uro, kadar imajo podjetja čas za kosila. Spodnja slika nam
prikazuje primerjavo obiskanosti spletne strani pred in po uvedbi predstavitvene spletne
aplikacije za ponudnike.
Slika 4.19: Obisk spletne strani pred in po izdelavi predstavitvene spletne aplikacije
Vidna je porast števila uporabnikov z uvedbo predstavitvene spletne aplikacije, saj se je na
dnevni ravni število uporabnikov povečala za 135 %, na mesečni ravni pa je to zneslo 388 %.
Predhodne so spletno aplikacijo uporabljali v večini samo ponudniki za vnos njihove ponudbe,
z uvedbo spletne aplikacije za predstavitev ponudnikov pa so tako prišli tudi dodatni
uporabniki, kateri spremljajo gostinske ponudnike neposredno preko spleta.
Glede na trenutno število uporabnikov v mobilni aplikaciji je obisk v spletni aplikaciji seveda
samo plus. Vsak dodaten uporabnik, ki obišče spletno aplikacijo, ima enak namen – na podlagi
katere je prišel obisk, pa niti ni pomembno. Rast uporabnikov je bila seveda pričakovana, saj
večina uporabnikov, ki vsakodnevno opravlja delo za računalnikom, ne posega po mobilnih
napravah in posledično tudi ne odpira aplikacije, kar posledično pomeni manjši obisk. Z uvedbo
spletne predstavitvene aplikacije smo tako dosegli dodaten obisk in dodatne uporabnike.
Ponudnikom, kakor tudi uporabnikom, smo na ta način še bolj poenoteno predstavili
posamezno gostilno, vso njihovo ponudbo, predvsem pa omogočili še enostavnejše deljenje
ponudnikov preko spleta.
52
5 ZAKLJUČEK
Razvoj spletnih, kakor tudi mobilnih aplikacij, je v vedno večjem porastu. V času, ko smo vsi
tako rekoč priključeni na internet, želimo do nekih rezultatov priti po najhitrejši možni poti in
to je seveda preko mobilnih naprav, kot sta tablica ali pametni telefon. Aplikacija Malcajt nam
je na nek način odprla pot na trgu in omogočila nudenje dodatnih storitev tako ponudniku na
eni strani kot uporabnikom na drugi strani. Z razvojem mobilne aplikacije smo želeli
uporabnikom predstaviti imenik gostinskih ponudnikov na enem mestu in s tem omogočiti čim
enostavnejši dostop do osnovnih informacij, kakor tudi do ponudbe, ki jo gostinec ponuja na
dnevni/tedenski ali pa tudi na mesečni ravni. Potek razvoja smo razdelili na nekaj smiselnih
korakov in pri tem sledili dejanskim trendom, ki se uporabljajo pri razvoju večjih produktov.
Na prvem mestu je seveda razvoj dobre ideje in pa točno določen cilj, ki ga želimo doseči s
produktom, nato sledi analiza trenutnega trga, pregled primerljivih produktov in definiranje,
kaj bi lahko na tej točki izboljšali. Tej fazi sledi faza razvoja, integracija, testiranje in na koncu
še analiza, ali smo dosegli želeni rezultat.
Tekom razvoja produkta smo si pomagali tudi z raziskovalnimi vprašanji, da bi lažje določili
smernice in se pravilneje odločiti, kako nadaljevati pri posameznih segmentih. Prvo
raziskovalno vprašanje se je glasilo: »Kako pridobiti čim večji nabor uporabnikov?« S prvotno
objavo mobilne aplikacije še nismo imeli točno določenih smernic na kakšen način bi lahko
pridobili čim večje število uporabnikov. Po daljšem časovnem obdobju je bilo ugotovljeno
predvsem to, da je pomembno na nek način širiti glas, da uporabniki dejansko zaznajo produkt
na trgu. Skozi celotno obdobje se trudimo uporabnike pridobivat s pomočjo socialnih medijev,
kot so Facebook, Twitter, Instagram. Na ta način promoviramo aplikacijo in uporabnikom
neprestano ponujamo rešitev, ki jim bo omogočala lažji dostop do imenika ponudnikov.
Uporabnike smo tako pridobivali preko spleta, kakor tudi preko radijskih medijev z objavo na
radijskih postajah v Sloveniji. Naslednje vprašanje se je nanašalo predvsem na promocijo in
oglaševanje aplikacije. Vprašanje je bilo naslednje: »Kako skrbeti za promocijo in oglaševanje
mobilne aplikacije?« Mobilno, kakor tudi spletno aplikacijo neprestano oglašujemo preko
Google Adwords sistema, ki je namenjen predvsem pridobivanju uporabnikov in dodatnim
oglaševalskim kampanjam. Sama promocija prav tako poteka na socialnem mediju Facebook.
Za boljšo promocijo pa smo izvedli tudi nagradno igro, kjer smo podeljevali brezplačna darila.
Kakor je težko pridobiti novega uporabnika, je tudi težko prepričati ponudnika za vnos in
ZAKLJUČEK
53
urejanje njegove ponudbe. Ponudnike želimo prepričati za vnos ponudbe v aplikacijo Malcajt
in jim s tem omogočiti dodaten medij, s katerim se lahko promovirajo. Sistem objave ponudbe
ima v ta namen tudi možnost objave ponudbe na enem mestu, katera je vidna na štirih različnih
lokacijah in s tem ponudnikom prihrani veliko časa. Ponudnik lahko tako objavo deli na
socialnem mediju Facebook, na svoji spletni strani, če integrira dodatno kodo, in pa v mobilni
ter spletni aplikaciji Malcajt. Je pa seveda eden izmed pomembnih faktorjev, da uporabniki
samostojno oskrbujejo svoje ponudbe. Pri naslednjem raziskovalnem vprašanju smo se
dotaknili razvojnega orodja, ki bi bilo primerno. Za razvoj mobilne aplikacije smo izbrali
hibridno mobilno aplikacijo na ogrodju Ionic. Vsako razvojno orodje ima določene prednosti
oziroma pomanjkljivosti. Če bi se danes odločali za ponoven razvoj, bi se odločili za razvoj
mobilne aplikacije v obliki mobilne spletne strani. Prednost takega razvoja je predvsem
enostavnejše upravljanje s posodobitvami, izvajanje popravkov na enem mestu in predvsem
enostavnejši nadzor nad vsemi ostalimi operacijskimi sistemi, za katere nudimo mobilno
aplikacijo. Naše zadnje raziskovalno vprašanje se je glasilo: »Ali spletna aplikacija pripomore
k pridobivanju dodatnih uporabnikov?« Aplikacija Malcajt je bila v prvotni obliki zgolj kot
mobilna aplikacija. Njena težava je bila, da ponudnik ni poiskal sebe in pregledal svojih
podatkov, poleg tega pa so bili vsi ponudniki dosegljivi zgolj v mobilni aplikaciji. Z razvojem
spletne predstavitvene aplikacije smo tako vsem spletnim iskalnikom omogočili dodatno
iskanje in prikaz ponudnikov tudi preko spleta. S tem smo seveda pridobili dodatno število
uporabnikov ter zajeli predvsem tiste, ki niso imeli želje uporabljati mobilne aplikacije, kakor
tudi ponudnike, ki so se lahko našli preko spleta in tako lažje promovirali samega sebe.
Tekom razvoja celotnega produkta smo usvojili veliko novega znanja, predvsem iz vidika
razvoja mobilnih aplikacij, saj smo posegli na čisto nov trg. Po drugi strani smo usvojili potek
celotnega razvoja ter vseh njegovih faz. Ugotovili smo tudi, kakšen je najboljši način za
promocijo produkta, ko ga postavimo na trg, in kako pridobiti čim večji delež uporabnikov, kar
pa je seveda najbolj pomemben cilj razvoja takšnega produkta.
55
6 LITERATURA IN VIRI
Agrimbau, T. (2016). Toptal. Developing Mobile Web Apps: When, Why, and How.
Pridobljeno iz https://www.toptal.com/android/developing-mobile-web-apps-when-
why-and-how (9. 4. 2017).
Analytics - overview (2017). Google Analytics Solutions. Pridobljeno iz https://www.google.
com/analytics/analytics/#?modal_active=none (2. 6. 2017).
Arnes (2017). Arnes - povezujemo znanje. Pridobljeno iz https://www.arnes.si/storitve/
omrezne-storitve/ip-povezljivost/ipv6/.
Bootstrap. (2017). Getting started. Bootstrap. Pridobljeno iz http://getbootstrap.com/ (22. 4.
2017).
Cordova, A. (2017). Overview. Apache Cordova. Pridobljeno iz https://cordova.apache.org/
docs/en/latest/guide/overview/ (31. 5. 2017).
Čater, D. (2016). Spletna aplikacija za upravljanje elektronskih knjig (diplomsko delo).
Pridobljeno iz https://dk.um.si/Dokument.php?id=107016 (14. 4. 2017).
Deering, S. (2017). Do you know what a REST API is? SitePoint. Pridobljeno iz
https://www.sitepoint.com/developers-rest-api/ (18. 3. 2017).
Dolinar, J. (2016). Razvoj komunikacijskega prehoda s podporo modernih protokolov za
sistem SCADA (magistrsko delo). Pridobljeno iz https://dk.um.si/Dokument.php?id=
93722 (12. 4. 2017).
Facebook (2017). TechTarget - WhatIs.com. Pridobljeno iz http://whatis.techtarget.com/
definition/Facebook (3. 5. 2017).
Google (2017). Get your ad on Google today. Pridobljeno iz https://adwords.google.com/
home/#?modal_active=none (1. 5. 2017).
Golobič, B. (2016). Razvoj spletnega portala za študente (diplomsko delo). Pridobljeno iz
http://eprints.fri.uni-lj.si/3452/1/63120207-BOGDAN_GOLOBI%C4%8C-
Razvoj_spletnega_portala_za_%C5%A1tudente.pdf (14. 3. 2017).
Google (2017). Access Google APIs more easily. Google API Client Libaries. Pridobljeno iz
https://developers.google.com/api-client-library/ (1. 5. 2017).
Google (2017). Chrome DevTools. Pridobljeno iz https://developers.google.com/web/tools/
chrome-devtools/ (1. 5. 2017).
LITERATURA IN VIRI
57
Hölbl, M. (2011). SSL in afera Diginotar. Monitor. Pridobljeno iz http://www.monitor.si/
clanek/ssl-in-afera-diginotar/124865/?xURL=301 (16. 5. 2017).
Hribar, U. (2009). Razvoj mobilnih tehnologij. Pridobljeno iz http://uploadi.www.ris.org/
editor/1259623431Hribar%20Uros%20-%20Razvoj%20mobilnih%20tehnologij.pdf
(21. 4. 2017).
Ionic (2017). The top open source framework for building amazing mobile apps. Pridobljeno
iz https://ionicframework.com/ (18. 4. 2017).
Kamin, T. (2016). Razvoj programskih rešitev v oblaku za mirko podjetja (diplomsko delo).
Pridobljeno iz https://dk.um.si/Dokument.php?id=97601 (27. 3. 2017).
Kuryliak, O. (2015). Tech in Asia. 3 reasons why hybrid mobile apps are the best. Pridobljeno
iz https://www.techinasia.com/talk/3-reasons-hybrid-mobile-apps (14. 5. 2017).
Lipuš, M. (2011). Realno-časovno spletne aplikacije (diplomsko delo). Pridobljeno iz
https://dk.um.si/Dokument.php?id=21298 (18. 4. 2017).
Loader (2017). Simple Cloud-based LOAD TESTING. Pridobljeno iz https://loader.io/ (12. 4.
2017).
Mitrović, M. (2016). Izdelava spletne aplikacije za nadzor radijskega omrežja (diplomsko
delo). Pridobljeno iz https://dk.um.si/Dokument.php?id=103961 (7. 4. 2017).
Mobilne tehnologije (2017). Infotronika. Pridobljeno iz http://infotronika.org/mobilne-
tehnologije (18. 5. 2017).
MobiLoud. (2017). Native, Web or Hybrid Apps? What's the difference? Pridobljeno iz
https://www.mobiloud.com/blog/native-web-or-hybrid-apps/ (14. 5. 2017).
MonsterTUT. (2017). So... You wanna learn web design? Pridobljeno iz http://monstertut.
com/ (28. 4. 2017).
Mrgole, M. (2013). Ogrodje za optimizacijo indeksov v MySQL bazah podatkov (dipomsko
delo). Pridobljeno iz http://lie.fe.uni-lj.si/diplome/PDF/2013/Diploma_
MatjazMrgole.pdf (21. 4. 2017).
Neoserv. (2017). SSL CERTIFIKATI. Za večjo varnost. Pridobljeno iz https://www.neoserv.
si/ssl-certifikati#faq-4 (21. 5. 2017).
Petek, A. (2017). Programska rešitev za vadbo na delovnem mestu (diplomsko delo).
Pridobljeno iz https://dk.um.si/Dokument.php?id=97862 (14. 4. 2017).
PHPStorm (2017). Lightning-smart PHP IDE. JET BRAINS - PHPStorm. Pridobljeno iz
https://www.jetbrains.com/phpstorm/ (11. 5. 2017).
LITERATURA IN VIRI
59
Pomagalnik (2012). Kaj so SASS, LESS in Stylus? Pridobljeno iz https://www.pomagalnik.
com/izobrazevanje/slovar/kaj-so-sass-less-in-stylus/ (1. 5. 2017).
Promocija in oglaševanje (2017). Promotour - agencija za promocijo turizma. Pridobljeno iz
https://promotour.si/promocija-in-oglasevanje/ (22. 4. 2017).
Rakovič, A. (2016). Razvoj informacijskega sistema za vodenje projektov in opravljenih
delovnih ur na platformi Node.js (diplomsko delo). Pridobljeno iz https://dk.um.si/
Dokument.php?id=101760 (21. 3. 2017).
Rožanc, I. (2008). Agilne metodologije razvoja programske opreme. Ljubljana, Slovenija.
Pridobljeno iz http://studentski.net/gradivo/ulj_fri_ri3_tpo_sno_predavanja_05?r=1
(22. 4. 2017).
Safe (2017). Mobilna naprava. Točka osveščanja o varni rabi interneta in mobilnih naprav za
otroke, najstnike, starše in učitelje. Pridobljeno iz https://safe.si/pojmi/mobilna-
naprava (23. 5. 2017).
Shout Me Loud (2015). Top 10 Mobile Phones Operating Systems. Pridobljeno iz
https://www.shoutmeloud.com/top-mobile-os-overview.html (12. 4. 2017).
Twitter (2017). Help center. Pridobljeno iz https://support.twitter.com/articles/215585 (18. 4.
2017).
What is AWStats (2017). AWStats official web site. Pridobljeno iz http://www.awstats.org/
(16. 4. 2017).
Zupančič, M. (2014). Vse o operacijskem sistemu Windows Phone. Pridobljeno iz
http://www.mobile.si/articles/operacijski-sistem-windows-phone.html (12. 3. 2017).
Žlebič, J. (2016). Razvoj aplikacije za spremljanje zdravega načina življenja (diplomsko
delo). Pridobljeno iz https://dk.um.si/Dokument.php?id=102411 (11. 4. 2017).