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)
© Copyright 2024