Dejan Zidar

FAKULTETA ZA INFORMACIJSKE ŠTUDIJE
V NOVEM MESTU
DIPLOMSKA NALOGA
UNIVERZITENEGA ŠTUDIJSKEGA PROGRAMA PRVE STOPNJE
Dejan
Zidar
Digitalno podpisal Dejan Zidar
DN: c=si, o=state-institutions,
ou=sigen-ca, ou=individuals,
cn=Dejan Zidar,
serialNumber=2469632112012
Razlog: Jaz sem avtor tega
dokumenta
Lokacija: Novo mesto
Datum: 2014.07.14 11:33:29
+02'00'
DEJAN ZIDAR
FAKULTETA ZA INFORMACIJSKE ŠTUDIJE
V NOVEM MESTU
DIPLOMSKA NALOGA
IZBOLJŠAVA ODPRTOKODNE PLATFORME
MOBILNE APLIKACIJE ZA NEPOSREDNO
KOMUNIKACIJO MED PROIZVAJALCI
IN POTROŠNIKI
Mentor: doc. dr. Matej Mertik
Novo mesto, julij 2014
Dejan Zidar
IZJAVA O AVTORSTVU
Podpisani Dejan Zidar, študent FIŠ Novo mesto, izjavljam:

da sem diplomsko nalogo pripravljal samostojno na podlagi virov, ki so navedeni v
diplomski nalogi,

da dovoljujem objavo diplomske naloge v polnem tekstu, v prostem dostopu, na spletni
strani FIŠ oz. v digitalni knjižnici,

da je diplomska naloga, ki sem jo oddal v elektronski obliki, identična tiskani verziji,

da je diplomska naloga lektorirana.
V Novem mestu, dne _________________
Podpis avtorja ______________________
Zahvala
Iskreno se zahvaljujem mentorju doc. dr. Mateju Mertiku za vodenje, strokovno pomoč in
podporo pri pisanju diplomske naloge.
Hvala podjetju Agenda d. o. o. za posredovanje potrebnih informacij ter gradiva,
pomembnega za izvedbo aplikativnega dela diplomske naloge.
Posebna zahvala gre mojim staršem za vso podporo, spodbudne besede in dejanja. Zaradi
njiju lahko gradim in uresničujem svoje sanje.
Zahvaljujem se tudi vsem, ki so mi v tem pomembnem obdobju stali ob strani, me spodbujali
in bili v oporo, ko sem jo najbolj potreboval.
POVZETEK
Odprta koda je metodologija razvoja programske opreme, ki omogoča popoln dostop do
izvorne kode nekega programskega produkta. Je model, ki ponuja sodelovanje skupnosti pri
razvoju programske opreme ter je na voljo vsem za nadaljnji razvoj in izboljšave. V
primerjavi z lastniškim programjem ima učinkovito in dobro podprto razvojno dokumentacijo.
Odprtokodne tehnologije so tudi ena izmed možnosti pri pristopu načrtovanja določene
platforme ali aplikacije. V diplomski nalogi sem raziskal prisotnost poslovnih modelov v
odprtokodnih tehnologijah ter njihov doprinos k učinkovitejšemu načrtovanju in integraciji
mobilnih aplikacij. V aplikativnem delu naloge sem se osredotočil na primer mobilne
aplikacije LOKeT, ki povezuje lokalne proizvajalce hrane in potrošnike. Preučil sem
arhitekturo aplikacije, jo ustrezno dokumentiral in testiral. Pri tem sem analiziral gradnike
aplikacije ter izvedel izboljšave za potrošnika.
KLJUČNE BESEDE: Odprta koda, odprtokodno razvojno okolje, prosto programje,
arhitektura razvojnega okolja, mobilna aplikacija, LOKeT.
ABSTRACT
Open source is a development methodology of software that allows full access to the source
code of a software product. It is a model that offers community involvement in the
development of software and is available to all for the continued development and
improvement. Compared to proprietary software it has an effective and well-supported
development documentation. Open source technologies are also one of the options in the
approach of planning for the platform or application. In this thesis I investigate the presence
of business models in open source technologies and their contribution to effective planning
and integration of mobile applications. I studied architecture of the project and mobile
application LOKeT, which connects local food producers and consumers, and made duly
documentation and tests. In doing so, I adequately analyzed building blocks for applications
and displayed enhancement of the application from consumer perspective.
KEY WORDS: Open Source, Open Source Development Environment, Free Software,
Architecture of Software Development Environment, Mobile Application, LokeT.
KAZALO
1 UVOD................................................................................................................................... 1
1.1 Raziskovalno vprašanje in cilji raziskave ...................................................................... 2
1.2 Metodologija .................................................................................................................. 2
1.3 Pričakovani rezultati ...................................................................................................... 3
2 ODPRTA KODA .................................................................................................................. 3
2.1 Zgodovina odprte kode .................................................................................................. 3
2.2 Odprta koda vs. prosto programje ................................................................................. 5
2.2.1
Definicija odprte kode ............................................................................................ 5
2.2.2
Definicija prostega programja ............................................................................... 6
2.3 Licence prostega programja........................................................................................... 7
2.4 Poslovni modeli v odprti kodi ....................................................................................... 8
2.4.1
Vrste financiranja ................................................................................................... 8
2.4.2
Poslovni modeli ...................................................................................................... 9
2.5 Integracija odprtokodnih razvojnih okolij ................................................................... 14
2.5.1
Primerjava lastniških z odprtokodnimi razvojnimi okolji .................................... 15
2.5.2
HTML5 ................................................................................................................. 20
2.5.3
TYPO3 CMS ......................................................................................................... 22
2.5.4
Titanium ................................................................................................................ 22
3 PREGLED ODPRTOKODNE PLATFORME LOKET IN INTEGRACIJA
DODATNIH FUNKCIONALNOSTI ................................................................................ 24
3.1 Metodologija dela ........................................................................................................ 24
3.2 Projekt LOKeT ............................................................................................................ 24
3.2.1
O mobilni aplikaciji LOKeT ................................................................................. 26
3.2.2
Arhitektura razvojnega okolja LOKeT ................................................................. 28
3.2.3
Tehnične specifikacije razvojnega okolja mobilne aplikacije LOKeT ................. 31
3.2.4
Namestitev gradnikov za razvojno okolje LOKeT ................................................ 32
3.3 Izboljšave funkcionalnosti aplikacije LOKeT ............................................................. 38
3.3.1
Predlogi nadaljnje posodobitve ............................................................................ 39
3.3.2
Implementacija in testiranje delovanja posodobitev ............................................ 40
3.3.3
Pregled predlogov in implementiranih izboljšav ................................................. 53
4 ZAKLJUČEK ..................................................................................................................... 54
5 LITERATURA IN VIRI..................................................................................................... 57
PRILOGA
KAZALO SLIK
Slika 2.1: Tržni delež spletnih brskalnikov po mesecih ........................................................... 14
Slika 2.2: Tržni delež najpogosteje uporabljenih CMS-sistemov ............................................ 17
Slika 2.3: Delež razvijalcev medplatformnih razvojnih okolij ................................................. 19
Slika 2.4: Prikaz upada števila spletnih strani, ki uporabljajo Flash ........................................ 21
Slika 3.1: Koncept grafičnega uporabniškega vmesnika mobilne aplikacije LOKeT .............. 27
Slika 3.2: Posnetki zaslona mobilne aplikacije LOKeT ........................................................... 28
Slika 3.3: Osnovna storitveno usmerjena arhitektura ............................................................... 28
Slika 3.4: Splošna shema izmenjave podatkov aplikacije LOKeT ........................................... 29
Slika 3.5: Splošna shema izmenjave podatkov z vidika razvijalca .......................................... 30
Slika 3.6: Shema TYPO3 CMS-arhitekture na spletnem strežniku ......................................... 31
Slika 3.7: Prikaz izgleda TYPO3 CMS, ki je nameščen na FIŠ-evem spletnem strežniku ...... 33
Slika 3.8: Prikaz seznama kmetij.............................................................................................. 34
Slika 3.9: Prikaz podrobnosti o kmetiji .................................................................................... 35
Slika 3.10: Prikaz izgleda Appcelerator Titanium Studia z uvoženim projektom LOKeT ...... 37
Slika 3.11: Android emulator z naloženo mobilno aplikacijo LOKeT..................................... 38
Slika 3.12: Pogled na vmesnik na manjšem zaslonu pred izboljšavo ...................................... 41
Slika 3.13: Pogled na vmesnik na večjem zaslonu pred izboljšavo ......................................... 41
Slika 3.14: Obvestilo, ki ga javi aplikacija pri izboru kategorije brez vnosov ......................... 42
Slika 3.15: Pomanjkljivost pri pogledu na informacije o avtorju aplikacije ............................ 42
Slika 3.16: Del CSS-skripte z elementi oblikovanja spustnih seznamov ................................. 44
Slika 3.17: Izgled puščic, uporabljenih ob desni strani spustnih seznamov ............................. 44
Slika 3.18: Prilagojen privzeti napis v spustnem seznamu za izbiro kategorije izdelkov ........ 45
Slika 3.19: Prilagojen izgled spustnih seznamov na manjšem zaslonu .................................... 46
Slika 3.20: Prilagojen izgled spustnih seznamov na večjem zaslonu ....................................... 46
Slika 3.21: Na novo definirana funkcija »errorAction« ........................................................... 48
Slika 3.22: Prilagoditev predloge spletnega pogleda za prikaz napisa ..................................... 49
Slika 3.23: Obvestilo ob izboru kategorije brez vnosov ........................................................... 49
Slika 3.24: Pogled na urejevalno okolje razdelka »Info« ......................................................... 50
Slika 3.25: Vmesnik za dodajanje zunanjih povezav ............................................................... 51
Slika 3.26: Izboljšan pogled na informacije o podjetju ............................................................ 51
Slika 3.27: Del kode za preprečevanje pošiljanja neželene elektronske pošte ......................... 52
KAZALO TABEL
Tabela 2.1: Primerjava deleža najbolj razširjenih spletnih strežnikov. ...................................... 4
Tabela 2.2: Razlike med odprtokodnimi in lastniškimi programi ............................................ 16
Tabela 2.3: Različice spletnih brskalnikov, ki podpirajo vsaj osnovne HTML5-elemente. .... 21
Tabela 3.1: Pregled predlogov in implementacija izboljšav..................................................... 53
1 UVOD
Odprta koda je metodologija razvoja programske opreme. Že samo ime pove, da odprta koda
omogoča popoln dostop do izvorne kode nekega programskega produkta. Je model, ki ponuja
sodelovanje skupnosti pri razvoju nekega izdelka in namesto prepovedi deljenja izvorne kode
le-to daje na voljo vsem za razvoj in izboljšave v prihodnje. Kot taka je lahko ena izmed
možnosti pri načrtovanju določene platforme ali aplikacije. Odprta koda v osnovi ni
brezplačna, je pa trajnostno naravnana paradigma, ki je odločilno vplivala na razvoj interneta
oziroma spleta in tudi danes predstavlja ključen razvojni element, vzpostavlja nove priložnosti
in jo kot tako prepoznavajo največji ponudniki spletnih in mobilnih storitev.
Aplikacija LOKeT (Lokalna e-tržnica) je mobilna aplikacija, namenjena pridelovalcem in
potrošnikom za vpogled v ponudbo lokalne hrane na pilotnem območju Dolenjske in Bele
krajine. Pridelovalci so lokalni ponudniki hrane, turistične kmetije, vrtnarji, družinske kmetije
itd. S pomočjo mobilne aplikacije LOKeT si lahko ustvarijo svojo lokalno tržnico. Potrošniki
pa imajo možnost, da si ustvarijo izlet in nakup tedenske košarice v svoji okolici. LOKeT je
nastal na odprtokodni paradigmi in je na voljo brezplačno, v spletni trgovini Google Play, za
mobilne naprave z operacijskim sistemom Android. Za kupce in potrošnike deluje tudi na
sistemih Apple iOS in Microsoft Windows Phone.
LOKeT je zasnovan kot pilotna mobilna storitev na področju lokalnega trženja hrane in za
podporo drugačnemu pristopu, in sicer trženje od spodaj navzgor. Projekt LOKeT predstavlja
odprtokodno platformo, kjer se proizvajalci in potrošniki lokalno pridelane hrane lahko
enostavno vključijo s pomočjo uporabe preproste mobilne aplikacije. Omogoča pa tudi, da se
lahko kdorkoli vključi v projekt in ponudi svoje programske izboljšave, ki omogočajo
nadaljnji razvoj platforme. V tej nalogi se bom osredotočil na vzpostavitev razvojnega okolja
LOKeT z odprtokodnimi tehnologijami in prikazal možne izboljšave platforme na podlagi
izbranega primera.
V prvem delu diplomske naloge bom predstavil odprto kodo, poslovne modele v odprti kodi,
kako poteka integracija odprtokodnega razvojnega okolja in kakšne možnosti imamo pri
integraciji le-teh.
V nadaljevanju bom natančneje opisal projekt in mobilno aplikacijo LOKeT, njen namen,
uporabo, tehnične lastnosti in način delovanja. Predstavil bom tudi arhitekturo razvojnega
1
okolja LOKeT, postopek vzpostavitve razvojnega okolja LOKeT in postopek namestitve
gradnikov v to razvojno okolje. V zadnjem delu diplomske naloge pa se bom posvetil analizi
pomanjkljivosti mobilne aplikacije LOKeT ter predlagal svoje izboljšave. Nekatere izboljšave
bom izvedel, testiral in rezultate implementacije tudi predstavil.
Raziskovalno vprašanje in cilji raziskave
1.1
Raziskovalno vprašanje »Ali odprtokodne tehnologije doprinesejo k učinkovitejši integraciji
razvojnih okolij v okviru načrtovanja mobilnih aplikacij?« je temeljno vprašanje projekta
LOKeT. V nalogi bo podan odgovor in možnost izboljšave platforme.
Na podlagi raziskovalnega vprašanja sem definiral cilje raziskave:
1.2

pregled odprtokodnih tehnologij,

integracija odprtokodnih platform v razvojno okolje za izdelavo mobilne aplikacije,

pregled funkcionalnosti mobilne aplikacije LOKeT in

izboljšava funkcionalnosti mobilne aplikacije LOKeT.
Metodologija
Teoretični del diplomske naloge je sestavljen na podlagi pregleda ustreznih virov oziroma
literature s preiskovanega področja. Tu so predvsem opisani potrebni ključni koncepti za
razumevanje raziskovanega področja.
Aplikativni del diplomske naloge je sestavljen iz analize postavljanja razvojnega in testnega
okolja za celotno mobilno aplikacijo LOKeT, pridobivanja testnih in kasneje tudi pravih
podatkov za izvedbo optimalnega testiranja ter poročila o dejanski izvedbi izboljšave k
projektu LOKeT in testiranja posameznih izboljšav pri sami uporabi mobilne aplikacije.
Metodologija za izvedbo te diplomske naloge zajema študijo primera, načrtovanje vmesnikov
mobilne aplikacije, integracijo razvojnih okolij, izvedbo izboljšav mobilne aplikacije s
programiranjem skript na strežniku in testiranje uporabnosti izvedenih izboljšav.
2
1.3
Pričakovani rezultati
Odprtokodne tehnologije in platforme so predvsem lažje in prosto dostopne v primerjavi z
lastniškim programjem ter imajo učinkovito in dobro podprto dokumentacijo, tako da si na
čim lažji način lahko pomagamo pri razvoju lastnih aplikacij.
Primarni pričakovani rezultat je torej, da imajo odprtokodne tehnologije in platforme
pozitiven doprinos k učinkovitejši integraciji različnih razvojnih okolij v okviru načrtovanja
mobilnih aplikacij.
2 ODPRTA KODA
Izraz odprta koda se v najširšem pomenu ne nanaša le na programsko kodo. Uporablja se tudi
za intelektualno lastnino v javni lasti, ki je podana v različnih oblikah, kot na primer v obliki
znanja, informacij ali načrtov izdelave (Center odprte kode Slovenije, 12. junij 2014). Izraz
odprtokodna programska oprema označuje programsko opremo, ki jo kdorkoli lahko
svobodno uporablja, spreminja in deli v spremenjeni ali nespremenjeni obliki. Odprtokodna
programska oprema je produkt mnogih in je distribuirana pod različnimi licencami, ki
sovpadajo z definicijo odprte kode (The Open Source Initiative, 2014).
2.1
Zgodovina odprte kode
V tem poglavju so predstavljeni pomembni mejniki v zgodovini razvoja odprtokodne
programske opreme. Zgodovina odprte kode je tesno povezana z razvojem treh operacijskih
sistemov: UNIX, GNU (GNU's Not UNIX) in Linux. To so bili projekti, ki so oblikovali
prvotno identiteto odprtokodne skupnosti, katere začetki segajo v leto 1960 in je še vedno
prisotna. V tem poglavju so predstavljeni pomembni mejniki v zgodovini razvoja
odprtokodne programske opreme.
Šestdeseta leta so bila obdobje velikih računalnikov in IBM-a (International Business
Machines Corporation). V tem obdobju je bila programska oprema distribuirana skupaj s
strojno opremo in večinoma tudi z izvorno kodo.
3
V sedemdesetih letih se je programska oprema začela prodajati ločeno in kmalu so lastniške
licence oziroma distribucije, ki niso vključevale izvorne kode in dajale dovoljenja za
spreminjanje ali redistribucijo, postale edina možnost.
V letih med 1970 in 1980 so se začela dela na razvoju UNIX-operacijskega sistema, ki je
kasneje povzročil nastanek BSD UNIX (Berkeley Software Distribution UNIX). Njegov
razvoj je vzporedno z rojstvom interneta služil kot področje testiranja za nove načine
razvijanja v sodelovanju, ki je kasneje postal pogost v svetu brezplačne programske opreme.
Leta 1984 je Richard Stallman začel delati na projektu GNU. Ustanovil je organizacijo FSF
(Free Software Foundation), pisal GPL-licenco (General Public License) in začel postavljati
temelje prostega programja, kot ga poznamo danes.
Leta 1991 je Linus Torvalds začel razvijati jedro operacijskega sistema Linux (Linux kernel),
ta pa je pomagal dopolniti sistem GNU, ki je vseboval že skoraj vse potrebne dele, da postane
sistem podoben UNIX-u: C prevajalnik, imenovan GCC, urejevalnik besedil Emacs, okenski
sistem X Window itd. Tako so nastali GNU Linux operacijski sistemi, iz katerih so se razvile
različne distribucije, kot so Red Hat Linux in Debian GNU Linux. Proti koncu devetdesetih
let so bili ti sistemi dopolnjeni z dvema namiznima okoljema KDE (K Desktop Environment)
in GNOME (GNU Network Object Model Environment) (González-Barahona in drugi 2009,
str. 39).
V zadnjem desetletju pa je brezplačna programska oprema postala vodilna v nekaterih
sektorjih, kot na primer pri spletnih strežnikih prevladuje Apache, kar je razvidno iz Tabele
2.1. Pojavila pa so se tudi nova orodja, ki zajemajo veliko število IT-zahtev (GonzálezBarahona in drugi 2009, str. 39).
Tabela 2.1: Primerjava deleža najbolj razširjenih spletnih strežnikov.
Razvijalec
Januar 2014
Odstotek
Februar 2014
Odstotek
Sprememba
Apache
358.669.012
41,64
351.700.572
38,22
-3,41
Microsoft
253.438.493
29,42
301.781.997
32,80
3,38
nginx
124.052.996
14,40
138.056.444
15,00
0,60
21.280.639
2,47
21.129.509
2,30
-0,17
Google
Vir: Netcraft (16. junij 2014)
4
2.2
Odprta koda vs. prosto programje
Izraz prosto programje (angl. Free software) in odprtokodna programska oprema (angl. Open
source software) sta dva različna izraza, ki opisujeta isto stvar. To je programska oprema,
izdana pod licenco, ki zagotavlja točno določene, specifične stopnje prostosti. V praksi
odprtokodna programska oprema pomeni malo šibkejše merilo od prostega programja. Vso
obstoječo prosto programsko opremo bi lahko označili kot odprtokodno programsko opremo.
Tudi skoraj vsa odprtokodna programska oprema je prosta programska oprema, vendar
obstajajo izjeme, saj so nekatere odprtokodne licence preveč omejene in se zato ne štejejo za
proste licence. Sama razlika med prostim in odprtokodnim programjem je vezana na
interpretacijo posameznika (GNU Operating System, 14. junij 2014).
2.2.1 Definicija odprte kode
Izraz odprta koda (angl. Open source) so leta 1998 definirali ustanovitelji organizacije OSI
(Open Source Initiative), ki so podpirali razvoj in distribucijo proste programske opreme.
Niso pa se strinjali z organizacijo FSF o tem, kako promovirati prosto programsko opremo
(The Open Source Initiative, 11. junij 2014).
Po definiciji iniciative OSI odprta koda ne pomeni le dostop do izvorne kode, ampak morajo
pogoji licence distribucije odprtokodne programske opreme sovpadati s spodnjimi kriteriji:
1. Svobodna redistribucija: Licenca ne sme omejevati in prepovedovati prodajo ali
predajo programske opreme kot komponente združenih programskih paketov in ne
sme zahtevati kakršnegakoli plačila.
2. Izvorna koda: Program mora vsebovati izvorno kodo in dovoljevati njeno distribucijo.
Če se izvorna koda ne distribuira skupaj s programom, pa mora biti javno in
brezplačno dostopna. Oblika izvorne kode mora omogočati spreminjanje le-te,
kakršnokoli zakrivanje ali drugačno oteževanje njene uporabe pa je prepovedano.
3. Izpeljana dela: Licenca mora dovoljevati spreminjanje in izdelavo izpeljanih
programskih rešitev in jim dovoljuje distribuiranje pod enakimi licenčnimi pogoji, kot
jih ima izvirna programska oprema.
4. Integriteta avtorjeve izvorne kode: Licenca lahko prepoveduje distribucijo izpeljanih
izdelkov pod enakim naziv ali oznako verzije. Prepoved distribucije izvorne kode v
5
spremenjeni obliki je sprejemljiva, če licenca dovoljuje distribucijo popravkov z
namenom spreminjanja programa v času prevajanja.
5. Prepoved diskriminacije posameznikov ali skupine posameznikov.
6. Prepoved diskriminacije posameznih področij dejavnosti: Licenca ne sme nikogar
omejevati pri uporabi programa na posameznem področju dejavnosti. Na primer, ne
sme omejevati uporabe programa v poslovne ali komercialne namene.
7. Distribucija licence: Licenčne pravice programa se morajo nanašati na vsakogar, ki
prepiše ali prejme programsko rešitev brez dodatnih postopkov licenciranja.
8. Licenca ne sme biti specifična za produkt: Pravice, vezane na program, ne smejo biti
odvisne od tega, ali je program del določene programske distribucije. Če je program
odstranjen iz distribucije in uporabljen ali distribuiran znotraj pogojev programske
licence, morajo imeti vsi, katerim je bil program redistribuiran, enake pravice kot tisti,
ki so jim bile dodeljene pravice za izvirno programsko distribucijo.
9. Licenca ne sme omejevati druge programske opreme: Licenca ne sme omejevati druge
programske opreme, ki je distribuirana skupaj z licencirano programsko opremo. Na
primer, licenca ne sme zahtevati, da mora biti vsa programska oprema, ki je
distribuirana na istem mediju, prav tako odprtokodna.
10. Licenca mora biti nevtralna do tehnologije: Nobena določba licence ne sme temeljiti
na katerikoli posamezni tehnologiji ali slogu vmesnika (The Open Source Initiative,
11. junij 2014).
2.2.2
Definicija prostega programja
Izraz prosto programje so prvič definirali v organizaciji FSF, ki jo je ustanovil Richard
Matthew Stallman leta 1985, in sicer z namenom, da zaščiti in promovira prosto programje
(The Open Source Initiative, 11. junij 2014). FSF si prizadeva zagotoviti svobodo
uporabnikom računalnikov s spodbujanjem razvoja in uporabe proste programske opreme in
dokumentacije, pri čemer je predvsem osredotočen na operacijski sistem GNU (Free Software
Foundation, 2014). Po definiciji Richarda Stallmana se prosto programje nanaša na prostost
uporabnika, da poganja, prepisuje, razširja, preučuje, spreminja in izboljšuje programje.
Natančneje se nanaša na štiri vrste prostosti, ki so jih deležni uporabniki programja, te pa so:

Pravica poganjanja programa kjerkoli, za kakršnikoli namen in kadarkoli.
6

Pravica preučevanja, kako program deluje in prilagajanja svojim potrebam. Predpogoj
za to je dostop do izvorne kode.

Pravica do razširjanja izvodov, da lahko pomagate svojemu bližnjemu.

Pravica izboljšati program in javno izdati svoje izboljšave za dobro javnosti.
Predpogoj za to je dostop do izvorne kode (GNU Operating System, 14. junij 2014).
2.3
Licence prostega programja
S pravnega vidika je status prostega in lastniškega programja dokaj podoben, saj sta oba
distribuirana na podlagi licenc. Razlika se tako kaže predvsem v tem, kaj posamezna licenca
dovoljuje. V primeru licenc prostega programja, ki ne omejujejo njihove uporabe, distribucije
in modifikacije, so praviloma podani pogoji oziroma zahteve, ki morajo biti izpolnjene v
primeru, da želimo redistribuirati program. Tako je na primer mogoče zahtevati spremljanje
indikatorjev avtorstva ali vključevanje izvornih kod, če želimo redistribuirati program
(González-Barahona in drugi 2009, str. 61).
Za prosto programje se pri nas najpogosteje uporabljajo sledeče licence:

GPL (General Public License): To je prvi model licence odprte kode, ki je nastal v
okviru projekta GNU. GPL hkrati predstavlja vzorčni model licence odprte kode, saj
je v nasprotju z do tedaj znanimi licencami programske opreme prva licenca, ki je
namesto omejevanja distribucije in poseganja v kodo z licenco le-to omogočila. Pod
pogoji GPL je distribuirana večina prostega programja, saj kot prva, osnovna in
splošna licenca zagotavlja splošno uporabo. Glavni adut GPL je virusni efekt copyleft.

LGPL (Lesser General Public License): Ta licenca se od GPL razlikuje v tem, da
omogoča povezovanje z neprostimi moduli. LGPL je bila oblikovana za knjižnice, in
sicer z namenom pospeševanja distribucije prostega programja. OSI je LGPL potrdila
kot odprtokodno licenco, nasprotno pa FSF meni, da je LGPG škodljiva in je zato tudi
ne podpira.

BSD (Berkeley Software Distribution): Ta licenca dovoljuje skoraj vse. BSD lahko
spremembe programske opreme naredijo zasebne, s čimer se BSD razlikujejo od GPL.

Apache: Ta licenca je bila razvita za distribucijo programske kode istoimenskega
spletnega strežnika, ki pa se lahko uporablja tudi pri drugih programskih opremah.
7

PHP: Ta licenca je bila razvita za distribucijo programskega jezika PHP (Hypertext
Preprocessor), ki se pogosto uporablja pri gradnji dinamičnih spletnih strani in redistribuciji ter vključuje izvorne kode, pogojene s posameznimi posebnimi določbami.

MPL (Mozilla Public License): To licenco je v odprtokodnem načinu razvila
korporacija Netscape kot obliko svojega brskalnika Netscape Navigator. MPL
omogoča, da določene modifikacije postanejo zasebne. Potrebno je poudariti, da se kot
modifikacijo šteje vsaka sprememba, ki je del originalnega programa ali derivatna
različica, ki vsebuje del originalne izvorne kode. To pomeni, da lahko postanejo
zasebne zgolj tiste derivatne različice, ki vsebujejo povsem novo kodo. Številna
podjetja so MPL licenco nekoliko nadgradila ter jo uporabila za izdelavo svoje
različice programov. Kot primer tako nastale licence lahko navedemo na primer Nokia
Open Source License in Interbase License (Šavrič 2011, str. 28).

MIT (Massachusetts Institute of Technology) licenca dovoljuje brezplačno upravljanje
s pridobljeno kopijo izvorne kode brez kakršnihkoli omejitev. Torej ima vsak pravico,
da programsko kodo uporablja, kopira, prilagaja, združuje, objavlja, distribuira, ji
dodaja podlicence in ima možnost prodati programsko kodo naprej. Vse to je
dovoljeno pod pogojem, da se v vse nadaljnje kopije oziroma distribucije vključi MITlicenco (The Open Source Initiative, 11. junij 2014).
2.4
Poslovni modeli v odprti kodi
2.4.1
Vrste financiranja
Odprtokodna programska oprema je razvita na različne načine in z uporabo mehanizmov za
zagotavljanje sredstev, močno pa se razlikujejo od primera do primera. Vsak odprtokodni
projekt ima svoj način financiranja. Tako imamo na eni strani odprtokodne projekte, ki so
lahko odvisni izključno od prostovoljnega dela razvijalcev, na drugi strani pa projekte, v
celoti odvisne od financiranja podjetja, ki ga zanima razvoj produkta in zato krije tudi vse
stroške, povezane z njegovim nastajanjem. Zato je potrebno poznati tudi vrste financiranja
odprtokodnih projektov, v kolikor želimo razumeti poslovne modele v odprti kodi.
Najpogostejše vrste zunanjega financiranja so naslednje:

Javno financiranje je posebna vrsta financiranja odprtokodnih projektov, kjer je
finančni podpornik vlada ali pa javni zavod. Pri tej vrsti financiranja ponavadi organ
8
financiranja ne zahteva neposredne povrnitve naložbe. Kljub temu pa ima jasno
zastavljene cilje, ki jih želi doseči s pomočjo naložbe v odprtokodni projekt,
s
katerimi si na daljši rok zagotovi povrnitev naložbe.

Privatno neprofitno financiranje ima podobne značilnosti kot javno financiranje. Tega
načina financiranja se najpogosteje poslužujejo nevladne organizacije. K financiranju
jih motivira razvoj odprtokodne programske opreme, namenjene uporabi v določeni
sferi, ki je relevantna za organizacijo ali pa njen doprinos k reševanju problema, s
katerim se ukvarja nevladna organizacija.

Financiranje s strani nekoga, ki zahteva izboljšave. Te vrste financiranja se
poslužujejo podjetja zaradi potrebe po izboljšavi uporabljane odprtokodne programske
opreme.

Financiranje zaradi ugodnosti uporablja organ financiranja za pridobivanje koristi,
povezanih z razvojem financiranega programa.

Financiranje kot notranja naložba je značilno za podjetja, ki razvijajo odprtokodno
programsko opremo kot del njihovega poslovnega modela.

Drugi načini financiranja so:
o uporaba trga za ustvarjanje stika med razvijalci in strankami,
o financiranja projekta s prodajo obveznic,
o zadruge za razvijalce in
o donacije sistema (González-Barahona in drugi 2009, str. 66−71).
Vendar ne smemo pozabiti, da so to le nekateri od načinov za pridobivanje sredstev za
projekte odprtokodne programske opreme. Najpomembnejši pa je seveda prostovoljno delo
številnih razvijalcev.
2.4.2 Poslovni modeli
Na splošno lahko rečemo, da je veliko poslovnih modelov preučevanih okoli brezplačne
programske opreme. Nekateri izmed teh so bolj klasični, drugi bolj inovativni. Ravno tako pa
obstaja več klasifikacij poslovnih modelov. Na podlagi klasifikacij poslovnih modelov, ki so
predstavljene v tem poglavju, in usmerjene tematike te naloge, bo v posamezne kategorije
umeščen tudi celoten projekt LOKeT.
9
2.4.2.1 Klasifikacija po Barahoni, Pascualu in Roblesu
J. González-Barahona, J. Seone Pascual in G. Robles so poslovne modele razdelili v
kategorije:

»Boljše poznavanje« (angl. Better knowledge): Podjetje, ki sledi temu poslovnemu
modelu, skuša ustvariti dobiček s svojim poznavanjem brezplačnega izdelka ali nabora
izdelkov. Tako bo prihodke podjetja predstavljala prodaja storitev, povezanih z
znanjem razvoja, temelječega na produktu, spremembah, prilagajanju, namestitvi in
integraciji z ostalimi produkti. Konkurenčna prednost podjetja je tesno povezana z
njegovim boljšim poznavanjem produkta. Iz tega sledi, da bo podjetje bolje
pozicionirano, če je proizvajalec ali aktivni udeleženec v projektu izdelave
programskega izdelka. To je tudi eden izmed razlogov, da so podjetja, ki se
poslužujejo tega poslovnega modela, aktivni udeleženci v projektih, povezanih s
programsko opremo, za katere ponujajo in prodajajo storitve.

»Boljše znanje z omejitvami« (angl. Better knowledge with limitations): Ti modeli so
podobni modelom boljšega poznavanja, vendar pa se od slednjih razlikujejo v tem, da
skušajo omejiti konkurenco, s katero bi se jim bilo mogoče potrebno soočiti. Tako
podjetja, ki se poslužujejo uporabe teh modelov, poskušajo ovirati in omejevati
konkurenco s pomočjo patentov lastniških licenc. Ponavadi se dotikajo majhnega a
temeljnega dela produkta. Zato lahko na to obliko poslovnih modelov gledamo kot na
mešanico med odprtokodno programsko opremo in lastniško programsko opremo.

»Vir brezplačne programske opreme izdelka« (angl. Source of a free software
product): Ta model je podoben tistemu, ki temelji na boljšem poznavanju, vendar s
specializacijo. To pomeni, da je podjetje z uporabo tega modela skoraj v celoti
proizvajalec odprtokodne programske opreme. Seveda se konkurenčna prednost
povečuje, v kolikor je podjetje razvijalec povpraševanega izdelka, nadzira njegov
razvoj in ga poseduje pred konkurenco. Vse to podjetje približa strankam, ki
potrebujejo storitve tega programa. Poleg tega ima ta poslovni model lahko pozitiven
učinek na oblikovanje podobe podjetja, saj je podjetje dokazalo svoje razvojne
potenciale z razvojem in vzdrževanjem povpraševane aplikacije, kar je lahko koristno
pri prepričevanju strank o kompetencah podjetja. Prav tako ta poslovni model
pripomore k ustvarjanju ugleda v odprtokodni skupnosti, saj skupnost od podjetja
prejme novo odprtokodno programsko opremo, ta pa postane del skupne domene.
10

»Izvor izdelka z omejitvami« (angl. Product source with limitations): Ta model je
podoben prejšnjemu, vendar pa za razliko od prejšnjega sprejema ukrepe za
omejevanje konkurence ali za povečanje prihodkov. Najpogostejši omejitvi sta:
začasna lastniška distribucija, ki je kasneje objavljena kot odprtokodna, ter začasna
omejena distribucija.

»Posebne licence« (angl. Special licences): V skladu s temi modeli podjetje proizvaja
izdelek, ki ga distribuira pod dvema ali več licencami. Vsaj ena izmed njih je licenca
prostega programja, ostale pa so običajno lastniške in dovoljujejo prodajo proizvoda
na bolj ali manj tradicionalen način. Običajno se to prodajo dopolnjuje s prodajo
svetovalnih storitev in razvojem ter izboljšavami prodajanega izdelka. Na primer,
podjetje lahko distribuira izdelek kot brezplačno programsko opremo, pod GNU GPLlicenco, vendar sočasno ponuja tudi lastniško različico za tiste, ki ne želijo pogoje
GPL-licence. To se zgodi, ko želijo integrirati izdelek z lastniško programsko opremo,
vendar jim je to na podlagi GPL onemogočeno.

»Prodaja blagovne znamke« (angl. Brand sale): Čeprav je mogoče pridobiti zelo
podobne izdelke za precej manj denarja, obstaja še vedno veliko število strank, ki so
pripravljene dodatno plačati za nakup blagovne znamke. To načelo so sprejela
podjetja, ki vlagajo v vzpostavitev blagovne znamke z dobro in visoko prepoznavno
podobo. Prepoznavnost jim tako omogoča prodajo odprtokodne programske opreme z
zadostno maržo. V mnogih primerih podjetja ne prodajajo le proizvodov, temveč tudi
storitve, ki jim stranke pripisujejo dodano vrednost (González-Barahona in drugi
2009, str. 73−79).
Projekt LOKeT je odprtokoden in ga glede na podano klasifikacijo lahko umestimo v
poslovni model kot vir brezplačne programske opreme izdelka.
2.4.2.2 Klasifikacija po Heckerju
Frank Hecker je bil eden izmed prvih avtorjev klasifikacije poslovnih modelov v odprti kodi.
Njegova klasifikacija je bila podana leta 1998 in razlikuje med osmimi različnimi poslovnimi
modeli. Ti modeli so:

»Podporni prodajalci« (angl. Support Sellers): Pri tem poslovnem modelu
predstavljajo prihodke medijski distributerji, blagovne znamke, razna usposabljanja,
11
svetovanja, razvoj po meri in postprodajna podpora, namesto tradicionalnih prihodkov
licenc.

»Izgubljeno vodstvo« (angl. Loss Leader): Ta poslovni model uporablja brezplačne
odprtokodne produkte brez definiranega vodstva za razvoj tradicionalne komercialne
programske opreme.

»Zunanji gradnik« (angl. Widget Frosting): Ta model uporabljajo podjetja, ki so v
poslovnem okolju predvsem z namenom prodaje strojne opreme in pri tem uporabljajo
predvsem odprtokodne modele za programsko opremo.

»Ponujanje dodatkov« (angl Accesorizing): Podjetja, ki distribuirajo knjige,
računalniško strojno opremo in ostale fizične predmete, ki podpirajo ter so povezane z
odprtokodno programsko opremo, se poslužujejo tega poslovnega modela.

»Omogočevalec storitev« (angl. Service Enabler): Pri tem modelu se ustvarja in
distribuira dostop do spletnih storitev odprtokodne programske opreme, ki ustvarja
prihodek.

»Licenceranja blagovnih znamk« (angl. Brand Licensing): Pri tem modelu podjetje
drugim podjetjem zaračunava pravice do uporabe blagovnih znamk pri ustvarjanju
derivatov.

»Prodaj, osvobodi« (angl. Sell It, Free It): To je poslovni model, kjer podjetje izdela
programsko opremo kot tradicionalni komercialni izdelek, nato pa po potrebi ta
izdelek pretvori v odprtokodnega.

»Franšiza programske opreme« (angl. Software Franchising): Pri tem modelu podjetje
dovoljuje drugim, da uporabljajo njihove blagovne znamke in njihove logotipe pri
ustvarjanju povezav med organizacijami, ki se ukvarjajo s prilagojenim razvojem
programske opreme (Hecker, 1999).
Glede na Heckerjevo klasifikacijo lahko projekt LOKeT umestimo v poslovni model
ponujanja dodatkov, saj z njegovo pomočjo poteka prodaja in izmenjava različnih izdelkov.
2.4.2.3 Klasifikacija poslovnih modelov po Blankenhornu
Klasifikacija poslovnih modelov po Dani Blankenhornu:

»Podporna oprema« (angl. Suport Ware): Ta poslovni model uporablja politiko, ki se
glasi: »Plačajte nam in mi poskrbimo za podporo programske opreme.« Omenjen
poslovni model porablja Red Hat.
12

»Izdelki« (angl. Product Ware): Pri tem poslovnem modelu gre za prodajo naprave, na
kateri je naložena programska oprema, ki je brezplačna. Tak primer so telefoni, ki
uporabljajo operacijski sistem Android.

»Oblačne storitve« (angl. Cloud Ware): Pri tem poslovnem modelu se programska
oprema nahaja v oblaku. Potrošnik kupi ali najame oblačno storitev in ne same
programske opreme. Ta poslovni model uporablja SugarCRM.

»Projekt« (angl. Project Ware): Ta poslovni model se poslužuje prodaje storitve
celotnega projekta. Tega modela se pogoto poslužuje IBM.

»Program kot storitev« (angl. SaaS Ware): Pri tem poslovnem modelu podjetja
ponujajo najem storitev programske opreme, in sicer ponujajo urni, mesečni in letni
najem. Ta poslovni model je zelo priljubljen, poslužuje pa se ga tudi Zoho in številna
ostala podjetja.

»Oglaševanje« (angl. Ad Ware): To je brezplačna različica poslovnega modela
»Program kot storitev«. Pri tem poslovnem modelu uporabnik ne plačuje uporabe
storitve programske opreme. Namesto tega plača storitve oglaševalec. Google je
podjetje, za katerega je značilen ta poslovni model, poleg Googla pa se ga poslužuje še
veliko podjetij, kot naprimer ZDNet.

»Sponzorstvo« (angl. Sugar Daddy Ware): Poslovni model uporablja določena
sredstva nadzornega podjetja. Primer tega poslovnega modela je značilen za Firefox,
Eclipse, OpenOffice itd.

»Fundacija« (angl. Foundation Ware): Pri tem poslovnem modelu ima programska
oprema svojo fundacijo, s pomočjo katere se financira. Tega poslovnega modela se
poslužuje Linux, Apache in tudi Wikipedia.

»Zbiranje donacij« (angl. Beg Ware): Tega poslovnega modela se poslužujejo
podjetja, ki prosijo za donacije in sponzorstvo. Ta model je pogosto uporabljen pri
manjših projektih.

»Dodatki« (angl. Tchotchke Ware): Pri tem poslovnem modelu podjetje ustvarja
prihodek s prodajo dodatkov.

»Skleniti pogodbo« (angl. Let's Make a Deal Ware): Pri tem poslovnem modelu
razvijalci programske opreme sami financirajo projekt, dokler ne najdejo druge
rešitve. Na tak način sta začeli s poslovanjem tudi podjetji Wordpress in Drupal
(ZDNet, 2009).
13
Glede na klasifikacijo Blankenhorna bi lahko projekt LOKeT umestili v poslovni model
oblačne storitve in sklenitev pogodbe, vendar v ozadju ni predvidenega prihodkovnega
modela.
2.5
Integracija odprtokodnih razvojnih okolij
V zgodovini računalniškega programja je bila lastniška programska oprema glavna nosilka
razvoja. Komercialna uspešnost lastniških programov je v preteklosti ponujala več sredstev za
inovacije, danes pa ima še vedno močan položaj na trgu, kjer se pojavlja tudi čedalje več
odprtokodnih konkurentov, kateri sicer na začetku hitremu razvoju programske opreme niso
mogli slediti. Sedanji uspeh lastniškega programja temelji predvsem na prodajnem osebju,
velikem vložku v oglaševanje, lobiranju, pa tudi na starih ter prepoznavnih lovorikah. Številne
nove ideje se v sodobnih časih rojevajo ravno v odprtokodnih projektih. Odprta koda je tako
čedalje pogosteje nosilec razvoja, lastniško programje pa je marsikdaj sledilec. Dober primer
tovrstnega sledenja so spletni brskalniki. Odprtokodni projekti počasi, vendar zanesljivo in
čedalje bolj pridobivajo pomen v svetu programja (Center odprte kode Slovenije, 12. junij
2014).
Slika 2.1 prikazuje dinamiko tržnega deleža uporabe različnih spletnih brskalnikov v zadnjih
sedmih letih. Opazimo izrazito rast uporabe odprtokodnega brskalnika Chrome in upad
uporabe lastniškega spletnega brskalnika Internet Explorer.
Slika 2.1: Tržni delež spletnih brskalnikov po mesecih
Vir: W3Counter (17. junij 2014)
14
Zakaj bi torej pri integraciji razvojnih okolij dali prednost odprtokodnim rešitvam pred
lastniškimi? Razlog za uporabo odprtokodnih rešitev je prost dostop in poseg v izvorno kodo
programov, ki je pogosto brezplačna in v javni lasti. Odprta koda je zaradi proste dostopnosti
bolj razširjena in se na ta način hitreje in lažje odkrivajo morebitne varnostne pomanjkljivosti,
prav tako so hitreje na voljo popravki, končna različica programa pa je tako bistveno varnejša
od vzporedno razvijajočih lastniških programov. Odprtokodna programska oprema je v javni
lasti, zato je tudi razvoj le-te decentraliziran. Ker pri razvoju odprtokodne programske opreme
sodeluje bistveno širša skupina ljudi, se oblikujejo različne skupnosti, katerih cilj je iskanje
novih potencialnih potreb uporabnikov in zagotavljanje novih funkcionalnosti. Zelo
pomemben faktor pri tem so nizki stroški uporabe in močna ter hitro odzivna podpora novim
in obstoječim uporabnikom odprtokodnih programov. Navkljub vsem prednostim pa ima tudi
odprta koda določene pomanjkljivosti. Slabosti lahko zaznamo v povečanem številu hroščev
pri začetnih različicah odprtokodnih programov. Ti so sčasoma odpravljeni, pogosto pa so
tudi določene odprtokodne rešitve nekoliko zapostavljene zaradi neprepoznavnosti in
necentraliziranega marketinga (Center odprte kode Slovenije, 12. junij 2014).
V nadaljevanju bodo opisana razvojna okolja, ki se uporabljajo pri razvoju uspešnih sodobnih
mobilnih in spletnih aplikacij. Podrobneje bodo opisana odprtokodna razvojna okolja, ki so
bila izbrana pri celotnem razvoju ter integraciji projekta in mobilne aplikacije LOKeT.
Predstavljen bo HTML5 (Hyper Text Markup Language 5), ki je v prvotnem pomenu
označevalni jezik in se uporablja predvsem pri oblikovanju spletnih strani ter aplikacij. Sledil
bo opis TYPO3 CMS (Content Management System) sistema za upravljanje vsebin in
razvojno okolje za izvorne mobilne aplikacije Appcelerator Titanium Studio. Glede na
izbrano temo diplomske naloge, ki se navezuje na aplikacijo LOKeT in odprtokodna razvojna
okolja, se bom skliceval na HTML5 in na TYPO3 CMS kot na razvojni okolji.
2.5.1 Primerjava lastniških z odprtokodnimi razvojnimi okolji
Poleg odprtokodnih poznamo tudi veliko lastniških programov in razvojnih okolij. Ključnega
pomena pri lastniškemu programju je to, da mora imeti podjetje, ki razvija programsko
opremo, dovolj znanja in izkušenj na svojem področju ter resursov za investiranje v
konstanten razvoj svojega produkta. V fazi odločanja med lastniškim in odprtokodnim
programjem je potrebno preučiti, s kakšnim namenom in ciljem se bo razvojno okolje
15
uporabljalo (Bloomtools, 23. junij 2014). Osnovne in pomembne razlike pri odločitvi za
določeno vrsto razvojnega programja so naštete v Tabeli 2.2.
Tabela 2.2: Razlike med odprtokodnimi in lastniškimi programi
Lastniško programje
Odprtokodno programje
Programi so zgrajeni in vzdrževani s
Razvoj
programov
pomočjo skupin zainteresiranih ljudi
Programi so zgrajeni in
po celem svetu. Običajno obstaja
vzdrževani s strani enega
neko nadzorno telo, vendar ne
podjetja.
pripada nikomur.
Izvorna koda je na voljo vsem. Vsak,
Dostop do
izvorne kode
ki ima sposobnosti in čas, ima
možnost spreminjanja programov in
ustvarjanja novih funkcionalnosti.
Tipično ne omogočajo dostopa
do izvorne kode, čeprav
najboljši ponujajo odprt razvojni
okvir, torej imajo možnost
zunanjega razširjanja.
Lahko se jih gostuje na vseh
Gostovanje
CMS sistema
strežnikih. Odprtokodno spletno
Ponavadi jih gostujejo podjetja,
stran se lahko tudi gostuje pri vseh
ki so jih ustvarila.
ponudnikih spletnih storitev.
Stroški nakupa
programov
Običajno so brezplačni, razen
prilagoditve izgleda, funkcionalnosti
in gostovanja samega.
Tipično zahtevajo plačilo licence
in gostovanja.
Vir: Bloomtools (23. junij 2014)
2.5.1.1 Primerjava odprtokodnih in lastniških CMS-sistemov
Obstajajo številni odprtokodni CMS-sistemi, med katerimi so najbolj znani TYPO3 CMS,
Wordpress, Joomla, Drupal, Moodle itd. Tudi lastniških CMS-sistemov je ogromno. Nekateri
bolj znani so Blogger, Alfresco, Ayoola Framework, dot.orange, Blackboard itd. Desetletje
nazaj je imela večina podjetij, ki so se ukvarjala z oblikovanjem spletnih strani, svoj lasten
CMS-sistem. V zadnjih letih so lastniški CMS-sistemi začeli izginjati, so se pa zato izboljšali
odprtokodni (Bloomtools, 23. junij 2014). Tako odprtokodni kot lastniški CMS-sistemi imajo
16
prednosti in pomanjkljivosti. Na Sliki 2.2 je prikazan tržni delež najpogosteje uporabljenih
CMS-sistemov. Podatki so zbrani s pregledom preko 121.400.000 spletnih strani.
Slika 2.2: Tržni delež najpogosteje uporabljenih CMS-sistemov
Vir: CMS Usage (23. junij 2014)
Prednosti odprtokodnih CMS-jev so:

Veliko je razvijalcev, ki so razvili mnogo različnih modulov in razširitev ter tako
omogočajo enostavno prilagajanje CMS-ja.

Na voljo so redni popravki in posodobitve.

Pogosto je uporabniški vmesnik bolj prilagojen in enostaven.

Ima možnost lastne prilagodljivosti ali pa se zlahka poišče strokovnjaka, ki CMS
izboljša.

Možnost prenosa na druge strežnike in platforme.
Pomanjkljivosti pri odprtokodnih CMS-sistemih so:

Bolj znani CMS-sistemi so pogosto tarče poskusa vdorov in iskanja sistemskih
ranljivosti.
17

Vsi sistemi niso enako pogosto posodobljeni in razširjeni, zato nekateri sistemi ne
izpolnjujejo vseh potreb uporabnikov in jih je potrebno prilagoditi.

Lastna izgradnja oziroma prenova ali dograditev CMS-ja lahko prinese visoke dodatne
stroške.
Prednosti lastniških CMS-sistemov so:

Nižji so začetni stroški, saj so lastniški CMS-sistemi pogosto predhodno zgrajeni.

Pogosto so posodobitve sistema objavljene redno.

Manj je možnosti, da bi bil lastniški CMS tarča napadov, saj so tovrstni sistemi manj
uporabljeni.
Pomanjkljivosti lastniških CMS-sistemov so:

Ob nakupu lastniškega CMS ni dostopa do izvorne kode. Večina CMS-sistemov
zahteva mesečno oziroma letno plačilo ali najemnino.

Izvoz podatkov je lahko zahtevnejše opravilo, če ni celo onemogočeno.

Lastniški CMS-sistemi se pogosto ne razvijajo tako hitro kot nekateri odprtokodni, saj
nimajo tako veliko razvijalcev.

Prilagodljivost sistema je slabo podprta, kar pogosto zahteva, da se za vse prilagoditve
najame lastniško podjetje CMS-ja.

Za nekatere CMS-sisteme se posodobitve objavljajo zelo redko, zato je njihov izgled
nekoliko zastarel (Cypress North, 2014).
2.5.1.2 Primerjava odprtokodnih in lastniških razvojnih okolij za mobilne aplikacije
Poznamo veliko odprtokodnih in tudi lastniških razvojnih okolij za razvoj mobilnih aplikacij.
Nekateri najbolj znani odprtokodni so Eclipse, Aptana Studio, Xamarin MonoDevelop,
NetBeans IDE itd. Tudi lastniška razvojna okolja so zelo široko uporabljena. Nekatera izmed
bolj znanih so JetBrains IntelliJ IDEA, Apple Xcode in Microsoft Visual Studio
(FindTheBest, 24. junij 2014). Podobno kot pri CMS-sistemih imajo tudi razvojna okolja
mobilnih aplikacij prednosti in slabosti. Pri razvoju mobilnih aplikacij pa določena razvojna
okolja omogočajo razvoj ene aplikacije, ki se jo lahko potem uporabi na različnih platformah.
Med-platformno razvijanje aplikacij pogosto poteka s pomočjo HTML5. Med njimi so najbolj
znana odprtokodna okolja, in sicer PhoneGap, Sencha Touch, Mono, Appcelerator Titanium,
18
Adobe Flex itd. Nekoliko manj uporabljena so tudi tovrstna lastniška razvojna okolja, kot sta
Unity in Corona. Delež uporabe in priljubljenosti pri razvijalcih za medplatformna razvojna
okolja je prikazan na Sliki 2.3. Delež presega 100 odstotkov, saj nekateri razvijalci
uporabljajo več razvojnih okolij (Avram, 2012).
Slika 2.3: Delež razvijalcev medplatformnih razvojnih okolij
Vir: Avram (2012)
Prednosti odprtokodnih razvojnih okolij so:

Nižji so stroški programja in razvoja, saj ga razvijajo prostovoljci in razne skupnosti.

Odprtokodni programi imajo možnost lastnega prilagajanja in razširjanja.

So okretni in hitreje sprejemajo nove programske trende.

Napake so prepoznane hitro, zato so tudi popravki redno na voljo.
Pomanjkljivosti pri odprtokodnih razvojnih okoljih so:

Pogosto je vprašljiva kakovost in zanesljivost programov.
19

Redko je na voljo neposredna pomoč, saj se pomoč pri morebitnih težavah z
odprtokodnimi programi išče na raznih forumih in spletnih straneh skupnosti ter v
dokumentacijah, ki so objavljene na spletu.

Odprtokodno programje je v nekaterih primerih redkeje zastopano in ni primerno za
poslovno uporabo (Idea, 2011).
Prednosti lastniških razvojnih okolij so:

Uporabnik lastniškega programja ima možnost koriščenja podpore s strani podjetja, ki
je program izdelalo.

Programi so narejeni z vključeno uporabniško izkušnjo in so pogosto bolj uporabni kot
nekateri odprtokodni.
Pomanjkljivosti lastniških razvojnih okolij so:

Pogosto so stroški lastniškega programja visoki in nedostopni preprostim
uporabnikom ali manjšim podjetjem.

Za prilagajanje programov je odgovorno podjetje, ki je program izdelalo, dodatne
prilagoditve pa niso brezplačne.

Zaradi manjše količine popravkov in posodobitev lastniškega programja ima le-to
lahko veliko varnostnih pomanjkljivosti.

Pogosto uporabljajo lastne standarde, ki niso združljivi z ostalimi programi (Lewis,
2014).
2.5.2
HTML5
HTML5 je naslednik oziroma nova verzija HTML-jezika za oblikovanje spletnih strani. Je
torej jezik za označevanje spletnih vsebin in se uporablja za oblikovanje vmesnikov spletnih
strani ter aplikacij. Odlikuje se predvsem v tem, da lahko neposredno v HTML-značke
vnesemo multimedijsko vsebino, torej razne vektorske grafike, zvočne in video vsebine itd. S
prihodom HTML5 je tudi omogočeno lažje upravljanje z multimedijskimi vsebinami iz
interpretativnega skriptnega jezika JavaScript. Čeprav se HTML5 še vedno razvija, pa večino
funkcionalnosti že podpirajo naprednejši brskalniki. Prednost HTML5 je predvsem v tem, da
ga podpirajo tudi različne mobilne naprave, ki primarno ne podpirajo Flash aplikacij. Flash je
predhodno omogočal integracijo multimedijskih vsebin v spletne strani in aplikacije, vendar
20
je imel na določenih napravah težave z izvajanjem, tako ga sedaj vse pogosteje nadomešča
HTML5 (McLaughlin, 2011). Slika 2.4 prikazuje število spletnih strani, ki uporabljajo Flash
animacije in aplikacije za prikaz interaktivne vsebine v obdobju med 1. januarjem 2012 in 1.
junijem 2014. Opazimo lahko, da delež spletnih strani, ki uporabljajo Flash, upada, saj ga
nadomeščajo prav HTML5 in ostali podobni odprti spletni standardi.
Slika 2.4: Prikaz upada števila spletnih strani, ki uporabljajo Flash
Vir: HTTP Archive (17. junij 2014)
V Tabeli 2.3 je prikazano, da se z razvojem spletnih brskalnikov izboljšuje podpora novemu
HTML5-standardu in le-ta postaja čedalje bolj priljubljen nadomestek zgoraj omenjenega
Flasha. Trendu, ki je prikazan na Sliki 2.4, sledi tudi uporaba in podpora standardov na
področju razvoja mobilnih tehnologij.
Tabela 2.3: Različice spletnih brskalnikov, ki podpirajo vsaj osnovne HTML5-elemente.
Internet
Explorer
7.0+
Firefox
3.0+
Safari
Chrome
3.0+
3.0+
Opera
10.0+
iPhone
1.0+
Android
1.0+
Vir: Pilgrim (2010, str. 57−79)
S prihodom HTML5 je olajšano tudi pisanje spletnih aplikacij, saj so določene značke, kot so
značke za vključevanje grafičnih, zvočnih in video vsebin, zelo uporabne. Predvsem aktualna
je podpora geolociranja odjemalcev spletnih aplikacij (Pilgrim 2010, str. 24−25). Omogočena
je tudi tako imenovana podpora uporabe aplikacij, ko odjemalec ni povezan s spletom, pod
21
pogojem, da je bila spletna aplikacija naložena v odjemalčev brskalnik. To omogoča, da se
lahko HTML-vsebina, vključno s povezavami na zunanje JavaScript in CSS-datoteke, naloži
v pomnilnik, ki je na voljo brskalniku tudi, ko je povezava s spletom prekinjena (Pilgrim
2010, str. 137).
2.5.3
TYPO3 CMS
TYPO3 CMS je eden izmed najbolj pogosto uporabljenih sodobnih odprtokodnih sistemov za
upravljanje vsebin, ki zagotavlja podlago za različne spletne strani, intranetne sisteme in
mobilne aplikacije. Ima že preko 500.000 namestitev na različne strežniške sisteme po celem
svetu (TYPO3, 10. junij 2014).
TYPO3 CMS uporablja različne licence za distribucijo programske kode in dokumentacije, ki
temelji na GNU GPL Version 2 licenci, ter za prispevke posameznikov in podjetij, ki temelji
na Apache licenci CLA (Contributor License Agreement). Predvsem so pri licenciranju
TYPO3 CMS osredotočeni na licence, ki so v skladu z vizijo celotnega projekta TYPO3
CMS, saj želijo navdušiti ljudi, da med sabo komunicirajo in delijo inovacije (TYPO3, 10.
junij 2014).
Če želimo TYPO3 CMS namestiti na nek strežnik, pa je potrebno ugoditi nekaterim
programskim in strojnim zahtevam strežnika, da se lahko sistem za upravljanje vsebin
nemoteno izvaja. Strežniške zahteve so:

Operacijski sistem, ki temelji na Unix, Windows ali Mac OS.

Priporočen je spletni strežnik Apache, lahko pa tudi IIS (Internet Information Server)
ali NGINX s podporo PHP.

Podatkovna baza MySQL ali vsaka podatkovna baza, podprta s strani TYPO3 DBAL
(Database Abstraction Layer), na primer Oracle, Postgres itd.

Strežnik mora imeti vsaj 256 MB (megabajtov) ali več delovnega pomnilnika
(TYPO3, 10. junij 2014).
2.5.4
Titanium
Appcelerator Titanium je odprto, razširljivo razvojno okolje za ustvarjanje izvornih (angl.
native) aplikacij za različne mobilne naprave in operacijske sisteme, med katerimi so najbolj
22
znani iOS, Android in BlackBerry. Prav tako podpira hibridne in HTML5-aplikacije. V
razvojnem okolju Appcelerator Titanium je bilo razvitih že preko 69.000 mobilnih aplikacij,
ki so bile nameščene na preko 220.000.000 naprav.
Appcelerator Titanium vsebuje odprtokodno razvojno programsko opremo s preko 5.000
programskih vmesnikov za različne naprave in mobilne operacijske sisteme. Razvojno okolje
Appcelerator Titanium Studio temelji na dveh drugih razvojnih okoljih – Eclipse IDE in
Alloy. Alloy je razvojno ogrodje, ki temelji na model-pogled-krmilnik (MVC oziroma Modelview-controller) strukturi in oblačnih storitvah, njegov namen pa je priprava ozadja mobilne
naprave za uporabo (Appcelerator, 10. junij 2014). Tudi pogoji uporabe razvojnega okolja
Alloy so enaki pogojem razvojnega okolja Eclipse IDE: EPL (Eclipse Public License)
Version 1.0 (Appcelerator, 10. junij 2014).
Sistemske zahteve za namestitev in razvijanje v Appcelerator Titanium Studiu so:

Operacijski sistem mora biti novejša različica operacijskega sistema Windows, OSX,
ali Ubuntu oziroma novejša distribucija operacijskega sistema Linux, ki temelji na
distribuciji Debian.

Za delovanje je priporočljivo, da ima na razpolago vsaj 2 GB (gigabajt) prostega
delovnega pomnilnika.

Java Runtime Oracle JDK (Java Platform, Standard Edition Development Kit) in
ostale različice jave niso ustrezne. Če za razvoj uporabljamo operacijski sistem
Windows, potem mora biti obvezno nameščena 32 bitna različica Jave JDK, ne glede
na to, ali je različica operacijskega sistema Windows 32 oziroma 64 bitna.

Nameščen mora biti tudi Node.js za Titanium orodja, ki uporablja ukazno vrstico, kot
je na primer CLI (Command-line interface), Alloy in Node.ACS (Appcelerator, 10.
junij 2014).
23
3 PREGLED ODPRTOKODNE PLATFORME LOKET IN
INTEGRACIJA DODATNIH FUNKCIONALNOSTI
3.1
Metodologija dela
V nadaljevanju sta opisana projekt in mobilna aplikacija LOKeT. V tem delu diplomske
naloge je predstavljena analiza postavljanja razvojnega in testnega okolja za celotno
platformo mobilne aplikacije LOKeT in poročila o dejanski izvedbi ter testiranju posameznih
izboljšav pri sami uporabi mobilne aplikacije.
Metodologija za izvedbo aplikativnega dela diplomske naloge zajema:
3.2

študijo primera,

namestitev in pregled odprtokodnih platform,

povezovanje gradnikov razvojnega okolja,

analizo dokumentirane programske kode,

izdelavo predlogov za izboljšave,

programiranje in

testiranje izvedenih popravkov.
Projekt LOKeT
Splet 2.0 je omogočil pojav naprednih internetnih storitev v socialnih in mobilnih
tehnologijah, te pa je mogoče preko različnih preprostih vmesnikov urejati dinamično. S
pojavom spleta 2.0 smo se soočali z novimi razsežnostmi digitalne pismenosti in močno
udeležbo uporabnikov v sodobne načine uporabe spleta in storitve, ki jih nudi, kot na primer
e-uprava, e-davki in podobno (Lessing, 2005). Z razvojem mobilnih aplikacij lahko nekatere
izzive lokalnega prehranskega sistema v evropskem modelu kmetijstva uspešno rešujemo tudi
s tem, da jih obravnavamo od spodaj navzgor.
LOKeT je primer odprtokodne mobilne platforme, ki obravnava omenjeni izziv tako, da
enostavno povezuje proizvajalce in potrošnike lokalno oziroma regijsko pridelane ali
proizvedene hrane. LOKeT je prva mobilna storitev oziroma platforma, ki potrošnikom
ponuja vpogled v ponudbo pridelane hrane v lokalnem območju. Na ta način lahko potrošniki
24
enostavno in učinkovito združijo izlete na podeželju skupaj z nakupom lokalno pridelane
hrane. Kot storitev omogoča vpogled v seznam proizvajalcev trenutno obiskanega območja,
njihovo ponudbo proizvodov in odpiralni čas. Na ta način lahko uporabniki aplikacije, torej
potrošniki, pridobijo informacije o podeželskem območju, kjer se nahajajo, ter o različnih
znamenitostih in posebnostih v okolici. Aplikacija naslavlja entitete v obeh vlogah, tako
potrošnike in lokalne proizvajalce, konkretno turistične kmetije, družinske kmetije,
pridelovalce itd. LOKeT proizvajalcem omogoča funkcionalnosti, kot so na primer enostaven
vnos proizvodov, enostaven vnos delovnega časa, ustvarjanje in urejanje proizvodov in
njihovih lastnosti. Za potrošnika so podprte funkcionalnosti, kot so dostop do zemljevida
lokalnih kmetij, do seznama proizvajalcev in seznama proizvodov v bližini trenutnega
položaja na lokalnem območju. Omogoča tudi opredelitev interesov oziroma zanimanj, to je
seznam proizvodov v košarici (Mertik, 2013).
Izvajalec projekta LOKeT je Fakulteta za informacijske študije v Novem mestu, partner pri
izvedbi pa je Inštitut za trajnostni razvoj lokalnih skupnosti Ljutomer. Projekt sta financirala
Evropski sklad za regionalni razvoj in Ministrstvo za izobraževanje, znanost in šport. LOKeTplatforma je bila razvita za različne mobilne platforme, vendar je bila zaradi široke uporabe in
potreb po odprtokodnih rešitvah pripravljena v Appcelerator Titanum Studiu za platformo
Android. LOKeT je zasnovan kot aplikacija, ki temelji na načinu aplikacije odjemalecstrežnik in se izvaja na spletnem strežniku z nameščenim operacijskim sistemom Linux in
sistemom za upravljanje vsebin TYPO3. To je platforma, ki jo je mogoče zlahka preurediti in
razširiti z dodatnimi možnostmi zaradi svoje bločne konstrukcije (LOKeT, 30. maj 2014).
Tržni pristop projekta LOKeT je tako imenovani pristop od spodaj navzgor in se dotika
modela trženja neposredno k stranki, vendar z značilnimi odstopanji od tržnega modela
neposredno k prodaji. Pri modelu neposredno k prodaji poznamo različne pristope, kot je na
primer kmečko tržišče, skupnost podeželskih območij in ostali različni modeli trženja
neposredno k stranki. Pristopi modelov neposredno k prodaji po navadi zahtevajo vmesno
podjetje, ki povezuje potrošnike s proizvajalci, pri čemer nove tehnologije, kot so družbena in
družabna omrežja ter mobilne aplikacije, oblikujejo oziroma samoorganizirajo skupnosti z
minimalno zahtevo srednjih podjetij. Na ta način omogočajo modeli trženja neposredno do
trga s strankami, kjer nastajajo novi načini razmišljanja in novi načini poslovnih modelov. V
tem smislu je bila vzpostavitev projekta LOKeT izvedena v Sloveniji na območju Dolenjske
in Bele krajine. Cilji vzpostavitve projekta so bili predvsem:
25

vzpostavitev oziroma izgradnja mreže lokalnih pridelovalcev hrane in njenih
odjemalcev,

izobraževanje lokalnih pridelovalcev hrane o mreženju in novih možnostih dostopanja
do strank,

izvedba pilotnega primera odprtokodne platforme za neposredno trženje in

ocenjevanje pilotnega modela vzpostavitve projekta ter mobilne aplikacije.
V sodelovanju s Kmetijsko šolo Grm v Novem mestu je projektna skupina vzpostavila mrežo
20 proizvajalcev z lokalnimi živilskimi proizvodi, pri katerih so uvedli mobilno aplikacijo
LOKeT. S tem namenom so se izvedle štiri delavnice, kjer so uporabniki dobili celovito
mobilno rešitev pri spodbujanju prodaje s pomočjo mobilne aplikacije LOKeT. Celovita
rešitev je obsegala tudi tablični računalnik in enoletni širokopasovni dostop do mobilnega
interneta s kartico SIM (Subscriber Identity Module) in omejitvijo prenosa do 1 GB mesečno
skupaj z napotki za preprosto vzpostavitev lastnega domačega trga. Dosedanji uporabniki so
navedli številne prednosti aplikacije, med katerimi so navedli enostavnost, preglednost in
uporabnost. Projektna skupina bo tudi v prihodnje predstavljala rešitev tako obstoječim kot
novim lokalnim proizvajalcem hrane, s čimer se pričakuje, da se bo tudi sama uporaba
aplikacije LOKeT znatno povečala s strani njenih uporabnikov (Mertik, 2014).
3.2.1
O mobilni aplikaciji LOKeT
Mobilna aplikacija LOKeT je namenjena lokalnim pridelovalcem hrane in njihovim
odjemalcem, kjer si lahko ogledajo aktualno ponudbo lokalno pridelane hrane. Pridelovalci so
lokalni ponudniki hrane, turistične kmetije, vrtnarji in družinske kmetije, ki si s pomočjo
LOKeT ustvarijo svojo lokalno tržnico. Potrošniki imajo možnost, da si organizirajo izlet in
nakup tedenske košarice v lokalni okolici.
LOKeT je na voljo brezplačno v spletnih trgovinah Google Play, v AppStore in v Windows
Store. LOKeT je za pridelovalce na voljo za platformo Android, za kupce in potrošnike pa na
platformah Apple iOS 5+, Google Android ICS 4+ in Microsoft Windows Phone 8+ (LOKeT,
30. maj 2014).
Aplikacija LOKeT omogoča pridelovalcu hiter, enostaven in brezplačen vnos svojih
podatkov, odpiralnega časa, ustvarjanje in urejanje lokalne tržnice pridelovalca. Prav tako mu
omogoča dodajanje, odvzemanje izdelkov oziroma pridelkov in urejanje njihovih lastnosti.
26
Potrošniku aplikacija LOKeT omogoča dostop do seznama pridelovalcev v bližini njegovega
trenutnega položaja, kreiranje seznama košarice izdelkov, dostop do zemljevida skupne
ponudbe v okolici glede na seznam izdelkov ter prikaz oddaljenosti in smeri do pridelovalcev.
Mobilna aplikacija potrošniku na prijazen način omogoča kreiranje seznama košarice
pridelkov na podlagi katerega si lahko izpiše seznam ponudnikov v okolici in pregleda
zemljevid le te. Postopek pridobivanja podatkov se prične s poslanim obvestilom GPS (Global
Positioning System) naprave o trenutnem položaju uporabnika aplikacije. Po preverjanju
ustreznosti uporabnikove lokacije se preveri seznam njegove košarice, glede na seznam
aplikacija uporabniku vrne nabor lokalnih pridelovalcev. Uporabnik ima možnost
pregledovanja pridelovalcev z ustreznimi drsi ali tapki na dotičnem zaslonu, prav tako lahko v
aplikaciji spreminja svoj seznam želja (LOKeT, 30. maj 2014).
Koncept grafičnega uporabniškega vmesnika aplikacije LOKeT za urejanje proizvajalčevega
profila je prikazan na Sliki 3.1. Na Sliki 3.2 pa so posnetki zaslonov mobilne naprave, ki
prikazujejo potrošnikov pogled na aplikacijo.
Slika 3.1: Koncept grafičnega uporabniškega vmesnika mobilne aplikacije LOKeT
Vir: LOKeT (2013)
27
Slika 3.2: Posnetki zaslona mobilne aplikacije LOKeT
Vir: Agenda d. o. o. (2013)
3.2.2
Arhitektura razvojnega okolja LOKeT
Iz programsko arhitekturnega pogleda gre v primeru LOKeT za storitveno usmerjeno
arhitekturo (angl. SOA - Service-oriented architecture). SOA je zgrajena tako, da uporablja
zbirko storitev, ki med sabo komunicirajo s preprosto izmenjavo podatkov ali pa koordinirajo
določene aktivnosti, ki so lahko porazdeljene med različne strojne opreme oziroma naprave.
Če te storitve za povezovanje med seboj potrebujejo določena komunikacijska sredstva,
potem govorimo o spletnih storitvah. Komunikacija tako poteka kot zahtevek storitve klienta
in odziv ponudnika storitev. Na Sliki 3.3 je prikazana osnovna storitveno usmerjena
arhitektura z zahtevkom in odzivom (Barry in Dick 2013, str. 17−18).
Slika 3.3: Osnovna storitveno usmerjena arhitektura
Vir: prirejeno po Barry in Dick (2013, str. 18)
Mobilna aplikacija LOKeT je za izvajanje in razvijanje sestavljena iz treh glavnih komponent.
To so spletni strežnik, podatkovni strežnik in izvorna mobilna aplikacija. Spletni strežnik je
28
namenjen za dostop do pogledov v aplikaciji LOKeT. Do teh pogledov se lahko dostopa
preko izvorne mobilne aplikacije in s pomočjo spletnega brskalnika. Pri dostopu do pogledov
kot do spletne strani je večja pomanjkljivost, da tovrstni pogledi ne omogočajo naprednejših
funkcionalnosti, ki so na voljo v izvorni aplikaciji. V podatkovnem strežniku so shranjene vse
potrebne informacije o potrošnikih in o proizvajalcih. Trenutno je podatkovni strežnik
nameščen na isti strežniški platformi kot spletni strežnik. Izvorna mobilna aplikacija pa je
predvsem pomembna za pridelovalčeve vnose lokalno pridelanih izdelkov, ki jih ponuja
potencialnim potrošnikom. Prav tako pa izvorna aplikacija omogoča pregled ponujenih
izdelkov tako, da dostopa do prej omenjenih spletnih pogledov aplikacije. Tok izmenjave
podatkov med spletno in mobilno aplikacijo ter strežnikom je ponazorjen na Sliki 3.4.
Slika 3.4: Splošna shema izmenjave podatkov aplikacije LOKeT
Vir: prirejeno po Rhoton (2013, str. 95)
Spletni in podatkovni strežnik sta pomembna tudi kot del razvojnega okolja aplikacije
LOKeT, medtem ko izvorna aplikacija v tem primeru ni ključnega pomena. Za razvoj in
izboljšavo izvorne mobilne aplikacije potrebujemo Appcelerator Titanium Studio, v katerega
uvozimo projekt, ki je na voljo za prenos na spletni strežniški storitvi GitHub. Za razvoj in
izboljšavo spletnih pogledov potrošnikov pa je pomemben gradnik razvojnega okolja tudi
namestitev TYPO3 CMS sistema za upravljanje vsebin in TYPO3 LOKeT razširitev, ki je
prav tako na voljo za prenos na spletni strežniški storitvi GitHub. Ko je ta sistem v celoti
vzpostavljen, lahko datoteke, ki so ključne za izgled in delovanje aplikacije, spreminjamo
neposredno na strežniku preko protokola SSH (Secure Shell) ali pa jih naložimo na osebni
računalnik. Nato spremenjene datoteke naložimo na spletni strežnik preko protokola SFTP
29
(Secure File Transfer Protocol) oziroma protokola FTP (File Transfer Protocol). Slika 3.5
prikazuje osnovno izmenjavo podatkov, ki razvijalcu prikazuje, kako zasnovati osnovni
komunikacijski sistem razvojnih okolij. Ta izmenjava podatkov lahko v določenih primerih
poteka preko različnih protokolov.
Slika 3.5: Splošna shema izmenjave podatkov z vidika razvijalca
Vir: prirejeno po Rhoton (2013, str. 95)
Kot že omenjeno, se na strežniški strani izvaja več storitev. Podrobneje, na spletnem strežniku
poteka komunikacija oziroma izmenjava podatkov med TYPO3 CMS-sistemom za
upravljanje vsebin in MySQL-podatkovno bazo. Pomembno je, da pri TYPO3 CMS-sistemu
obstaja tako jedro samega sistema kot tudi posamezne razširitve funkcionalnosti, ki jih
TYPO3 CMS-sistem omogoča. Našteta nivoja TYPO3 CMS-sistema povezuje posebej
prilagojen vmesnik. Podrobneje je strežniška struktura prikazana na Sliki 3.6, kjer je s
puščicami ponazorjena tudi komunikacija posameznih elementov TYPO3 CMS-sistema s
celotno strežniško arhitekturo.
30
Slika 3.6: Shema TYPO3 CMS-arhitekture na spletnem strežniku
Vir: prirejeno po TYPO3 (2014)
3.2.3 Tehnične specifikacije razvojnega okolja mobilne aplikacije LOKeT
Mobilna aplikacija LOKeT je odprtokodna in na voljo za razvijalce na spletni strežniški
storitvi GitHub. Sestavljena je iz dveh projektov, in sicer iz razširitve za TYPO3 CMS in
projekta za Appcelerator Titanium Studio. Osnovne sistemske zahteve za vzpostavitev
razvojnega okolja za mobilno aplikacijo LOKeT pa so naslednje:

Sistemske zahteve za LOKeT TYPO3 Extension:
o TYPO3 CMS različica 6.1.
o Operacijski sistem, ki temelji na UNIX-u, Windows ali Mac OSX.
o Priporočljivi spletni strežniki so Apache, Microsoft IIS, teoretično pa bi moral
zadostovati vsak PHP-strežnik.
o Podatkovna baza MySQL ali vsaka podatkovna baza, podprta s strani TYPO3
DBAL, na primer Oracle, Postgres.
o Strojna oprema mora vsebovati vsaj 256 MB ali več delovnega pomnilnika.

Sistemske zahteve za LOKeT Appcelerator Titanium Studio projekt:
o Appcelerator Titanium Studio različica: 3.x.
31
o Operacijski sistem mora biti novejša različica operacijskega sistema Windows,
Mac OSX, XUbuntu ali Ubuntu oziroma novejša distribucija operacijskega
sistema Linux, ki temelji na distribuciji Debian.
o Za delovanje potrebuje vsaj 2 GB prostega delovnega pomnilnika na
razpolago.
o Oracle Java JDK (Agenda d. o. o., 2013).
3.2.4
Namestitev gradnikov za razvojno okolje LOKeT
Za vzpostavitev celotnega razvojnega okolja za platformo LOKeT je potrebno namestiti več
gradnikov, saj je tudi sama platforma zastavljena na ta način. Potrebno je torej imeti
postavljen ustrezen spletni strežnik, ki podpira sistem za upravljanje vsebin in spletni pogled
aplikacije LOKeT, ter osebni ali prenosni računalnik, ki podpira izvajanje razvojnega okolja
za izvorno mobilno aplikacijo.
3.2.4.1 Namestitev spletnega strežnik za razvojno okolje LOKeT
Spletni strežnik zagotavlja in nudi določene funkcionalnosti za odjemalce. Spletne strežnike
lahko uporabljamo v različne namene, kot so na primer shranjevanje datotek in dostop do
njih, gostovanje spletnih strani ali spletnih aplikacij, komunikacijsko sredstvo itd. V primeru
platforme LOKeT je uporabljen spletni strežnik za upravljanje vsebin in spletne poglede
odjemalcev aplikacije.
Ob pripravi razvojnega okolja za aplikacijo LOKeT je bil vzpostavljen virtualni strežnik z
operacijskim sistemom Ubuntu 12.04.4 LTS (Long Term Support). Ubuntu je operacijski
sistem, ki temelji na distribuciji Linuxa Debian. Razvija ga ogromna Ubuntu skupnost, pri
čemer sodeluje na tisoče entuziastov in strokovnjakov. Primeren je tako za prenosne in
namizne računalnike kot tudi za strežnike. Vsebuje veliko uporabniških programov, poleg
tega pa tudi zahtevnejša orodja za razvijalce in programerje (Ubuntu Slovenija, 17. junij
2014).
Na strežniku je bil omogočen SSH-dostop, tako da je postopek namestitve vse potrebne
programske opreme potekal na daljavo preko ukazne vrstice oziroma terminala. Nameščena
sta bila spletni strežnik Apache 2.2.22 in podatkovni strežnik MySQL 5.5.22. Spletni strežnik
Apache je bilo potrebno tudi ustrezno nastaviti, da podpira ustrezne module in razširitve
32
TYPO3 CMS-ja. Na Ubuntu strežnik se je nato postavil sistem za upravljanje vsebin TYPO3
CMS. Izgled spletnega vmesnika TYPO3 CMS-sistema je posnet na Sliki 3.7, na kateri je
razviden način dostopa preko spletnega brskalnika.
Slika 3.7: Prikaz izgleda TYPO3 CMS, ki je nameščen na FIŠ-evem spletnem strežniku
Vir: Zidar, lastni prikaz (2014)
Naslednji korak je bila namestitev TYPO3 razširitev za mobilno aplikacijo LOKeT, ki je na
voljo za razvijalce na spletni strežniški storitvi GitHub. Razširitev oziroma modul LOKeT se
uporablja za prikazovanje kmetij in pridelovalčevih pridelkov. Iz Slike 3.8 je razviden izgled
prikaza seznama kmetij ob dostopu do LOKeT-a s spletnim brskalnikom.
33
Slika 3.8: Prikaz seznama kmetij
Vir: Zidar, lastni prikaz (2014)
Z izborom posamezne kmetije uporabnik pridobi podrobnejše informacije o kmetiji, kot so
lokacija, naslov, odpiralni čas, podatki o pridelkih itd. Primer prikaza podrobnosti o kmetiji
prikazuje Slika 3.9.
34
Slika 3.9: Prikaz podrobnosti o kmetiji
Vir: Zidar, lastni prikaz (2014)
Dodatno so bile nameščene določene razširitve, ki so na voljo za prenos s spletne strani
repozitorija razširitev TYPO3 CMS-ja. Ker nekateri spletni pogledi in moduli na spletu še
niso na voljo, so bile vse datoteke potrebne za namestitev posredovane iz podjetja Agenda d.
o. o. Iz repozitorija razširitev TYPO3 CMS-sistema so bili nameščeni naslednji moduli:

TemplaVoila: S tem modulom je postavljena predloga oziroma postavitev spletne
strani. Predloge strani se nahajajo v direktoriju »TV Storage« na spletnem strežniku.
Na voljo sta predlogi »Loket page« in »Full size«. Na vseh straneh razen na strani
»Info« se uporablja predloga »Loket page«. Predloge spletne strani so pripravljene
tako, da so prilagodljive mobilnim napravam in se na strežniku nahajajo v direktoriju
»fileadmin/templates/html«.

Femanager: S tem modulom se uporabniki registrirajo na spletno stran, kjer lahko
dodajajo podatke o kmetiji. Uporabnik se registrira preko prednastavljenega obrazca
na zavihku »Registracija«, kjer obvezno vpiše naziv kmetije, elektronski naslov,
uporabniško ime in geslo. Po potrditvi podatkov se samodejno pošlje mail
administratorju, ki potrdi registracijo uporabnika. Registrirani uporabniki se nahajajo v
mapi »Users« in so razvrščeni v uporabniško skupino »agloket«.
35

Frontend Login for Website Users: Modul je namenjen prijavnemu obrazcu za
aplikacijo. Na zavihku »Pridelovalec« se nahaja obrazec za prijavo pridelovalca v
izvorno aplikacijo LOKeT.

RealURL: Ta modul skrbi za prepisovanje URL-jev (Uniform Resource Locator), tako
da so preglednejši uporabnikom, ki do aplikacije LOKeT dostopajo preko spletnih
brskalnikov.
Opisani postopek je predvsem pomemben za spletne poglede odjemalcev storitev, ki jih nudi
izvorna mobilna aplikacija LOKeT. Ti pogledi so sicer na voljo tudi, če do strežnika
dostopamo kot do splošne spletne strani, vendar imamo v tem primeru na voljo le osnovni
pregled kmetij in njihovih profilov.
3.2.4.2 Namestitev Appcelerator Titanium Studia za razvojno okolje LOKeT
Pomemben gradnik platforme LOKeT pa je tudi razvojno okolje Appcelerator Titanium
Studio, v katerem se lahko razvija izvorno mobilno aplikacijo LOKeT. Namestitvena datoteka
Appcelerator Titanium Studia se nahaja na Appceleratorjevi spletni strani. Razvojno okolje,
dodatni vtičnik Alloy in testno okolje za mobilne naprave z operacijskim sistemom Android
se je namestilo na prenosni računalnik, namenjen nadaljnjemu razvoju izvorne aplikacije.
Nato je bilo potrebno v to okolje uvoziti projekt za Appcelerator Titanium Studio, ki je na
voljo za razvijalce na spletni strežniški storitvi GitHub. Za uspešno prevajanje izvorne
aplikacije in prenos na mobilno android napravo je bila potrebna tudi namestitev razvojnega
okolja Android Studio in določitev ustrezne datotečne poti med Appcelerator Titanium
Studiom in knjižnicami iz Android Studia.
Na Sliki 3.10 je posnetek izgleda razvojnega okolja Appcelerator Titanium Studio z uvoženim
projektom za izvorno mobilno aplikacijo LOKeT.
36
Slika 3.10: Prikaz izgleda Appcelerator Titanium Studia z uvoženim projektom LOKeT
Vir: Zidar, lastni prikaz (2014)
Po uspešni namestitvi spletnega strežnika in vseh potrebnih dodatkov za Appcelerator
Titanium Studio smo v uvoženem projektu v datoteki »url_config.js« nadomestili URLnaslov privzetega spletnega strežnika za aplikacijo LOKeT z naslovom IP (Internet Protocol)
178.172.41.69. Na omenjenem IP-naslovu se nahaja nameščen testni spletni strežnik. Po
uspešni vzpostavitvi celotnega razvojnega okolja je bilo potrebno ob testiranju zagnati
Appcelerator Titanium Studio projekt na mobilni napravi z nameščenim operacijskim
sistemom Android in v emulatorju, kot prikazuje Slika 3.11.
37
Slika 3.11: Android emulator z naloženo mobilno aplikacijo LOKeT
Vir: Zidar, lastni prikaz (2014)
Omenjeni projekt za Appcelerator Titanium Studio je pomemben predvsem za proizvajalčev
pogled oziroma vmesnik za vnos produktov, ki jih potem nudi potencialnim strankam, saj
omenjeni vmesnik nima lastnega pogleda na spletnem strežniku.
3.3
Izboljšave funkcionalnosti aplikacije LOKeT
Celotna aplikacija LOKeT je odprtokodna in tako pripravljena na implementacijo popravkov,
posodobitev, dodatnih funkcionalnosti ter modulov. Za izvedbo izboljšave funkcionalnosti
aplikacije je bilo potrebno pridobiti lastno uporabniško izkušnjo. Na podlagi te se je pripravilo
nekaj predlogov za možne izboljšave in razširitve. Predlogi za izboljšave so predstavljeni
predvsem z vidika potrošnika, saj se predvideva, da bo veliko povpraševanja po izdelkih
proizvajalcev in je pomembno, da imajo čim boljšo uporabniško izkušnjo. Nekaj izmed teh
predlogov se je implementiralo v aplikacijo s pomočjo predhodno vzpostavljenega razvojnega
okolja. Aplikacijo z implementiranimi izboljšavami se je na koncu testiralo na različnih
mobilnih napravah z nameščenim operacijskim sistemom Android.
38
3.3.1 Predlogi nadaljnje posodobitve
Pri podrobnem pregledu funkcionalnosti in delovanja aplikacije LOKeT na mobilni napravi z
nameščenim operacijskim sistemom Android smo zaznali naslednje priložnosti za izboljšave:

Pohitrili bi lahko nalaganje nekaterih zavihkov. To se pogosto dogaja pri odpiranju
tržnice in seznama kmetij. Razlog za dolgotrajno odpiranje posameznega zavihka je
velikost slik, ki se morajo prenesti s strežnika v samo aplikacijo. Moj predlog je, da se
slike, ki jih uporabniki aplikacije nalagajo, samodejno pomanjšajo brez večje izgube
kakovosti.

Pogled aplikacije bi lahko nadgradili za manjše zaslone na mobilnih napravah. Pri
filtriranju in razvrščanju izdelkov se na manjših zaslonih spustna seznama ne vidita
dobro. Prav tako bi lahko nadgradili pogled na nekatere ikone za odzivno prilagajanje
razmerja, tako da bo skladno s celotno aplikacijo.

Pri izbiri kategorije v zavihku »Tržnica« aplikacija javi napako sistema, če izbrana
kategorija nima vnosov. Moj predlog je, da se nerazumljivo obvestilo prepreči s
preverjanjem ob zahtevku prikaza vnosov, preden se jih posreduje aplikaciji.
Predlagam, da se v primeru, ko ni vnosov, to na primeren način javi uporabniku.

Ob kliku na gumb »Načrtuj pot do kmetije« odpre zemljevid z označeno lokacijo
kmetije namesto vmesnika za načrtovanje poti do kmetije. Ob kliku na razdelek
»Lokacija« v profilu proizvajalca pa odpre vmesnik za načrtovanje poti do kmetije. V
primeru, ko do profila proizvajalca ne dostopamo z zemljevida, bi lahko dodali gumb
»Načrtuj pot do kmetije«.

Ob vrnitvi iz načrtovanja poti do kmetije na profil kmetije bi lahko omogočili ponovni
zahtevek za načrtovanje poti.

V profil kmetije pod razdelkom »Podatki o kmetiji« bi lahko dodatno vključili nekaj
osnovnih podatkov, in sicer naslov kmetije ter povezavo na lokacijo kmetije. Ob kliku
na elektronski naslov kmetije bi omogočili povezavo oziroma preusmeritev na
pošiljanje elektronskega sporočila.

Če želimo pogledati podrobnosti o sami aplikaciji in izberemo ikono podjetja, ki je
izdelalo aplikacijo, ne prikaže podrobnejših podatkov podjetja. V tem primeru bi se
lahko naredila povezava na spletno stran podjetja ali pa bi podatke o podjetju vnesli v
prazen razdelek.
39

Dodali bi lahko gumb za izhod iz aplikacije. Posledično se zaradi odsotnosti gumba
aplikacija izvaja v ozadju, dokler je uporabnik prisilno ne ustavi s pomočjo upravitelja
aplikacij.
Na podlagi testiranja izvorne aplikacije in uporabniške izkušnje smo zaznali naslednje
predloge za razširitev:

Samodejno predlaganje trenutne geolokacije potrošnika ob načrtovanju poti do izbrane
kmetije v začetnem koraku.

Izdelava nakupovalne košarice in s tem povezano optimalno načrtovanje poti med
izbranimi kmetijami.

Implementacija priporočilnega sistema sorodnih izdelkov in kmetij na podlagi trenutne
geolokacije potrošnika oziroma v okolici izbrane kmetije.

Vključitev ocenjevanja kmetij in njihovih izdelkov ter izdelava modula za primerjavo
cen izdelkov in ocen potrošnikov.

Omogočiti povečavo pisave in slik v aplikaciji, predvsem za uporabnike z manjšimi
zasloni in za slabovidne.
3.3.2
Implementacija in testiranje delovanja posodobitev
Po pregledu nadaljnjih možnosti za popravke in razširitve aplikacije je bilo izvedenih nekaj
dopolnil. Vse prilagojene datoteke so v datoteki »update_dejan.zip« in na voljo za prenos s
strežnika na povezavi »http://178.172.41.69/Downloads/update_dejan.zip«. Datoteke so v
stisnjeni ZIP-datoteki in urejene v identično datotečno strukturo, kot je na spletnem strežniku.
ZIP-datoteko se lahko tako preprosto razširi v korenski imenik novo postavljenega spletnega
strežnika s prednaloženimi vsemi ustreznimi moduli za razvoj aplikacije LOKeT.
Pri odločitvi za implementacijo izboljšav se je upoštevalo ugotovitve, predstavljene v
nadaljevanju. Prva ugotovitev je neprilagojen pogled na vrstico za filtriranje in razvrščanje
izdelkov v zavihku »Tržnica«. Na Sliki 3.12 je razviden pogled na omenjeno vrstico z
iskalnimi parametri na manjšem zaslonu pred izboljšavo. Spustna seznama s parametri sta v
različnih vrsticah in nista povsem dobro vidna uporabniku aplikacije. Na Sliki 3.13 pa je
prikazan pogled na vrstico z iskalnimi parametri na večjem zaslonu pred izboljšavo. Pri
nekaterih večjih zaslonih aplikacija v spustnem seznamu odreže spodnji del elementov.
40
Slika 3.12: Pogled na vmesnik na manjšem zaslonu pred izboljšavo
Vir: Zidar, lastni prikaz (2014)
Slika 3.13: Pogled na vmesnik na večjem zaslonu pred izboljšavo
Vir: Zidar, lastni prikaz (2014)
41
Uporabniško izkušnjo lahko izboljšamo tudi z odpravo sporočil, kot je nerazumljivo
obvestilo, ki ga javi aplikacija ob izboru kategorije brez vnosov. Uporabnik v tem primeru ne
ve, ali gre za napako v izvorni aplikaciji ali na strežniku. Obvestilo je prikazano na Sliki 3.14.
Slika 3.14: Obvestilo, ki ga javi aplikacija pri izboru kategorije brez vnosov
Vir: Zidar, lastni prikaz (2014)
Ravno tako lahko izboljšamo pogled na informacijo o aplikaciji, kjer povezava na opis
podjetja, ki je aplikacijo izdelalo, ne deluje, kot bi morala. Slika 3.15.
Slika 3.15: Pomanjkljivost pri pogledu na informacije o avtorju aplikacije
Vir: Zidar, lastni prikaz (2014)
Ob kliku na elektronski naslov v profilu kmetije ne deluje povezava oziroma preusmeritev na
pošiljanje elektronskega sporočila. Gumb »Pošlji email« pa za razliko od povezave deluje in
uporabniku ponudi možnost izbire odjemalca elektronske pošte. Moteče je, ker pošiljanje
elektronskega sporočila na enem mestu deluje, na drugem pa ne. Uporabnik aplikacije bi
pričakoval, da povezava do odjemalca elektronske pošte deluje in je ni potrebno ročno
kopirati v polje za prejemnika elektronskega sporočila.
42
V nadaljevanju so podrobno predstavljeni postopki odprave pomanjkljivosti. Vsaka izvedena
implementacija popravkov je testirana na različnih mobilnih napravah z nameščenim
operacijskim sistemom Android. Delovanje aplikacije se je preverilo na različnih mobilnih
telefonih in tabličnem računalniku. Ustreznih podatkov o uporabniški izkušnji z aplikacijo
LOKeT ni bilo mogoče pridobiti, saj je projekt trenutno v fazi zagona in pilotskega testiranja.
To je bil tudi razlog, da sem predloge popravkov in potencialnih razširitev predlagal na
podlagi lastne uporabniške izkušnje.
3.3.2.1 Implementacija popravkov vmesnika za iskanje izdelkov
Za implementacijo popravkov omenjene in prikazane težave, na Slikah 3.12 in 3.13, je bilo
potrebno najprej ugotoviti, kje se težava pojavi. Težava se pojavi pri potrošnikovem
pregledovanju izdelkov. Potrošnikovi pogledi oziroma spletni pogledi na aplikacijo se
nahajajo na spletnem strežniku. Spustna seznama je torej mogoče oblikovati s pomočjo
dostopa do spletnega strežnika. V tem primeru je bilo potrebno oblikovati izgled in postavitev
oziroma širino spustnih seznamov, da bo pogled na iskalne parametre poskrbel za boljšo
uporabniško izkušnjo potrošnikov. Spustne sezname je mogoče oblikovati s CSS (Cascading
Style Sheets). CSS je slogovna podloga, ki določa izgled HTML-elementov na spletni strani.
Pogosto se slogovno oblikovanje nahaja v ločeni datoteki, ki je naknadno vključena v HTMLdokument (W3Schools, 23. junij 2014). Za oblikovanje in popravek izgleda je bilo potrebno
urediti datoteko »loket.css«, ki se nahaja v direktoriju »fileadmin/templates/html«. Za
prilagajanje izgleda spustnega seznama je bilo potrebno ponastaviti in urediti privzeti izgled,
ki ga nudi spletni pregledovalnik, vgrajen v mobilni aplikaciji. Na Sliki 3.16 je del CSSskripte, ki prikazuje dodatno oblikovanje spustnih seznamov.
43
Slika 3.16: Del CSS-skripte z elementi oblikovanja spustnih seznamov
Vir: Zidar, lastni prikaz (2014)
Pri prepisovanju privzete oblike spustnega seznama so bile za lepši izgled ustvarjene in
prikazane puščice, ki se pogosto pri spustnih seznamih pojavijo na desni strani. Izgled in
kreacija puščic sta razvidna s Slike 3.17.
Slika 3.17: Izgled puščic, uporabljenih ob desni strani spustnih seznamov
Vir: Zidar, lastni prikaz (2014)
Sličica
puščic
z
imenom
»loket_arrows.png«
je
bila
naložena
v
direktorij
»typo3conf/ext/ag_loket/Resources/Public/Icons«. Zadnji popravek pri prilagajanju izgleda
spustnih seznamov je bil krajšanje napisa pri prvem seznamu iz »Izberite kategorijo izdelkov
...« v »Izberite kategorijo ...«. Napis se je skrajšal zaradi prilagoditve izgleda na manjših
44
zaslonih, sicer je spustni seznam za izbiro kategorije predolg in se seznam za izbiro
razvrščanja skrije za prikazane izdelke. Omenjeni napis se je skrajšalo v datoteki »Filter.html,
ki se nahaja v direktoriju »typo3conf/ext/ag_loket/Resources/Private/Partials/Produkt«.
Prilagojeno datoteko »Filter.html« prikazuje Slika 3.18.
Slika 3.18: Prilagojen privzeti napis v spustnem seznamu za izbiro kategorije izdelkov
Vir: Zidar, lastni prikaz (2014)
Končni prilagojeni izgled aplikacije na manjšem in večjem zaslonu je prikazan na Sliki 3.19
in Sliki 3.20.
45
Slika 3.19: Prilagojen izgled spustnih seznamov na manjšem zaslonu
Vir: Zidar, lastni prikaz (2014)
Slika 3.20: Prilagojen izgled spustnih seznamov na večjem zaslonu
Vir: Zidar, lastni prikaz (2014)
46
3.3.2.2 Implementacija popravkov, ki jo javi aplikacija ob izboru kategorije brez vnosov
Tudi pomanjkljivost, prikazana na Sliki 3.14, je bila odkrita med testiranjem aplikacije. Za
implementacijo popravka te pomanjkljivosti je bilo potrebno ugotoviti natančno aktivnost, pri
kateri se to zgodi. To pomanjkljivost opazimo, ko izbrana kategorija nima vnosov, ima pa
vklopljeno preverjanje, da nobeden izmed zahtevanih parametrov iz podatkovne baze ne sme
biti prazen. Da bi to preverjanje izklopili ali kako drugače obšli, bi morali nekoliko globlje
poseči v jedro TYPO3 CMS-sistema. Alternativna rešitev je bila, da se napako identificira,
preden se zgodi. Tako lahko na preprost način preskočimo prikazovanje izdelkov, kjer ni
vnosov, in javimo, da iskalni zahtevek nima rezultatov za prikaz. Za prestrezanje neželenega
dogodka, ki se v tem primeru zgodi, je določena privzeta sistemska funkcija »errorAction«, ki
se
nahaja
v
datoteki
»ActionController.php«
v
direktoriju
»typo3/sysext/extbase/Classes/Mvc/Controller« in v razredu »ActionController«. Funkcijo
»errorAction« je bilo potrebno ponovno definirati in prepisati v razredu »ProduktController«,
ki razširja razred »ActionController« in se nahaja v datoteki »ProductController.php« in
direktoriju
»typo3conf/ext/ag_loket/Classes/Controller«. Na novo definirana funkcija
»errorAction« je prikazana na Sliki 3.21.
47
Slika 3.21: Na novo definirana funkcija »errorAction«
Vir: Zidar, lastni prikaz (2014)
Funkcija »errorAction« najprej prebere parametre, ki so bili posredovani razredu
»ProduktController« in jih shrani v tabelo, da so bolj pregledno dostopni za nadaljnjo
obdelavo. V primeru, da se zgodi neželena aktivnost, lahko počistimo pomnilnik, ki se ga
trenutno ne potrebuje. Nato se spletnemu pogledu, ki ga uporabnik vidi na mobilni aplikaciji
ali spletni strani, pošlje potrebne parametre, kot so izbrana kategorija, izbrano razvrščanje
izdelkov in geolokacijo uporabnika. Dodatno se pošilja tudi indikator, da je bilo iskanje
prazno, in nastavitve, da je iskanje po kategoriji možno tudi v primeru praznega iskalnega
rezultata. Dodatni indikator, da je bilo iskanje neuspešno, se potem uporabi za vključitev
napisa »Za izbrano kategorijo ni vnosov« v pogledu uporabnika aplikacije. Za prikaz
omenjenega napisa je bilo potrebno prilagoditi predlogo spletnega pogleda na aplikacijo.
Predloga spletnega pogleda se nahaja v datoteki »List.html«, ta pa se nahaja v direktoriju
»typo3conf/ext/ag_loket/Resources/Private/Templates/Produkt«. Na Sliki 3.22 je prikazan del
predloge spletnega pogleda, ki omenjen napis prikaže v primeru poizvedovanja izdelkov v
kategoriji brez vnosov.
48
Slika 3.22: Prilagoditev predloge spletnega pogleda za prikaz napisa
Vir: Zidar, lastni prikaz (2014)
Namesto nerazumljivega obvestila pri filtriranju izdelkov po kategorijah se prikaže obvestilo
uporabniku, da za izbrano kategorijo ni izdelkov. Omogočeno je tudi nadaljnje filtriranje in
razvrščanje, kar je bilo pred tem zaradi odkrite pomanjkljivosti onemogočeno. Obvestilo in
spustna seznama ob neuspešnem iskanju sta prikazana na Sliki 3.23.
Slika 3.23: Obvestilo ob izboru kategorije brez vnosov
Vir: Zidar, lastni prikaz (2014)
49
3.3.2.3 Implementacija popravka povezave pri informacijah o avtorju aplikacije
Pomanjkljivost, prikazana na Sliki 3.15, je bila prav tako odkrita med testiranjem aplikacije.
Za implementacijo popravka te pomanjkljivosti je bilo potrebno poiskati lokacijo trenutne
povezave. To pomanjkljivost je bilo mogoče odpraviti preko spletne administracije TYPO3
CMS-sistema. V administraciji pod razdelkom »Page« so shranjeni pogledi na določene
elemente aplikacije. V seznamu je mogoče odpreti pogled na razdelek »Info«, kjer so na voljo
tudi parametri za urejanje pogleda, kot je razvidno s Slike 3.24.
Slika 3.24: Pogled na urejevalno okolje razdelka »Info«
Vir: Zidar, lastni prikaz (2014)
S pomočjo administrativnega vmesnika smo pogled na informacije o aplikaciji razdelili na
več elementov. Pred izboljšavo je bil na pogledu »Info« prisoten razdelek z elementoma tekst
in slika. Tega razdelka ni bilo mogoče prilagoditi tako, da bi prisotni sliki dodali zunanjo
povezavo. Zato je bilo potrebno razdelek ločiti na besedilni in slikovni del. Tako je bilo
mogoče razdelku s sliko oziroma z logotipom podjetja, ki je aplikacijo izdelalo, dodati
povezavo na njihovo spletno stran. Spletna stran podjetja se nahaja na URL-naslovu
»http://www.agenda.si«. To prikazuje Slika 3.25. Predhodni združeni razdelek pa smo
50
izključili iz prikaza na pogledu v aplikaciji. Izboljšan pogled na informacije o podjetju pa
podrobneje prikazuje Slika 3.26.
Slika 3.25: Vmesnik za dodajanje zunanjih povezav
Vir: Zidar, lastni prikaz (2014)
Slika 3.26: Izboljšan pogled na informacije o podjetju
Vir: Zidar, lastni prikaz (2014)
Izboljšava pogleda na informacije o avtorju aplikacije je z vidika uporabniške izkušnje in
podjetja pomembna, saj nudi osnovne informacije o podjetju. Te informacije lahko služijo kot
51
posredno oglaševanje za pridobivanje potencialnih naročnikov aplikacij in pripomorejo k
prepoznavnosti podjetja.
3.3.2.4 Implementacija popravka pri pošiljanju elektronskega sporočila
Ob kliku na povezavo elektronskega naslova v profilu kmetije je za uporabnika nekoliko
moteče, da ne ponudi možnosti neposrednega pošiljanja sporočila s pomočjo odjemalca
elektronske pošte. Povezava do pošiljanja pa ustrezno deluje na gumbu »Pošlji email«. Pri
pregledu konfiguracijskih datotek aplikacije LOKeT je bilo ugotovljeno, da je ob podajanju
elektronskih naslovov vključena možnost zaščite proti neželenemu pošiljanju elektronske
pošte. Omenjena nastavitev se nahaja na spletnem strežniku v datoteki »page.config.ts«, ta pa
v direktoriju »fileadmin/templates/typoscript/page_configuration«. Posledično ta nastavitev
onemogoči uporabniku bližnjico do odjemalca elektronske pošte. Ta nastavitev bi bila
smiselna, v kolikor bi enako funkcionalnost za podajanje elektronskih naslovov uporabili tudi
za gumb »Pošlji email«. Pomanjkljivost je bila odpravljena tako, da je bil del nastavitev, ki jih
aplikacija prebere, označen kot komentar. Ta del kode je bil označen kot komentar z
namenom, da omogoči razvijalcu, ki bi želel to funkcionalnost kasneje uporabiti, enostaven
vklop. Pri tem je potrebno biti pozoren, da se enako funkcionalnost poveže tudi z gumbom
»Pošlji email«. Del urejene kode v nastavitveni datoteki je prikazan na Sliki 3.27.
Slika 3.27: Del kode za preprečevanje pošiljanja neželene elektronske pošte
Vir: Zidar, lastni prikaz (2014)
52
3.3.3 Pregled predlogov in implementiranih izboljšav
V tem poglavju so povzeti predlogi izboljšav in kratek opis, na kakšen način so bile nekatere
izmed njih izvedene. Podano je tudi, kateri gradnik v arhitekturi platforme LOKeT se pri
izboljšavi uporabi. To je razvidno iz Tabele 3.1. Arhitektura platforme LOKeT pa je
podrobneje opisana v prilogi Arhitektura platforme LOKeT.
Tabela 3.1: Pregled predlogov in implementacija izboljšav
Predlog izboljšave
Optimiziranje odpiranja nekaterih
zavihkov
Implementacija
izboljšave
Ni bila izvedena.
Mesto izboljšave v
arhitekturi LOKeT
Jedro TYPO3 CMSsistema
Prilagoditev vmesnika za filtriranje in Prilagojen z urejanjem
razvrščanje izdelkov
CSS aplikacije.
Razširitev v TYPO3
CMS-sistemu
Prilagoditev odzivnega razmerja
nekaterih ikon
Razširitev v TYPO3
CMS-sistemu
Ni bila izvedena.
Odprava pomanjkljivosti pri filtriranju Odpravljena s ponovnim
po kategorijah, ki nimajo vnosov
definiranjem funkcije
TYPO3 CMS-ja.
Razširitev v TYPO3
CMS-sistemu
Zamenjava povezav na gumbih
»Lokacija« in »Načrtuj pot do
kmetije«
Ni bila izvedena.
Razširitev v TYPO3
CMS-sistemu
Omogočanje ponovne zahteve za
načrtovanje poti
Ni bila izvedena.
Uporabniški vmesnik v
izvorni aplikaciji
Dodajanje manjkajočih podatkov v
razdelku »Podatki o kmetiji«
Ni bila izvedena.
Razširitev v TYPO3
CMS-sistemu
Omogočanje povezave na
elektronskem naslovu kmetije
Omogočeno z izklopom
sistemske nastavitve.
Razširitev v TYPO3
CMS-sistemu
Dodajanje povezave na spletno stran
podjetja ob kliku na logotip
Dodano preko
administracijskega
vmesnika TYPO3.
Administracija TYPO3
CMS-sistema
Dodajanje gumba za izhod iz
aplikacije
Ni bila izvedena.
Uporabniški vmesnik v
izvorni aplikaciji in
jedro aplikacije
Samodejno predlaganje trenutne
geolokacije potrošnika
Ni bila izvedena.
Razširitev v TYPO3
CMS-sistemu
53
Izdelava nakupovalne košarice in
optimalno načrtovanje poti
Ni bila izvedena.
Razširitev v TYPO3
CMS-sistemu
Implementacija priporočilnega
sistema sorodnih izdelkov in kmetij
Ni bila izvedena.
Razširitev v TYPO3
CMS-sistemu
Vključitev ocenjevanja kmetij in
njihovih izdelkov
Ni bila izvedena.
Razširitev v TYPO3
CMS-sistemu
Omogočitev povečave pisave in slik v Ni bila izvedena.
aplikaciji
Uporabniški vmesnik
na mobilni napravi
Vir: Zidar, lastni prikaz (2014)
4 ZAKLJUČEK
Pred začetkom pisanja diplomske naloge je bilo postavljeno raziskovalno vprašanje: »Ali
odprtokodne tehnologije doprinesejo k učinkovitejši integraciji razvojnih okolij v okviru
načrtovanja mobilnih aplikacij?« To je bilo tudi temeljno vprašanje projekta LOKeT v fazi
ugotavljanja primernih razvojnih okolij in tehnologij za razvoj mobilne aplikacije. Odgovor
na zastavljeno vprašanje sem poiskal s pomočjo pregleda ustreznih virov in literature. Pri
pregledu literature sem v teoretičnem delu diplomske naloge primerjal odprtokodna in
lastniška razvojna okolja. Pri tem sem se osredotočil predvsem na razvojna okolja, ki so bila
uporabljena pri izvedbi projekta LOKeT. Na podlagi primerjave uporabnosti, tržnega deleža,
prednosti in slabosti uporabljenih razvojnih okolij z ostalimi odprtokodnimi ter lastniškimi
različicami sem prišel do naslednjih ugotovitev:

Odprtokodna razvojna okolja so za uporabo in razvoj aplikacij finančno ugodnejša. Pri
tem pa se moramo zavedati, da se lahko v nekaterih primerih pojavijo določeni
dodatni stroški. Ti stroški so običajno povezani z lansiranjem končne aplikacije in niso
odvisni od vrste razvojnega okolja. To pomeni, da pogosto nastanejo pri zakupu
strežnikov in domen za omogočanje dostopa do aplikacije preko spletnih tehnologij.

Odprtokodna razvojna okolja imajo dobro izdelano dokumentacijo za pomoč pri
razvoju aplikacij. Dokumentacija je običajno na voljo preko spleta, tako kot tudi
mnogi spletni portali, namenjeni podpori razvijalcem pri morebitnih vprašanjih. Za
54
razliko pa imajo lastniška razvojna okolja na voljo le uradno dokumentacijo, ki je
priložena programski opremi, in pogosto nezanesljivo ter slabo odzivno nudenje
pomoči s strani podjetja.

Odprtokodna razvojna okolja uporablja veliko večje število uporabnikov kot lastniška,
zato so tudi hrošči in napake hitro identificirane ter odpravljene. Lastniška razvojna
okolja pa posodablja le podjetje, ki je razvojno okolje izdelalo. Pri zaznavanju napak
so odvisni od manjšega števila aktivnih uporabnikov, zato so pri izdelavi popravkov
slabše odzivni.

Odprtokodna razvojna okolja omogočajo uporabnikom z ustreznim znanjem, da si ga
prilagodijo lastnim potrebam. Pri lastniških razvojnih okoljih je potrebno za
prilagajanje programov kontaktirati podjetje, ki je razvojno okolje izdelalo. Pogosto te
dograditve niso brezplačne.

Lastniška razvojna okolja običajno niso tako pogosto uporabljena kot odprtokodna,
zato so redkeje tarča zlonamernih napadov. Posledično lastniška razvojna okolja
zagotavljajo višjo raven varnosti končnim uporabnikom.
V aplikativnem delu diplomske naloge sem se osredotočil na izboljšavo odprtokodne
platforme LOKeT. Izvedba tega dela je potekala v naslednjih fazah:

preučevanje arhitekture platforme,

integracija odprtokodnih razvojnih okolij za nadaljnji razvoj platforme,

prepoznavanje nadaljnjih izboljšav in popravkov,

izvedba izboljšav in popravkov s pomočjo programiranja in

testiranje izvedenih popravkov in izboljšav.
Na primeru mobilne aplikacije LOKeT so bili izvedeni naslednji popravki in izboljšave:

ustrezno prilagojen pogled na vrstico za filtriranje in razvrščanje izdelkov,

prilagoditev višine spustnih seznamov za filtriranje in razvrščanje,

odpravljena pomanjkljivost pri izbiri kategorije brez vnosov,

odpravljena pomanjkljivost pri prikazu podrobnejših informacij o avtorju aplikacije in

odpravljena pomanjkljivost ob kliku na povezavo elektronskega naslova.
Na podlagi lastne izkušnje pri izvedbi popravkov sem ugotovil, da so odprtokodna razvojna
okolja brezplačna, delujejo na različnih platformah in imajo dobro podprto dokumentacijo.
55
Dodatno pomoč pri vzpostavitvi celotnega razvojnega okolja za aplikacijo LOKeT in izvedbi
popravkov sem poiskal na spletnih straneh različnih odprtokodnih skupnostih.
Odprtokodna razvojna okolja so dostopnejša, pogosto brezplačna, imajo dobro podprto
dokumentacijo, redne popravke ter posodobitve in omogočajo prilagajanje lastnim potrebam.
Kljub nekaterim slabostim lahko potrdimo, da imajo odprtokodne tehnologije in platforme
pozitiven doprinos k učinkovitejši integraciji različnih razvojnih okolij v okviru načrtovanja
mobilnih aplikacij.
56
5 LITERATURA IN VIRI
1. AGENDA D. O. O. (2013) LOKeT [GitHub] 2. december 2013. Dostopno prek:
https://github.com/AgendaDOO/LOKeT (30. 5. 2014).
2. APPCELERATOR. Dostopno prek: http://www.appcelerator.com/ (10. 6. 2014).
3. AVRAM, ABEL (2012) A New Survey Shows what Cross-platform Tools Are
Preferred by Developers. InfoQ, 28. 2. 2012. Dostopno prek:
http://www.infoq.com/news/2012/02/Cross-Platform-Tools (24. 6. 2014).
4. BARRY, DOUGLAS K. in DICK, DAVID (2013) Web Services, Service-Oriented
Architectures, and Cloud Computing. Amsterdam: Morgan Kaufmann.
5. BLOOMTOOLS. Dostopno prek: http://www.bloomtools.com/articles/open-sourcevs-proprietary-cms.html (23. 6. 2014).
6. CENTER ODPRTE KODE SLOVENIJE. Dostopno prek: http://www.coks.si/ (12. 6.
2014).
7. CMS USAGE. Dostopno prek: http://cmsusage.com/ (23. 6. 2014).
8. CYPRESS NORTH (2014) Web Programming & Development. Open Source CMS vs
Proprietary CMS: An Unbiased Content Management System Comparison. Blog
[Online] 31. januar. Dostopno prek: http://cypressnorth.com/web-programming-anddevelopment/open-source-cms-vs-proprietary-cms/ (22. 6. 2014).
9. FINDTHEBEST. Dostopno prek: http://developmentsoftware.findthebest.com/d/n/Mobile-Development (24. 6. 2014).
10. FREE SOFTWARE FOUNDATION. Dostopno prek: http://www.fsf.org/ (16. 6.
2014).
11. GNU OPERATING SYSTEM. Dostopno prek: http://www.gnu.org/ (14. 6. 2014).
12. GONZÁLEZ-BARAHONA, JESÚS M., SEOANE PASCUAL, JOAQUÍN in
ROBLES, GREGORIO (2009) Introduction to Free Software. Barcelona: Eureca
Media, SL.
13. HECKER, FRANK (1999) Setting up shop: The business of open-source software.
IEEE software, 16 (1), str. 45−51.
14. HTTP ARCHIVE. Dostopno prek: http://httparchive.org/trends.php (17. 4. 2014).
57
58
15. IDEA (2011) Technology. Open Source vs. proprietary software. Blog [Online] 22.
julij. Dostopno prek: http://www.idea.org/blog/2011/07/22/open-source-vsproprietary-software/ (22. 6. 2014).
16. LESSIG, LAWRENCE (2005) Free Culture: The Nature and Future of Creativity.
ZDA: Penguin Group.
17. LEWIS, JARED (2014) Advantages & Disadvantages of a Proprietary System vs. an
Open Platform. Chron. Dostopno prek: http://smallbusiness.chron.com/advantagesthree-disadvantages-proprietary-system-vs-open-platform-38010.html (24. 6. 2014).
18. LOKET. Dostopno prek: http://loket.fis.unm.si (30. 5. 2014).
19. MCLAUGHLIN, BRETT (2011) What Is HTML5? Beijing: O'Reilly Media.
20. MERTIK, MATEJ (2013) Selecting Crossplatform for Mobile Application
Development: Food Market Communities LOKeT. Institute of IT Professionals, 24.
10. 2013. Dostopno prek: http://www.iitp.org.nz/conference2013/MatejMertik (4. 2.
2014).
21. MERTIK, MATEJ (2014) Building Food Market Communities With the Opensource
LOKeT Project. Journal of Applied Computing and IT (JACIT) 18 (1). Članek je
delovno gradivo in je v postopku objave.
22. NETCRAFT. Dostopno prek: http://news.netcraft.com/archives/2014/02/03/ (16. 06.
2014).
23. PILGRIM, MARK (2010) HTML5 Up and Running. Beijing: O'Reilly Media.
24. RHOTON, JOHN in HAUKIOJA, RISTO (2013) Cloud computing architected.
Recursive press.
25. ŠAVRIČ, JERNEJA (2011) Pravne posledice uporabe odprte kode v produkcijskih
rešitvah. V: RODIČ, BLAŽ (ur.) Odprta koda, konkurenčna prednost podjetij?
Otočec: Fakulteta za informacijske študije v Novem mestu, str. 24−34. Dostopno prek:
http://www.gzdbk.si/media/pdf/sekcije/informatika/posvet2011/zbornik_4pdbi_2011.p
df (22. 6. 2014).
26. THE OPEN SOURCE INITIATIVE. Dostopno prek: http://opensource.org (11. 6.
2014).
27. TYPO3. Dostopno prek: http://typo3.org (10. 6. 2014).
28. UBUNTU SLOVENIJA. Dostopno prek: https://www.ubuntu.si/ (17. 6. 2014).
29. W3COUNTER. Dostopno prek: http://www.w3counter.com/trends (17. 6. 2014).
59
60
30. W3SCHOOLS. Dostopno prek: http://www.w3schools.com/css/css_intro.asp (23. 6.
2014).
31. ZDNET (2009) Open Source. 11 Open Source Business Models. Blog [Online] 2.
december. Dostopno prek: http://www.zdnet.com/blog/open-source/11-open-sourcebusiness-models/5371 (22. 6. 2014).
61
PRILOGA
Arhitektura platforme LOKeT
Arhitektura platforme LOKeT
Vir: prirejeno po TYPO3 (2014)