59
Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova ulica 17 2000 Maribor, Slovenija Erik Kancler Primerjava učinkovitosti hibridnih aplikacij, izdelanih v orodju IBM Worklight z domorodnimi aplikacijami na pametnih mobilnih napravah Diplomsko delo Maribor, november 2014

Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

Fakulteta za elektrotehniko, računalništvo in informatiko

Smetanova ulica 17 2000 Maribor, Slovenija

Erik Kancler

Primerjava učinkovitosti hibridnih aplikacij,

izdelanih v orodju IBM Worklight z

domorodnimi aplikacijami na pametnih

mobilnih napravah

Diplomsko delo

Maribor, november 2014

Page 2: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

I

Diplomsko delo visokošolskega študijskega programa

1

Primerjava učinkovitosti hibridnih aplikacij,

izdelanih v orodju IBM Worklight z

domorodnimi aplikacijami na pametnih

mobilnih napravah

Diplomsko delo

Študent: Erik Kancler

Študijski program: visokošolski, računalništvo in informacijske tehnologije

Smer: računalništvo in informacijske tehnologije

Mentor: izr. prof. dr. Aleš Holobar

Lektorica: Pavla Premoša

Page 3: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

II

Page 4: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

III

ZAHVALA Zahvaljujem se mentorju izr. prof. dr. Alešu Holobarju, ki me je vodil skozi proces ustvarjanja diplomskega dela s ključnimi napotki in nasveti. Zahvaljujem se tudi moji družini, ki mi je omogočila študij in ves čas stala ob strani.

Page 5: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

IV

PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA PAMETNIH MOBILNIH NAPRAVAH Ključne besede: IBM Worklight, mobilne aplikacije, hibridne aplikacije, pametna mobilna naprava UDK: 004.4:621.397.7-026.26(043.2) Povzetek V diplomskem delu predstavimo programsko platformo IBM Worklight in podamo

primerjavo hibridnih aplikacij, razvitih s tem orodjem z domorodnimi rešitvami v

operacijskih sistemih Android in Windows Phone. V ta namen smo razvili tri aplikacije, in

sicer hibridno aplikacijo z orodjem IBM Worklight, domorodno aplikacijo v operacijskem

sistemu Android in domorodno aplikacijo v operacijskem sistemu Windows Phone. Pri

njihovi primerjavi nas je predvsem zanimalo, kolikšen je čas zagona in koliko sistemskih

sredstev porabi posamezna aplikacija. Ugotovili smo, da hibridne aplikacije, zgrajene z

orodjem IBM Worklight, porabijo nekoliko več sistemskih sredstev kot ekvivalentne

domorodne rešitve, vendar je tehnika programiranja hibridnih aplikacij toliko napredovala,

da končni uporabnik teh razlik ne opazi. Kljub napredku v odzivnosti hibridnih aplikacij je

uporabniška izkušnja nekoliko omejena, saj v primerjavi z domorodnimi rešitvami hibridne

aplikacije ne omogočajo razvoja dovršenega uporabniškega vmesnika.

Page 6: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

V

PERFORMANCE COMPARISON OF HYBRID APPLICATIONS, BUILT IN IBM

WORKLIGHT WITH THE NATIVE APPLICATIONS ON SMART MOBILE DEVICES

Key words: IBM Worklight, mobile applications, hybrid applications, smart mobile device

UDK: 004.4:621.397.7-026.26(043.2)

Abstract:

We present a software platform IBM Worklight and perform a mutual comparison of hybrid

applications, developed with this tool with the native solutions in the Android and Windows

Phone operating systems. For this purpose, we developed three applications with the

same simple functionality, namely, hybrid application developed in the IBM Worklight

platform, Android native and Windows Phone native application. We then mutually

compared start-up latencies and consumption of system resources in each application.

Results demonstrate slightly higher consumption of system resources by the hybrid

application, though, in our tests, this had practically no impact on the user’s experience.

Slightly bigger discrepancies between the native and hybrid application were noticed also

in the outlook of the graphical user interface.

Page 7: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

VI

Kazalo vsebine:

1 UVOD .............................................................................................................. 1

2 STANJE TEHNIKE .......................................................................................... 3

2.1 Razvoj mobilnih aplikacij ........................................................................................................ 3

2.2 Razvoj hibridnih mobilnih aplikacij .......................................................................................... 5

3 ZASNOVA, REŠITVE IN IMPLEMENTACIJA .................................................. 7

3.1 Razvojno orodje Eclipse in izvajalno okolje Android .............................................................. 7

3.2 Razvojno orodje Visual Studio in izvajalno okolje Windows Phone ....................................... 9

3.3 Razvojno orodje IBM Worklight ............................................................................................ 10

3.3.1 Vtičnik Worklight Studio .................................................................................................... 11

3.3.2 Strežnik Worklight............................................................................................................. 11

3.3.3 Programske komponente Device Runtime Components ................................................. 12

3.3.4 Upravljalnik Worklight Console ......................................................................................... 12

3.3.5 Tržnica IBM Application Center ........................................................................................ 13

3.3.6 Orodje IBM Mobile Test Workbench for Worklight ........................................................... 13

3.4 Spletni jeziki HTML5, CSS3 in JavaScript ........................................................................... 14

3.4.1 Spletni jezik HTML5.......................................................................................................... 14

3.4.2 Stilske podloge CSS3 ....................................................................................................... 14

3.4.3 Programski jezik JavaScript ............................................................................................. 15

3.5 Ogrodje Apache Cordova ..................................................................................................... 16

3.6 Zasnova rešitve v orodju Worklight ...................................................................................... 17

3.7 Zasnova domorodne rešitve v okolju Android ...................................................................... 23

3.8 Zasnova domorodne rešitve v okolju Windows Phone ........................................................ 27

4 ANALIZA REŠITVE ....................................................................................... 31

4.1 Primerjava časov zagona ..................................................................................................... 32

Page 8: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

VII

4.2 Primerjava porabe sistemskih sredstev ............................................................................... 33

4.3 Primerjava porabe sistemskih sredstev pri aplikacijah za dostop do senzorja GPS in

pospeškometra ................................................................................................................................. 35

5 SKLEPI IN DISKUSIJA .................................................................................. 38

6 VIRI: ............................................................................................................... 40

Page 9: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

VIII

Kazalo slik:

Slika 2.1: Pristopi k razvoju aplikacij (povzeto po [56]) ...................................................... 4

Slika 2.2: Struktura hibridne aplikacije (vir slike: [57])........................................................ 6

Slika 3.2: Komponente orodja IBM Worklight (povzeto po [59]) ........................................10

Slika 3.4: Primer klica domorodne funkcionalnosti s pomočjo ogrodja Apache Cordova.

Leva slika prikazuje izpis na mobilni napravi z iOS, desna pa na mobilni napravi z OS

Android (vir slike: [62]). ....................................................................................................16

Slika 3.5: Grafični elementi ogrodja Dojo v okoljih Windows Phone (leva slika) in Android

(desna slika). ...................................................................................................................17

Slika 3.6: Zaslonska maska Lokacija, implementirana v orodju IBM Worklight in prikazana

v OS Windows Phone (levo) in Android (desno). .............................................................18

Slika 3.7: Zaslonska maska s kamero, implementirana v orodju IBM Worklight in

prikazana v OS Windows Phone (levo) in Android (desno). .............................................19

Slika 3.8: Zaslonska maska s podatki o naši aplikaciji, implementirana v orodju IBM

Worklight in prikazana v OS Windows Phone (levo) in Android (desno). ..........................19

Slika 3.9: Zaslonska maska domorodne aplikacije v OS Android. ....................................23

Slika 3.10: Sestavljen spletni naslov za Googlovo storitev z vhodnimi parametri

obarvanimi v rdečo. .........................................................................................................23

Slika 3.11: Zaslonska maska »Lokacija« domorodne aplikacije v OS Windows Phone. ...27

Page 10: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

IX

Kazalo odsekov kode:

Odsek kode 3.1: Primer značke v stilski podlogi CSS ......................................................14

Odsek kode 3.2: koda XML z opisom parametrov pretvornika podatkov spletne storitve

interaktivnega zemljevida. ................................................................................................20

Odsek kode 3.3: koda v jeziku JavaScript za pridobivanje koordinat GPS. ......................21

Odsek kode 3.4: Uporaba ključa »Google maps API« z orodjem IBM Worklight. .............21

Odsek kode 3.5: koda za inicializacijo interaktivnega zemljevida »Google Maps« v orodju

IBM Worklight. .................................................................................................................22

Odsek kode 3.6: koda v jeziku JavaScript za zajem slike s knjižnico Apache Cordova v

orodju IBM Worklight. .......................................................................................................22

Odsek kode 3.7: koda v programskem jeziku Java, v kateri sprožimo zahtevo za

pridobivanje podatkov iz spletne storitve. .........................................................................24

Odsek kode 3.8: koda v programskem jeziku Java, v kateri izvedemo klic spletne storitve

(levi stolpec) in izločimo prejete podatke o lokaciji (desni stolpec). ..................................25

Odsek kode 3.9: primer podajanja ključa »Google Maps API« v androidovem manifestu.25

Odsek kode 3.10: koda v programskem jeziku Java, s pomočjo katere prikažemo podatke

na zemljevidu. ..................................................................................................................26

Odsek kode 3.11: metoda »zajemiSliko«, v kateri kličemo sistemsko aplikacijo za zajem

slike in metoda »onActivityResult«, v kateri prikažemo zajeto sliko. .................................26

Odsek kode 3.12: koda v programskem jeziku C#, v kateri sestavimo končni naslov

spletne storitve in izvedemo poizvedbo. ...........................................................................28

Odsek kode 3.13: koda v programskem jeziku C#, v kateri izvedemo razčlenitev podatkov

iz spletne storitve. ............................................................................................................28

Odsek kode 3.14: koda v programskem jeziku C#, v kateri prikažemo pridobljeno lokacijo

na zemljevidu. ..................................................................................................................29

Odsek kode 3.15: koda v programskem jeziku C#, v kateri kličemo sistemsko aplikacijo za

zajem slike in kasneje prikažemo zajeto sliko na zaslon. .................................................30

Page 11: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

X

Kazalo tabel:

Tabela 2.1: Primerjava načinov razvoja aplikacij (vir: [65]) ................................................ 5

Tabela 4.2: Primerjava porabe glavnega pomnilnika. Prikazane so povprečne vrednosti

standradni odkloni dvajsetih zagonov aplikacij. ................................................................34

Tabela 4.3: Primerjava porabe procesorskega časa. Prikazane so povprečne vrednosti

standradni odkloni dvajsetih zagonov aplikacij. ................................................................34

Tabela 4.4: Primerjava porabe glavnega pomnilnika za aplikacijo, ki dostopa do senzorja

GPS. Prikazane so povprečne vrednosti standradni odkloni dvajsetih zagonov aplikacij.

........................................................................................................................................35

Tabela 4.5: Primerjava porabe procesorskega časa za aplikacijo, ki dostopa do senzorja

GPS. Prikazane so povprečne vrednosti standradni odkloni dvajsetih zagonov aplikacij.

........................................................................................................................................36

Tabela 4.6: Primerjava porabe glavnega pomnilnika za aplikacijo, ki dostopa do

pospeškometra. Prikazane so povprečne vrednosti standradni odkloni dvajsetih

zagonov aplikacij. ............................................................................................................36

Tabela 4.7: Primerjava porabe procesorskega časa za aplikacijo, ki dostopa do

pospeškometra. Prikazane so povprečne vrednosti standradni odkloni dvajsetih

zagonov aplikacij. ............................................................................................................37

Page 12: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

XI

Uporabljene kratice:

IDE Integrated development environment (Integrirano razvojno okolje)

SDK Software Development Kit (nabor orodij za razvoj programske opreme)

API Application Programming Interface (aplikacijski programski vmesnik)

AVD Android Virtual Device (virtualna naprava z operacijskim sistemom

Android)

GPS Global Positioning System (globalni navigacijski satelitski sistem)

IDC International Data Corporation (ameriško podjetje za raziskavo in analizo

trga informacijskih tehnologij in telekomunikacij)

WYSIWYG What You See Is What You Get (kratica opisuje programe, pri katerih

uporabniški vmesnik omogoča, da uporabnik med delom vidi, kakšen bo

končni dokument na zaslonu oziroma na papirju)

XSL EXtensible Stylesheet Language (družina jezikov, ki omogočajo

oblikovanje, preoblikovanje in prikazovanje dokumentov XML)

AES Advanced Encryption Standard (kriptirni standard, ki ga je predlagal

ameriški nacionalni inštitut za standarde in tehnologijo NIST)

HTML HyperText Markup Language (označevalni jezik za oblikovanje

večpredstavnostnih dokumentov)

CSS Cascading Style Sheets (kaskadne stilske predloge)

OS Operacijski sistem

Page 13: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

1

1 UVOD

V današnjem svetu si težko predstavljamo življenje brez pametnih mobilnih naprav. Po

statističnih napovedih bo leta 2015 v uporabi 2 milijardi pametnih telefonov [34]. Prvi

pametni telefoni so se začeli pojavljati že leta 1992, vendar je bila njihova popularnost

zelo omejena. Večinoma so se uporabljali v podjetjih, saj so bili predragi, da bi si jih lahko

privoščili navadni smrtniki. Kljub temu, da so na tem področju razvijala velika podjetja, je

trajalo vse do leta 2007, da smo dobili prvi pametni telefon za vsak žep. Takrat je Apple

najavil in izdal prvi iPhone. Njegova začetna cena je bila 499$. Zaradi velikega interesa

po razvoju in objavi domorodnih mobilnih aplikacij je leta 2008 izdal še spletno tržnico App

Store [66].

Od leta 2007 do danes so pametni telefoni postali tako zmogljivi, da zlahka nadomestijo

osebne računalnike. Z njimi lahko brskamo po spletu, igramo igre, gledamo filme,

zajemamo slike. Zaradi popularnosti pametnih telefonov se je povečal interes podjetij po

vstopu na trg pametnih telefonov. Posledično se je razvilo več mobilnih operacijskih

sistemov, za katere je potrebno razvijati aplikacije. Trenutno najpopularnejši mobilni

operacijski sistem (OS) je Android, sledijo mu iOS, Windows Phone, BlackBerry OS in

Firefox OS.

Programerji se vsak dan srečujemo z izzivom razvoja aplikacije v najkrajšem možnem

času. Z razvito aplikacijo pa želimo pokriti čim večji delež na trgu. Pri razvoju mobilnih

aplikacij so se pojavile tri rešitve: razvoj v domorodnem okolju, razvoj spletne aplikacije in

razvoj hibridne aplikacije. Pri vsaki vrsti razvoja najdemo prednosti in slabosti.

Organizacija Gartner je napovedala, da bodo do leta 2016 hibridne aplikacije zavzemale

50% delež na mobilnem trgu. Visok delež hibridnih aplikacij bo po njihovih napovedih

posledica vedno večjega interesa podjetij za uporabo mobilnih aplikacij na različnih

platformah [25].

V diplomskem delu smo se poglobili v razvoj hibridne aplikacije z orodjem IBM Worklight

[5]. Zanimale so nas prednosti in slabosti razvoja aplikacije v tem orodju, kvaliteta

aplikacije v primerjavi z domorodnimi rešitvami ter porabljen čas in sredstva, potrebna za

razvoj aplikacije. V ta namen smo implementirali tri preproste aplikacije, ki smo jih testirali

na platformah Android [11] in Windows Phone [13].

Page 14: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

2

Najprej bomo v naslednjem poglavju opredelili načine razvoja mobilnih aplikacij, ki so

trenutno na voljo. Omenili bomo štiri načine razvoja aplikacij, njihove prednosti in slabosti.

Podrobneje si bomo ogledali razvoj hibridnih aplikacij; zakaj se je ta pristop v razvoju

pojavil, katere so njegove prednosti in slabosti.

V tretjem poglavju bomo predstavili orodja in tehnologije, ki smo jih uporabili pri razvoju

aplikacij, in podali primerjavo aplikacije, razvite v orodju IBM Worklight z domorodnima

rešitvama v operacijskih sistemih Android in Windows Phone. V ta namen smo vse tri

aplikacije namestili na različne mobilne naprave in izvedli analizo njihovega delovanja. V

sklopu primerjave aplikacij bomo dodali še rešitvi za dostop do senzorjev naprave, in sicer

senzorja GPS in pospeškometra, in tako primerjali učinkovitost dostopa do le-teh.

V diskusiji bomo podali dokončno oceno učinkovitosti razvoja aplikacij v orodju IBM

Worklight in analizirali učinkovitost delovanja razvitih aplikacij.

Page 15: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

3

2 STANJE TEHNIKE

2.1 Razvoj mobilnih aplikacij

Z razvojem mobilnih naprav se je pojavila potreba po razvoju mobilnih aplikacij. Mobilna

aplikacija je aplikacija, ki je razvita za majhne prenosne oziroma mobilne naprave, kot so

mobilni telefoni, pametni mobilni telefoni in tablični računalniki. Mobilne aplikacije so lahko

prednaložene na napravi, lahko pa jih na napravo naloži uporabnik [50].

S stalnim porastom uporabe mobilnih naprav se je povečala tudi potreba po razvoju

mobilnih aplikacij. Na voljo imamo več vrst mobilnih aplikacij, ki se razlikujejo predvsem v

pristopu v/pri razvoju.

Spletne aplikacije, ki se izvajajo v spletnem brskalniku mobilne ali namizne

naprave. Za zagon aplikacije mora brskalnik podpirati tehnologije HTML5 [19],

CSS3 [20] in JavaScript [21]. Prednost spletnih aplikacij je, da delujejo na

praktično vseh napravah in v vseh OS-ih (slika 2.1). Pri tovrstnih aplikacijah se

srečamo z omejitvami dostopa do senzorjev, ki jih nudi gostiteljska naprava.

Druga omejitev teh aplikacij je, da jih ne moremo naložiti na vedno bolj popularne

aplikacijske tržnice.

Hibridne spletne aplikacije so aplikacije, ki delujejo znotraj domorodnega

zabojnika (ang. container). Ta pristop omogoča dostop do določenega nabora

senzorjev naprave preko vnaprej implementiranih knjižnic. Omogočeno je

nalaganje aplikacij na aplikacijske tržnice.

Hibridne mešane aplikacije delujejo na enak način kot hibridne spletne

aplikacije, s to razliko, da omogočajo implementacijo domorodnih oken.

Domorodna okna so deli aplikacije, ki jih implementiramo v domorodnem jeziku.

To omogoča dostop do vseh funkcionalnosti gostujoče naprave, hkrati pa ni

potrebno implementirati celotnega vmesnika za vsako napravo posebej, temveč le

tiste dele, v katerih dostopamo do sistemskih funkcionalnosti naprave. Kot je

Page 16: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

4

razvidno na sliki 2.1, hibridne mešane aplikacije in hibridne spletne aplikacije

uvrščamo v skupno kategorijo hibridnih aplikacij.

Domorodne aplikacije so napisane v programskem jeziku, ki ga uporablja

posamezen OS. Prednost razvoja aplikacij v domorodnem jeziku predstavlja

dostop do vseh naprav, kot tudi hitrejše izvajanje aplikacij. Tako je omogočen

razvoj platformno specifičnega uporabniškega vmesnika. Le-ta omogoča

maksimalno uporabniško izkušnjo pri uporabi naše aplikacije. Slabost

domorodnega razvoja je, da je potrebno aplikacijo razvijati na novo za vsak

operacijski sistem.

Slika 2.1: Pristopi k razvoju aplikacij (povzeto po [56])

Vsak izmed opisanih pristopov pri razvoju aplikacij ima torej svoje prednosti in slabosti.

Optimalna izbira pristopa je odvisna od zasnove in namena aplikacije. V praksi se

odločamo na podlagi direktnih primerjav med platformami. Za to imamo na voljo na spletu

veliko primerjalnih tabel, ki omogočajo hiter in enostaven pregled funkcionalnosti, ki jih

nudi posamezen razvoj (tabela 2.1).

Page 17: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

5

Tabela 2.1: Primerjava načinov razvoja aplikacij (vir: [65])

Funkcija Domorodna

aplikacija

Hibridna aplikacija Spletna aplikacija

Razvojni jezik Izključno domorodni Domorodni in spletni

ali samo spletni

Samo spletni

Prenosljivost kode

in optimizacija

Je ni Visoka Visoka

Dostop do

domorodnih

funkcionalnosti

aplikacije

Visok Srednji Majhen

Ponovna uporaba

pridobljenega

znanja pri drugih

razvojih

Majhna Visoka Visoka

Napredna grafika Polna uporabnost Srednja uporabnost Srednja uporabnost

Fleksibilnost

nadgrajevanja

Majhna

(vedno preko aplikacijske

tržnice)

Srednja

(ponavadi preko aplikacijske

tržnice)

Velika

Vtis namestitve Visok

(aplikacijska tržnica)

Visok

(aplikacijska tržnica)

Srednji

(mobilni brskalnik)

2.2 Razvoj hibridnih mobilnih aplikacij

S vidika stroškov razvoja in vzdrževanja je zaželeno aplikacijo implementirati enkrat in jo

nato uporabljati na večih mobilnih napravah. V ta namen se je razvila implementacija

spletnih mobilnih aplikacij. Žal se je ta način programiranja mobilnih aplikacij v praksi

izkazal za manj uspešnega, saj je na voljo preveč različnih naprav z različnimi OS-i, ki iz

varnostnih razlogov ne dopuščajo dostopa do senzorjev naprave, imenika, koledarja ter

ostalih računalniških virov. Pojavila se je alternativna rešitev, ki omogoča razvoj hibridnih

aplikacij. Le-ta v primerjavi z razvojem v domorodnem okolju omogoča hiter in enostaven

razvoj mobilnih aplikacij, brez izgube naprednih domorodnih funkcionalnosti mobilne

naprave. Kot vidimo na sliki 2.2, hibridne aplikacije omogočajo razvoj uporabniškega

vmesnika in osnovnih funkcionalnosti s spletnimi tehnologijami HTML5, CSS3 in

JavaScript ter dostop do naprednejših funkcionalnosti z implementacijo domorodne kode.

Page 18: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

6

Slika 2.2: Struktura hibridne aplikacije (vir slike: [57])

Hibridne aplikacije so ponavadi razvite v programskih jezikih HTML5, CSS3 in JavaScript

ter domorodnem jeziku ciljne platforme. Pri tem jezika HTML5 in CSS3 uporabljamo za

izgradnjo uporabniškega vmesnika, jezik JavaScript pa za implementacijo osnovne logike

aplikacije. Za dostop do naprednejših funkcionalnosti mobilne naprave uporabljamo

domorodni jezik.

Za popoln izkoristek vseh funkcionalnosti, ki jih nudi mobilna naprava, je potrebno pri

hibridnih aplikacijah poznati vsaj osnove domorodnega jezika ciljne platforme. Kljub temu

je razvoj hibridnih aplikacij za več platform hitrejši od klasičnega razvoja aplikacij v

domorodnem jeziku. Tako si namreč prihranimo večkratni razvoj uporabniškega vmesnika

in osnovnih domorodnih funkcionalnosti, ki se v aplikaciji ponavljajo na vseh platformah.

Page 19: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

7

3 ZASNOVA, REŠITVE IN IMPLEMENTACIJA

Z namenom primerjave učinkovitosti hibridnih aplikacij, razvitih v orodju IBM Worklight,

smo testno aplikacijo, namenjeno operacijskima sistemoma Android in Windows Phone,

implementirali v treh različnih razvojnih okoljih. Za omenjena operacijska sistema smo se

odločili zaradi nabora mobilnih naprav, ki smo jih imeli na voljo v času izdelave diplomske

naloge. Aplikacije smo testirali na eni napravi z operacijskim sistemom Windows Phone in

treh različnih napravah z operacijskim sistemom Android. V aplikacijah smo želeli testirati

ključne funkcionalnosti, ki jih omogočajo mobilne naprave. Vse tri aplikacije so imele

uporabniški meni, s pomočjo katerega smo preklapljali med različnimi uporabniškimi okni.

Dostopale so do Googlove spletne storitve, ki s pomočjo imena, poštne številke in države

iskanega kraja vrne njegove GPS koordinate in jih kasneje prikaže na interaktivnem

zemljevidu. Za vpogled v uporabo domorodne funkcionalnosti mobilne naprave smo

implementirali preprost zajem slike s kamero in njen prikaz na zaslonu mobilne naprave.

V primeru operacijskega sistema Android smo domorodno aplikacijo implementirali v

orodju Eclipse [23], v primeru operacijskega sistema Windows Phone pa v orodju Visual

Studio [24].

3.1 Razvojno orodje Eclipse in izvajalno okolje Android

Eclipse je odprtokodno integrirano razvojno okolje, ki s pomočjo nabora vtičnikov (ang.

plug-in) omogoča razvoj spletnih, namiznih in mobilnih aplikacij. Eclipse omogoča razvoj

aplikacij za programske jezike Java, JavaScript, PHP, C++, COBOL, Perl in Ruby. Pod

imenom Eclipse se skriva tudi fundacija oziroma skupnost posameznikov in organizacij, ki

sodelujejo v želji po razvoju odprtokodne programske opreme. Njihovi projekti so

usmerjeni v izgradnjo odprte razvojne platforme, ki omogoča gradnjo, zagon in upravljanje

programske opreme skozi njen celoten življenjski cikel.

Razvojno orodje Eclipse je leta 2001 razvil in izdal IBM, podprto s strani konzorcija

ponudnikov programske opreme. Kljub temu, da IBM svoje produkte trži na podjetnem

nivoju, je leta 2004 nastala fundacija Eclipse, ki zagotavlja nevtralnost in odprtost

razvojnega okolja.

Page 20: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

8

Orodje Eclipse je sestavljeno iz različnih vtičnikov. Eden izmed njih je razvojno okolje za

operacijski sistem Android (ang. Android SDK). Android SDK omogoča razvoj, gradnjo,

testiranje in razhroščevanje aplikacij za mobilni OS Android. Z vtičnikom pridobimo

upravljalca razvojnega okolja (ang. SDK Manager), s pomočjo katerega lahko

nameščamo nove verzije operacijskega sistema Android, programske vmesnike knjižnic

(ang. API), popravke in nove verzije razvojnega okolja ter upravljavca navideznih naprav

(ang. Android Virtual Device Manager), s pomočjo katerega lahko ustvarimo virtualno

napravo z OS Android ter na njej testiramo razvite aplikacije.

Mobilni OS Android je razvilo podjetje Android Inc., ki je leta 2005 prevzel Google. Od leta

2005 do danes je ta mobilni OS doživel veliko število posodobitev. Trenutna zadnja

uradna verzija je Android 4.4. KitKat, na voljo je pa že Android L Developer Preview, ki

omogoča razvijalcem, da pripravijo svoje aplikacije na to posodobitev. Android je danes

najpopularnejši mobilni OS. Kot je razvidno na sliki 3.1, Android že leta dominira na trgu

pametnih telefonov. Po podatkih podjetja IDC Corporate iz ZDA je Android trenutno

nameščen na skoraj 85 % pametnih telefonov [51].

Slika 3.1: Rast trga mobilnih operacijskih sistemov od leta 2011 do 2014. Povzeto po [51].

Page 21: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

9

Razlog za njegovo dominanco je v tem, da je eden izmed prvih mobilnih operacijskih

sistemov, ki je brezplačno na voljo vsem proizvajalcem pametnih mobilnih naprav in nudi

koncept aplikacijske tržnice. Kljub temu, da je odprt OS, je dovolj stabilen za vsakodnevno

uporabo in je lahko nameščen na vseh vrstah pametnih mobilnih naprav, od najcenejših

do najdražjih in najzmogljivejših. Razlog za njegov uspeh je tudi dejstvo, da

programerjem omogoča brezplačen razvoj aplikacij, ki jih lahko nato brezplačno objavijo

na njihovi aplikacijski tržnici Google Play. Edini strošek je plačilo 25 $ ob registraciji, s

pomočjo katerega želi podjetje Google preprečiti objavo nekakovostnih aplikacij [52].

3.2 Razvojno orodje Visual Studio in izvajalno okolje Windows Phone

Visual Studio je Microsoftovo razvojno okolje, ki omogoča razvoj spletnih, namiznih in

mobilnih aplikacij, ki se v večini uporabljajo v Microsoftovih operacijskih sistemih. Z

orodjem lahko gradimo aplikacije Windows Store, namizne aplikacije, mobilne aplikacije,

spletne aplikacije ASP.NET in spletne storitve XML. Omogoča pisanje kode v programskih

jezikih Visual Basic, Visual C#, Visual C++, Visual F# in JavaScript. Za enostavnejši

razvoj spletnih aplikacij in spletnih storitev XML nudi tudi programsko ogrodje .NET.

Microsoft je že od začetka devetdesetih let eno izmed osredjih podjetij, ki razvija

programsko opremo, aplikacije ter operacijske sisteme, ki se prilagajajo specifičnim

potrebam mobilnih naprav. Eden takšnih operacijskih sistemov je Windows Phone.

Windows Phone je naslednik operacijskega sistema Windows Mobile, ki je bil namenjen

predvsem uporabi znotraj podjetij. Za razliko od Windows Mobile je OS Windows Phone

razvit za vsakdanjega uporabnika, kar pomeni, da so naprave z OS Windows Phone

cenovno dostopnejše in usmerjene v masovno prodajo. Windows Phone je OS, ki

omogoča uporabo koncepta tržnice.

Kljub temu, da ima Windows Phone zelo majhen tržni delež na globalni ravni, pridobiva na

popularnosti v državah, kot so Argentina, Brazilija, Indija in Poljska, kjer ima enak ali večji

tržni delež kot iOS [53].

Page 22: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

10

3.3 Razvojno orodje IBM Worklight

Orodje IBM Worklight omogoča razvoj domorodnih, spletnih in hibridnih aplikacij. Razvito

je bilo z namenom pospešiti proces razvoja aplikacij za mobilne naprave. Orodje podpira

razvoj aplikacij za več operacijskih sistemov in naprav, povezavo in sinhronizacijo z

zunanjimi viri podatkov, integracijo varnostnih protokolov za izmenjavo podatkov in

upravljanje mobilnih aplikacij iz osrednjega vmesnika.

Kot večina orodij za razvoj hibridnih aplikacij temelji tudi orodje Worklight na tehnologijah

HTML5, CSS3 in JavaScript. Pri tem se jezika HTML5 in CSS3 uporabljata za oblikovanje

uporabniškega vmesnika, JavaScript pa poskrbi za izvajanje programske logike.

JavaScript je zmogljiv skriptni jezik, ki se uporablja v številnih sodobnih spletnih

aplikacijah. Zaradi njegove popularnosti so se začela razvijati orodja, ki olajšajo razvoj

aplikacij. Orodje IBM Worklight privzeto omogoča uporabo treh orodij jezika JavaScript, in

sicer Dojo Mobile [42], jQuery Mobile [43] in Sencha Touch [44].

Na sliki 3.1 vidimo, da je platforma IBM Worklight sestavljena iz več komponent, ki jih

podrobneje opisujemo v naslednjih podpoglavjih [6].

Slika 3.3: Komponente orodja IBM Worklight (povzeto po [59])

Page 23: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

11

3.3.1 Vtičnik Worklight Studio

Worklight Studio je prostodostopen vtičnik za orodje Eclipse, ki omogoča razvoj in

testiranje bogatih HTML5, hibridnih in domorodnih aplikacij. Omogoča dostop do

programskih vmesnikov naprave preko vmesnika Apache Cordova Bridge [22] in

oblikovanje tem, ki se samodejno prilagajajo izvajalnemu okolju. Glavne funkcionalnosti, ki

jih nudi Worklight Studio so:

razvoj HTML, hibridnih in domorodnih aplikacij,

dvosmerni WYSIWYG (»What you see is what you get«),

programski vmesnik PhoneGap, ki omogoča dostop do domorodnih

funkcionalnosti naprave,

uporaba domorodnih in spletnih jezikov znotraj ene aplikacije,

uporaba orodij Dojo Mobile, jQuery, Sencha Touch,

implementacija grafičnih predlog, ki se v aplikaciji incializirajo ob zagonu,

glede na platformo, v kateri se izvajajo.

3.3.2 Strežnik Worklight

Strežnik Worklight je zbirka spletnih aplikacij, ki se izvajajo na aplikacijskem strežniku in

tvorijo izvajalno okolje za pakete aplikacij, ki so napisane v orodju Worklight. Zasnovan je

tako, da se integrira v že obstoječe informacijsko okolje podjetja in uporablja že obstoječe

vire in infrastrukturo. Ta integracija je realizirana s pretvorniki podatkov (ang. adapters), ki

usmerjajo podatke iz podatkovnih sistemov podjetja in storitev v oblaku na uporabnikovo

napravo. Strežnik Worklight omogoča:

direkten dostop uporabnika do podatkovnih sistemov in oblačnih storitev podjetja,

konfiguriranje, testiranje in zagon opisnih datotek XML za povezavo z različnimi

podatkovnimi sistemi,

implementacijo aplikacij za zasebno tržnico (ang. Application Store),

zasnovo varnostne arhitekture s pomočjo varnostnega strežnika,

neposredne posodobitve (ni potrebe, da bi posodobitve prenašali preko posebne

aplikacije),

samodejno pretvorbo hierarhičnih podatkov v strukturo JSON za optimalno

prejemanje in pošiljanje podatkov,

potisna obvestila (ang. push notifications),

Page 24: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

12

združevanje kompleksnih podatkov iz več podatkovnih virov z namenom

zmanjšanja skupnega prometa (zelo pomembna lastnost aplikacij, ki delujejo v

mobilnem omrežju),

integracijo z varnostnimi in avtorizacijskimi rešitvami organizacije.

3.3.3 Programske komponente Device Runtime Components

Programske komponente, ki se izvajajo na strani odjemalca (ang. client-side runtime

components), omogočajo strežniške funkcionalnosti na strani aplikacije. Komponente

dopolnjujejo strežnik Worklight tako, da vnaprej definirajo vmesnike, ki omogočajo dostop

do nekaterih domorodnih funkcionalnosti naprave. Komponente nudijo:

programski vmesnik za povezovanje in avtentikacijo,

kriptiranje na napravi, nepovezavno avtentikacijo, izklop aplikacije na daljavo,

funkcionalnosti mobilnega odjemalca, kar omogoča dostop do programskih

vmesnikov naprave in potisnih sporočil,

nepovezavno mobilno podatkovno bazo,

programsko podporo izdelavi poročil in analitiki,

direktne posodobitve programske kode.

3.3.4 Upravljalnik Worklight Console

Upravljalnik Worklight Console ima ključno vlogo pri vodenju in upravljanju mobilnih

aplikacij. Nadzira vse delujoče aplikacije, podatkovne pretvornike in pravila potisnih

sporočil. S tem omogoča:

dodelitev specifičnih identifikacijskih števil napravam za zagotavljanje varne

komunikacije,

oddaljen izklop aplikacije glede na njeno verzijo ali tip naprave, na kateri se izvaja,

prilagajanje sporočil, ki jih upravljalnik pošlje uporabniku ob zagonu aplikacije,

zbiranje statističnih podatkov o uporabi aplikacije,

generiranje poročil uporabe,

izvoz poročil uporabe v različne podatkovne formate,

simuliranje različnih naprav preko vgrajenega mobilnega simulatorja.

Page 25: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

13

3.3.5 Tržnica IBM Application Center

Aplikacijski center (ang. IBM Application Center) je zasebna tržnica, ki jo lahko podjetje

uporablja, če ne želi svojih aplikacij deliti na javnih tržnicah. Podobno kot javne tržnice,

tudi aplikacijski center omogoča uporabniku, da lahko brska med aplikacijami, si ogleda

njihov opis, mnenja drugih uporabnikov, oceno aplikacije in si izbrano aplikacijo prenese

na mobilno napravo (slika 3.3). Aplikacijski center za razliko od javnih tržnic omogoča tudi,

da lahko določeno aplikacijo ponudimo na voljo samo določeni skupini uporabnikov. Za

dostop do centra mora biti uporabnik registriran in imeti mora nameščeno namestitveno

aplikacijo IBM Application Center [58].

Slika 3.3: zasebna tržnica IBM Worklight Application Center

3.3.6 Orodje IBM Mobile Test Workbench for Worklight

Za lažje testiranje razvitih mobilnih aplikacij so pri IBM-u razvili orodje Test Workbench, ki

ponuja paleto avtomatiziranih testov za mobilne aplikacije. Z njegovo pomočjo lahko

bistveno skrajšamo testno fazo razvoja mobilne aplikacije. Orodje omogoča namreč

integracijsko testiranje aplikacije v zgodnjih fazah njenega razvoja. Orodje Test

Workbench nudi [9]:

poenostavljeno ustvarjanje testnih pogojev,

hiter razvoj kompleksnih testnih scenarijev,

emuliranje strežniških obremenitev,

prilagoditve testiranj našim specifičnim potrebam.

Page 26: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

14

3.4 Spletni jeziki HTML5, CSS3 in JavaScript

Kot smo omenili, so spletni jeziki HTML5, CSS3 in JavaScript ključni jeziki pri razvoju

spletnih in hibridnih aplikacij.

3.4.1 Spletni jezik HTML5

HyperText Markup Language (HTML) je označevalni jezik, ki se uporablja za vizualno

ustvarjanje spletnih strani. Opisuje strukturo in vsebino spletne strani.

HTML5 je bil razvit z namenom zamenjati prejšnje verzije jezika HTML, in sicer HTML4,

XHTML in HTML DOM Level 2. Jezik omogoča predvajanje večpredstavnostne vsebine,

brez da bi morali uporabljati dodatne vtičnike, kot je na primer Flash [60]. HTML5 je tudi

neodvisen od izbrane platforme, kar pomeni, da deluje v različnih okoljih. Lahko ga

uporabljamo na računalniku, tablici, pametnem telefonu ali na pametni televiziji.

3.4.2 Stilske podloge CSS3

Jezik HTML ni bil nikoli namenjen oblikovanju dokumentov. Elemente za obliko

dokumenta so dodali verziji HTML 3.2, vendar so se v praksi izkazali za manj uporabne.

Elemente kot je <font> je bilo potrebno dodajati na čisto vsako spletno stran. Kot rešitev je

v verziji HTML 4 konzorcij W3C [61] razvil stilske podloge CSS oz. Cascading Style

Sheets. Slednje omogočajo, da se celotno oblikovanje dokumenta izvede v ločeni

datoteki. Tako lahko z urejanjem ene same datoteke spreminjamo izgled vseh strani v

projektu.

Različica CSS3 je zadnja verzija stilskih podlog CSS in vključuje nove elemente,

združljiva pa je tudi s prejšnjimi verzijami. Kljub temu, da je še vedno v razvoju, je večina

novih funkcij že podprta v vseh vidnejših spletnih brskalnikih.

Odsek kode 3.1: Primer značke v stilski podlogi CSS

Page 27: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

15

3.4.3 Programski jezik JavaScript

Objektno orientiran jezik JavaScript se v večji meri uporablja kot skriptni jezik za

implementacijo spletnih strani. Programi, napisani v jeziku JavaScript, se izvajajo na

odjemalčevi strani, kar pomeni, da se koda s spletne strani prenese v spletni brskalnik.

Jezik se uporablja za zasnovo dinamičnih spletnih strani in razširja funkcionalnosti

klasičnih spletnih strani, ki so implementirane v jeziku HTML.

V orodju Worklight se jezik JavaScript uporablja za implementacijo logike aplikacije.

Orodje Worklight vsebuje že v naprej implementirane segmente programske kode in

grafične elemente jezika JavaScript. Ti se v projekt uvozijo kot knjižnice in postanejo del

aplikacije. Grafični elementi omogočajo hiter, enostaven in zanesljiv razvoj spletnih in

mobilnih aplikacij. Orodje Worklight podpira ogrodja Dojo Mobile [42], jQuery Mobile [43]

in Sencha Touch [44].

Ogrodje Dojo Mobile je zasnovano na principu modularnosti [69]. To pomeni, da omogoča

vstavitev le tistih elementov ogrodja v aplikacijo, ki jih potrebujemo. Tak pristop omogoča

gradnjo odzivnih aplikacij, ki zasedejo čim manj sistemskih sredstev, hkrati pa se ni

potrebno odpovedati ideji hitrega razvoja aplikacij s pomočjo vnaprej implementiranih

ogrodij. Značilnost tega ogrodja je, da v času zagona aplikacije zazna platformo, na kateri

teče in le-tej prilagodi temo in programske gradnike. S tem pridobimo aplikacije, ki so

podobne domorodnim aplikacijam.

Ogrodje jQuery Mobile [43] izvira iz ogrodja za razvoj spletnih aplikacij jQuery [63].

Ogrodje je prilagojeno za ekrane na dotik in nudi vnaprej implementirane obrazce za lažji

in hitrejši razvoj aplikacij. Obrazci večinoma temeljijo na tehnologiji HTML 5 in s tem

zmanjšajo potrebo po uporabi skriptnega jezika JavaScript. Za razliko od ogrodja Dojo

Mobile je ideja ogrodja jQuery Mobile zasnovana tako, da izgradimo enoten uporabniški

vmesnik brez razlikovanja med platformami.

Kot vedno, se tudi pri uporabi jezika JavaScript pojavijo slabosti. Glavna slabost je

varnost. Varnostno vprašanje se pojavi zato, ker se programska koda izvaja na napravi

odjemalca, kar lahko omogoča dostop do uporabnikovega sistema in s tem posledično do

njegovih podatkov (gesla, bančni računi in slike). Kljub temu, da je zloraba programske

kode omejena z modernimi spletnimi standardi in brskalniki, je zloraba še vedno mogoča.

Eden pogostejših napadov je tako imenovani „cross-site-scripting“ (XSS) [49], ki izkorišča

ranljivosti v kodi spletne aplikacije tako, da pošilja zlonamerno vsebino uporabniku in z njo

Page 28: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

16

pridobiva uporabnikove podatke. Ker je napad XSS mogoč takrat, kadar koda v jeziku

JavaScript ni optimalno napisana, imamo na spletu na voljo preverjevalnik (ang. validator)

programske kode [68], ki le-to pregleda in nas opozori na možne ranljivosti. Druga slabost

jezika JavaScript je, da kljub poizkusom poenotenja standarda različni brskalniki različno

prikazujejo isto programsko kodo.

3.5 Ogrodje Apache Cordova

Pri gradnji hibridnih aplikacij se pojavi vprašanje, kako dostopati do domorodnih

funkcionalnosti mobilne naprave brez uporabe domorodne kode. Eno glavnih ogrodij na

tem področju je Apache Cordova [22]. Ogrodje je sestavljeno iz zbirke programskih

vmesnikov, ki omogočajo nameščanje aplikacije na tržnico posamezne platforme in

dostop do določenih domorodnih funkcionalnosti platforme.

Ogrodje Apache Cordova je v orodju Worklight ključnega pomena, saj omogoča hiter

razvoj aplikacij z dostopom do številnih funkcionalnosti mobilne naprave, brez da bi se

morali naučiti domorodnega jezika platforme.

Na sliki 3.4 vidimo preprost klic domorodne funkcionalnosti »Alert«. Kot je razvidno, je

izgled izpisanega opozorila odvisen od platforme, na kateri se izvaja hibridna aplikacija.

Slika 3.4: Primer klica domorodne funkcionalnosti s pomočjo ogrodja Apache Cordova. Leva slika

prikazuje izpis na mobilni napravi z iOS, desna pa na mobilni napravi z OS Android (vir slike: [62]).

Ko govorimo o ogrodju Apache Cordova, ne moremo mimo zmede glede tega ogrodja in

ogrodja PhoneGap. Slednje je nastalo leta 2009 kot projekt, katerega cilj je bil razviti

ogrodje, s pomočjo katerega bo mogoče razvijati spletne mobilne aplikacije in kljub temu

imeti možnost dostopa do domorodnih funkcionalnosti mobilnih naprav. Po treh letih je

Page 29: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

17

podjetje Adobe kupilo razvojno podjetje Nitobi in s tem pravice do ogrodja PhoneGap.

Kljub temu, da so imeli izključne pravice, so odprtokodno jedro ogrodja donirali

organizaciji Apache Software Foundation, kjer so ga poimenovali Cordova. S tem so tudi

drugim podjetjem omogočili hitrejši razvoj hibridnih aplikacij.

3.6 Zasnova rešitve v orodju Worklight

Našo testno aplikacijo smo jo razdelili na manjše sklope, ki vključujejo:

uporabniški vmesnik,

pridobivanje podatkov spletne storitve,

prikaz podatkov na interaktivnem zemljevidu,

zajem slike.

Pri gradnji uporabniškega vmesnika, ki ga prikazuje slika 3.5 smo uporabili orodje Dojo.

Za to orodje smo se odločili, ker nudi široko paleto vnaprej implementiranih elementov, ki

samodejno spremenijo obliko glede na OS, v katerem se izvajajo. V praksi to uporabniku

vzbudi občutek domačnosti in poveča možnosti, da bo z aplikacijo zadovoljen in jo bo

redno uporabljal.

Slika 3.5: Grafični elementi ogrodja Dojo v okoljih Windows Phone (leva slika) in Android (desna

slika).

Uporabniški vmesnik naše aplikacije je sestavljen iz treh zaslonskih mask in menija, ki

nam pomaga pri navigaciji med zaslonskimi maskami. Prva zaslonska maska opredeljuje

Page 30: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

18

lokacijo in je prikazana na sliki 3.6. Na njej najdemo tri vnosna polja, v katera vnesemo

znane podatke o kraju, ki ga iščemo. S pritiskom na gumb »Išči« aplikacija poišče

lokacijo iskanega kraja in le-to izriše na interaktivnem zemljevidu.

Slika 3.6: Zaslonska maska Lokacija, implementirana v orodju IBM Worklight in prikazana v OS

Windows Phone (levo) in Android (desno).

Drugo zaslonsko masko smo poimenovali »Kamera«. Prikazana je na sliki 3.7. Na njej pa

najdemo gumb »Slikaj«, ki nas popelje v sistemsko aplikacijo za zajem slike. Ko

zajamemo sliko in jo sprejmemo, se ta izriše v naši aplikaciji.

Page 31: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

19

Slika 3.7: Zaslonska maska s kamero, implementirana v orodju IBM Worklight in prikazana v OS

Windows Phone (levo) in Android (desno).

Na tretji zaslonski maski navajamo podatke o naši aplikaciji (slika 3.8).

Slika 3.8: Zaslonska maska s podatki o naši aplikaciji, implementirana v orodju IBM Worklight in

prikazana v OS Windows Phone (levo) in Android (desno).

Kot smo opisali zgoraj, nam orodje Worklight pri pridobivanju podatkov iz spletne storitve

olajša delo z vnaprej implementiranimi pretvorniki podatkov (ang. adapters). Naša naloga

Page 32: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

20

je bila, da v pretvorniku definiramo protokol, domeno in vrata (ang. port) spletne storitve.

Odsek kode 3.2 prikazuje primer datoteke XML, v kateri podamo zahtevane parametre.

Odsek kode 3.2: koda XML z opisom parametrov pretvornika podatkov spletne storitve

interaktivnega zemljevida.

Ob pritisku na gumb »Dobi lokacijo« na zaslonski maski »Lokacija« podamo še vhodne

parametre, ki jih navajamo v odseku kode 3.3. Podati je potrebno tip odgovora (v našem

primeru niz v formatu JSON), pot do metode spletne storitve in parametre metode. Ob

prejemu odgovora iz spletne storitve izvedemo filtriranje nerelevantnih podatkov, saj tako

zmanjšamo nepotreben promet med napravo in strežnikom. Filtrirane podatke nato v

formatu JSON pošljemo na mobilno napravo.

Page 33: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

21

Odsek kode 3.3: koda v jeziku JavaScript za pridobivanje koordinat GPS.

Ko pridobimo podatke o lokaciji iskanega kraja, jih prikažemo na interaktivnem zemljevidu.

V našem primeru smo podatke prikazali na zemljevidu podjetja Google. Za uporabo teh

zemljevidov smo morali na njihovi strani pridobiti ključ »Google Maps API Key«, s katerim

nas lahko podjetje Google identificira in tako prepreči zlorabo njihovih storitev. Uporaba

ključa je razvidna v odseku kode 3.4.

Odsek kode 3.4: Uporaba ključa »Google maps API« z orodjem IBM Worklight.

Naslednji korak vključuje izris grafične oznake (ang. marker) iskane lokacije na

interaktivnem zemljevidu. Prikazuje ga odsek kode 3.5.

Page 34: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

22

Odsek kode 3.5: koda za inicializacijo interaktivnega zemljevida »Google Maps« v orodju IBM

Worklight.

Zadnji implementirani sklop naše aplikacije je bil zajem slike, ki je prikazan v odseku kode

3.6. Ta sklop zahteva dostop do senzorjev na mobilni napravi in s tem presega omejitve

spletnih aplikacij. Mi smo uporabili eno izmed vnaprej napisanih skript iz knjižnice Apache

Cordova [22], ki jo orodje Worklight privzeto namesti v vsako aplikacijo.

Odsek kode 3.6: koda v jeziku JavaScript za zajem slike s knjižnico Apache Cordova v orodju IBM

Worklight.

Page 35: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

23

3.7 Zasnova domorodne rešitve v okolju Android

Kot pri orodju Worklight smo tudi v okolju Android razvoj aplikacije razdelili v manjše

sklope, ki vključujejo:

1. uporabniški vmesnik,

2. pridobivanje podatkov iz spletne storitve,

3. prikaz podatkov na interaktivnem zemljevidu,

4. zajem slike.

Uporabniški vmesnik prikazuje slika 3.9. Zgradili smo ga s pomočjo treh fragmentov (ang.

fragments) ter menija za navigacijo med njimi. Posamezen fragment predstavlja zaključen

del programske kode oziroma del uporabniškega vmesnika znotraj aplikacije.

Slika 3.9: Zaslonska maska domorodne aplikacije v OS Android.

Kljub temu, da OS Android nima integriranega posebnega vmesnika za komunikacijo s

spletno storitvijo, je pridobivanje podatkov iz spletne storitve enostavno. Prvi korak je

sestavljanje spletnega naslova storitve. Ta korak je pomemben, saj moramo v statični

naslov vstaviti vhodne parametre spletne storitve. Primer naslova prikazuje slika 3.10:

Slika 3.10: Sestavljen spletni naslov za Googlovo storitev z vhodnimi parametri obarvanimi v rdečo.

Page 36: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

24

Klic spletne storitve smo izvedli v razredu »AsyncTask« (odsek kode 3.7). Ta omogoča

opravljanje operacij v ozadju in kasnejši prikaz na uporabniškem vmesniku brez potrebe

po manipulaciji niti.

Odsek kode 3.7: koda v programskem jeziku Java, v kateri sprožimo zahtevo za pridobivanje

podatkov iz spletne storitve.

V funkciji »doInBackground« smo zagnali dve metodi, ki sta prikazani v odseku kode 3.8.

V prvi metodi se izvede poizvedba in zapis pridobljenih podatkov v niz. V drugi metodi se

iz teh podatkov izločijo podatki o pridobljeni lokaciji.

Page 37: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

25

Odsek kode 3.8: koda v programskem jeziku Java, v kateri izvedemo klic spletne storitve (levi

stolpec) in izločimo prejete podatke o lokaciji (desni stolpec).

Ko smo pridobili podatke o lokaciji, jih moramo še prikazati na zemljevidu. Tudi v tem

primeru smo uporabili storitev »Google Maps«, saj je to privzeta storitev za delo z

zemljevidi na OS Android. Tudi v tem primeru je bil predpogoj za uporabo zemljevidov

ključ »Google Maps API«, ki ga vstavimo v Androidov manifest (ang. Android Manifest),

prikazan v odseku kode 3.9:

Odsek kode 3.9: primer podajanja ključa »Google Maps API« v androidovem manifestu.

Naša naloga je še prikaz mape in pridobljenih koordinat v aplikaciji. To storimo v odseku

kode 3.10.

Page 38: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

26

Odsek kode 3.10: koda v programskem jeziku Java, s pomočjo katere prikažemo podatke na

zemljevidu.

Naslednji korak pri razvoju aplikacije je bila implementacija zajema slike, ki je razvidna v

odseku kode 3.11. Za uporabo kamere je v Androidov manifest potrebno dodati dovoljenja

za dostop do kamere. Implementacija zajema slike je dokaj preprosta, saj moramo samo

sprožiti sistemsko aplikacijo za zajem s kamere in obdelati prejete rezultate.

Odsek kode 3.11: metoda »zajemiSliko«, v kateri kličemo sistemsko aplikacijo za zajem slike in

metoda »onActivityResult«, v kateri prikažemo zajeto sliko.

Page 39: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

27

3.8 Zasnova domorodne rešitve v okolju Windows Phone

Kot pri prejšnjih aplikacijah smo razvoj aplikacije razdelili v manjše sklope, ki zajemajo:

1. uporabniški vmesnik,

2. pridobivanje podatkov iz spletne storitve,

3. prikaz podatkov na interaktivnem zemljevidu,

4. zajem slike.

Za gradnjo uporabniškega vmesnika, prikazanega na sliki 3.11, smo v OS Windows

Phone uporabili programsko komponento »Windows Phone Panorama«. To je dolgo

horizontalno platno, ki je sestavljeno iz več objektov. Ti objekti se imenujejo

»PanoramaItems« in služijo kot zabojniki za vsebino posamezne zaslonske maske.

Uporaba te komponente omogoča implementacijo dinamičnih prehodov med zaslonskimi

maskami brez posebne implementacije menija.

Slika 3.11: Zaslonska maska »Lokacija« domorodne aplikacije v OS Windows Phone.

Kot vidimo v odseku kode 3.12, je za poizvedbo podatkov potrebno zgraditi naslov spletne

storitve in podati iskalne parametre. S sestavljenim naslovom se nato z asinhrono

poizvedbo izvede pridobivanje podatkov.

Ob uspešno pridobljenih podatkih iz spletne storitve izvedemo razčlenitev podatkov

(odsek kode 3.13).

Page 40: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

28

Odsek kode 3.12: koda v programskem jeziku C#, v kateri sestavimo končni naslov spletne storitve

in izvedemo poizvedbo.

Odsek kode 3.13: koda v programskem jeziku C#, v kateri izvedemo razčlenitev podatkov iz

spletne storitve.

Page 41: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

29

Ker so na OS Windows Phone privzeti zemljevidi storitve »Bing Maps«, smo se odločili,

da jih bomo uporabili za prikaz pridobljenih koordinat. Predpogoj za njihovo uporabo je, da

v manifestu aplikacije dodamo dovoljenje za uporabo zemljevidov in trenutne lokacije. Kot

vidimo v odseku kode 3.14, je prikaz mape zelo enostaven, saj je realiziran z elementom

»Map«, kateremu se določi središče in stopnja približevanja.

Odsek kode 3.14: koda v programskem jeziku C#, v kateri prikažemo pridobljeno lokacijo na

zemljevidu.

Zadnji korak pri razvoju aplikacije je ponovno zajem slike. Enako kot v prejšnjih primerih,

smo tudi tukaj uporabili privzeto aplikacijo za zajem slike na platformi Windows Phone.

Kot vidimo v odseku kode 3.15, je bila naša naloga tudi tukaj omejena na zagon

sistemske aplikacije in prikaz pridobljene slike.

Page 42: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

30

Odsek kode 3.15: koda v programskem jeziku C#, v kateri kličemo sistemsko aplikacijo za zajem

slike in kasneje prikažemo zajeto sliko na zaslon.

Page 43: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

31

4 ANALIZA REŠITVE

Do sedaj je vedno veljalo, da moramo, če želimo razviti aplikacijo, ki bo odzivna in

zajemala malo sistemskih sredstev, razvijati domorodne aplikacije. V tej diplomski nalogi

nas je zanimalo, če je stanje tehnike tako napredovalo, da se razlike med aplikacijami več

ne opazijo. V ta namen smo izdelane tri aplikacije testirali na več napravah, in sicer HTC

Windows Phone 8s, Samsung Galaxy s2, Prestigio PAP3350DUO in Lg Nexus 5. Pri tem

smo se osredotočili na čas zagona in porabo sistemskih sredstev.

Ker so se naše meritve porabe sistemskih sredstev nanašale na celotno aplikacijo, smo

ločeno izmerili še porabo sistemskih virov ob dostopu do senzorjev mobilne naprave. V ta

namen smo implementirali dve ločeni aplikaciji, v katerih smo dostopali do senzorja GPS

in pospeškometra mobilne naprave.

Meritve porabe sistemskih sredstev v OS Windows Phone smo izvedli v orodju

Application Analysis razvojnega okolja Visual Studio [64]. To orodje omogoča nadziranje

porabe sredstev aplikacije med njenim izvajanjem. Kot vidimo na sliki 4.1 orodje omogoča

nadzor časa zagona, porabe baterije, porabe procesorskega časa in omrežnega prometa.

Slika 4.1: orodje Application Analysis v razvojnem okolju Visual Studio

Page 44: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

32

Tudi za analizo porabe sredstev v OS Android smo uporabili vgrajeno orodje razvojnega

okolja Eclipse. Slednje ponuja orodje Dalvik Debug Monitor Server (DDMS) [67], ki

omogoča nadzor nad porabo sredstev aplikacije med njenim delovanjem. Merimo lahko

porabo procesorja, glavnega pomnilnika in mrežni prenos podatkov. Kot vidimo na sliki

4.2, imamo s temi orodji pregled nad celotno porabo sistemskih sredstev na napravi.

Slika 4.2: Orodje Android DDMS

4.1 Primerjava časov zagona

Čas zagona je v praksi zelo pomemben, saj so uporabniki v današnjem času vedno manj

potrpežljivi in želijo, da se aplikacija zažene v minimalnem možnem času. Naše aplikacije

ob zagonu niso klicale nobene posebne funkcije, kar nam je omogočilo vpogled v

zagonski čas samega uporabniškega vmesnika. Rezultati meritev so prikazani v tabeli

4.1.

Page 45: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

33

Tabela 4.1: Primerjava časov zagona aplikacij. Prikazane so povprečne vrednosti standradni

odkloni dvajsetih zagonov aplikacij.

HTC

Windows

Phone 8s

Samsung

Galaxy s2

Prestigio

PAP3350DUO

Lg Nexus 5

hibridna aplikacija

(IBM Worklight) 0,69 0,14 s 1,12 0,25 s 1,54 0,32 s 0,66 0,09 s

domorodna aplikacija

(Android) / 0,67 0,08 s 0,98 0,13 s 0,49 0,24 s

domorodna aplikacija

(Windows Phone) 0,56 0,09 s / / /

Časi zagona aplikacij so bili odvisni od zmogljivosti naprave, na kateri se je aplikacija

izvajala. Meritve so potrdile, da je čas zagona hibridne aplikacije nekoliko daljši od časa

zagona domorodno implementirane aplikacije. Večjo razliko med časi zagona smo zaznali

na starejših in manj zmogljivih napravah.

4.2 Primerjava porabe sistemskih sredstev

Ker smo želeli zagotoviti podporo aplikaciji na čim več mobilnih napravah, nas je zanimala

tudi poraba sistemskih sredstev. Še posebej v času poceni Android naprav je poraba le-

teh zelo pomembna. Manj sistemskih sredstev zavzame naša aplikacija, bolj gladko bo

delovala na napravi. Rezultate meritev porabe glavnega pomnilnika in procesorskega

časa podajata Tabeli 4.2 in 4.3.

Page 46: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

34

Tabela 4.2: Primerjava porabe glavnega pomnilnika. Prikazane so povprečne vrednosti

standradni odkloni dvajsetih zagonov aplikacij.

HTC

Windows

Phone 8s

Samsung

Galaxy s2

Prestigio

PAP3350DUO

Lg Nexus 5

hibridna aplikacija

(IBM Worklight)

43,24 2,57

MB

38,24 2,24

MB

42,12 3,33

MB

35,57 2,25

MB

domorodna aplikacija

(Android) /

18,92 0,84

MB

18,43 2,12

MB

18,82 0,73

MB

domorodna aplikacija

(Windows Phone)

15,45 3,65

MB / / /

Domorodni aplikaciji sta na večini naprav porabili več kot pol manj pomnilnika kot hibridna

aplikacija. Pri porabi procesorskega časa je bila razlika med domorodnima in hibridno

aplikacijo nekoliko manjša, vendar sta še vedno bili domorodni aplikaciji varčnejši.

Kljub temu, da smo zaznali nekoliko večjo porabo sredstev pri hibridni aplikaciji, je le-ta na

vseh testiranih napravah delovala brezhibno. Uporabniška izkušnja iz vidika odzivnosti ni

bila občutno slabša od uporabniške izkušnje domorodno razvitih aplikacij. Čeprav smo v

hibridni aplikaciji uporabili ogrodje Dojo, ki prilagodi grafične elemente platformi, na kateri

se izvaja, smo še vedno opazili, da aplikacija ni bila razvita s pristopom domorodnega

razvoja, kar je nekoliko pokvarilo celotno uporabniško izkušnjo aplikacije.

Tabela 4.3: Primerjava porabe procesorskega časa. Prikazane so povprečne vrednosti

standradni odkloni dvajsetih zagonov aplikacij.

HTC

Windows

Phone 8s

Samsung

Galaxy s2

Prestigio

PAP3350DUO

Lg Nexus 5

hibridna aplikacija

(IBM Worklight)

43,25 4,53

%

44,63 5,54

%

55,36 7,24

%

26,31 3,48

%

domorodna

aplikacija (Android) /

31,27 2,38

%

40,21 2,35

%

17,62 2,62

%

domorodna

aplikacija (Windows

Phone)

25,23 3,29

% / / /

Page 47: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

35

4.3 Primerjava porabe sistemskih sredstev pri aplikacijah za dostop

do senzorja GPS in pospeškometra

Pri naši demo aplikaciji hibridna aplikacija v povprečju zavzame več sistemskih sredstev

kot aplikacije, ki so zgrajene z domorodnim pristopom. Ker nas je zanimalo, ali je ta

razlika nastala zaradi knjižnice JavaScript Dojo, s pomočjo katere smo zgradili

uporabniški vmesnik, smo implementirali dve aplikaciji, ki dostopata izključno do senzorjev

mobilne naprave. Prva aplikacija iz senzorja GPS pridobi našo trenutno pozicijo in jo

izpiše na zaslon. Pri drugi aplikaciji dostopamo do pospeškometra naprave in njegove

rezultate prikažemo na ekran.

Pri testiranju aplikacije za pridobivanje trenutne pozicije smo naleteli na težavo z mobilno

napravo Prestigio, saj le-ta nima vgrajenega senzorja GPS, zato smo jo izključili iz tega

testa. Rezultate meritev porabe procesorskega časa in glavnega pomnilnika na ostalih

napravah prikazujeta tabeli 4.4 in 4.5

Tabela 4.4: Primerjava porabe glavnega pomnilnika za aplikacijo, ki dostopa do senzorja GPS.

Prikazane so povprečne vrednosti standradni odkloni dvajsetih zagonov aplikacij.

HTC

Windows

Phone 8s

Samsung

Galaxy s2

Prestigio

PAP3350DUO

Lg Nexus 5

hibridna aplikacija

(IBM Worklight)

30,8 3,32

MB

22,14 4,23

MB /

19,24 3,98

MB

domorodna

aplikacija (Android) /

5,41 3,35

MB /

5,25 2,86

MB

domorodna

aplikacija (Windows

Phone)

9,67 0,86

MB / / /

Page 48: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

36

Tabela 4.5: Primerjava porabe procesorskega časa za aplikacijo, ki dostopa do senzorja GPS.

Prikazane so povprečne vrednosti standradni odkloni dvajsetih zagonov aplikacij.

HTC

Windows

Phone 8s

Samsung

Galaxy s2

Prestigio

PAP3350DUO

Lg Nexus 5

hibridna aplikacija

(IBM Worklight)

34,56 3,73

%

21,42 4,96

% /

12,32 4,21

%

domorodna

aplikacija (Android) /

15,29 2,61

% / 8,36 2,52 %

domorodna

aplikacija (Windows

Phone)

29,82 2,51

% / / /

Kot vidimo na tabelah 4.4 in 4.5 je poraba sistemskih sredstev tudi v tem primeru višja pri

aplikaciji, ki je bila razvita s hibridnim pristopom.

V drugi testni aplikaciji smo dostopali do podatkov iz pospeškometra. Tudi v tem primeru

smo izvedli meritve porabe procesorskega časa in glavnega pomnilnika. Rezultate

podajata tabeli 4.6 in 4.7.

Tabela 4.6: Primerjava porabe glavnega pomnilnika za aplikacijo, ki dostopa do pospeškometra.

Prikazane so povprečne vrednosti standradni odkloni dvajsetih zagonov aplikacij.

HTC

Windows

Phone 8s

Samsung

Galaxy s2

Prestigio

PAP3350DUO

Lg Nexus 5

hibridna aplikacija

(IBM Worklight)

31,48 3,18

MB

28,46 2,87

MB

32,21 3,31

MB

26,63 2,53

MB

domorodna

aplikacija (Android) /

13,52 3,21

MB

15,72 2,83

MB

12,76 1,38

MB

domorodna

aplikacija (Windows

Phone)

10,69 0,88

MB / / /

Page 49: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

37

Tabela 4.7: Primerjava porabe procesorskega časa za aplikacijo, ki dostopa do pospeškometra.

Prikazane so povprečne vrednosti standradni odkloni dvajsetih zagonov aplikacij.

HTC

Windows

Phone 8s

Samsung

Galaxy s2

Prestigio

PAP3350DUO

Lg Nexus 5

hibridna aplikacija

(IBM Worklight)

35,43 3,25

%

28,47 4,05

%

35,26 2,32

%

25,17 4,82

%

domorodna

aplikacija (Android) /

23,42 2,48

%

25,71 3,51

%

19,63 3,21

%

domorodna

aplikacija (Windows

Phone)

31,24 1,75

% / / /

Tudi pri uporabi pospeškometra je poraba sistemskih sredstev občutno večja v hibridni

aplikaciji.

Page 50: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

38

5 SKLEPI IN DISKUSIJA

V diplomskem delu smo spoznali tri načine razvoja mobilnih aplikacij, in sicer razvoj

mobilnih spletnih aplikacij, hibridnih aplikacij in domorodnih aplikacij. Spoznali smo njihove

prednosti in slabosti ter jih primerjali. Implementirali smo tri aplikacije za platformi Android

in Windows Phone. Te aplikacije so bile razvite na hibridni način in na domorodna načina.

Zaradi časovne omejenosti je bila vsebina aplikacij preprosta. Vse tri so dostopale do

spletnih strežnikov za pridobivanje koordinat GPS želenega kraja in pridobljeno lokacijo

prikazale na zemljevidu. Pri tem smo za hibridno aplikacijo in domorodno aplikacijo OS

Android uporabili storitev »Google Maps«, na OS Windows Phone pa storitev »Bing

Maps«. V vse tri aplikacije smo uspešno implementirali funkcionalnost zajema slike in

prikaz le-te na zaslonu mobilne naprave. Ker mora vsebovati vsaka aplikacija podatke o

avtorju aplikacije in njenem namenu, smo dodali še to funkcionalnost. Vse tri zaslonske

maske smo uspešno povezali s preprostim menijem. Za testiranje porabe sistemskih

sredstev pri dostopu do senzorjev mobilne naprave smo dodatno implementirali dve testni

aplikaciji, ki dostopata do senzorja GPS in pospeškometra. Ti aplikaciji nista imeli

posebnega uporabniškega vmesnika, ki bi vplival na porabo sistemskih sredstev. Kljub

preprosti zasnovi aplikacij smo z njimi pokrili glavne vidike razvoja mobilnih aplikacij.

Poudarek je bil na razvoju hibridnih mobilnih aplikacij z orodjem IBM Worklight. Zato smo

podrobneje predstavili razvoj hibridnih aplikacij, njihove prednosti in slabosti. Pogledali

smo si ključne tehnologije tega pristopa in opisali programske jezike oziroma tehnologije

HTML5, CSS3 in JavaScript. Poglobili smo se v strukturo okolja IBM Worklight. Spoznali

smo, da je okolje usmerjeno predvsem v razvoj poslovnih hibridnih aplikacij in v integracijo

že obstoječega informacijskega sistema podjetja. Orodje samo nudi pester nabor

pripomočkov, ki olajšajo tako proces razvoja aplikacije kot tudi nadzor nad delovanjem

aplikacije.

Najenostavnejši je bil pristop razvoja aplikacije za domorodno okolje Windows Phone, saj

smo imeli tu največ predznanja. Kljub temu, da smo imeli z razvojem domorodnih aplikacij

v OS Androidu zelo malo predznanja, je bila implementacija aplikacije enostavna, saj se je

zaradi popularnosti platforme razvila zelo dobra podpora, s pomočjo katere je učenje hitro

in enostavno. Čeprav smo bili v razvoju hibridnih aplikacij novinci, se nam je učenje le-

tega zdelo najenostavnejše, saj temelji na osnovnih spletnih tehnologijah, ki jih pozna

praktično vsak programer.

Page 51: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

39

V diplomski nalogi smo izvedli primerjavo aplikacij, razvitih z metodo domorodnega

razvoja mobilnih aplikacij in metodo hibridnega razvoja. Pri tem nas je zanimal čas

zagona, poraba glavnega pomnilnika, poraba procesorskega časa in uporabniška izkušnja

ob uporabi posamezne aplikacije. Ugotovili smo, da kljub nekoliko večji porabi časa ob

zagonu in uporabi hibridno razvitih aplikacij, teh razlik povprečni uporabnik ne opazi.

Ugotovili smo tudi, da so razlike med aplikacijami večje pri starejših in manj zmogljivih

napravah. Vse tri aplikacije so bile zelo odzivne. Nobena izmed njih nas ni prikrajšala za

katero izmed funkcionalnosti, ki jih nudijo mobilne naprave. Kljub temu, da iz vidika

funkcionalnosti in odzivnosti ni bilo velikih razlik, je bila uporabniška izkušnja v domorodno

razvitih aplikacijah malenkost boljša, saj sta imeli aplikaciji bolj dovršeni grafični vmesnik.

V primerjavi z domorodnima aplikacijama je hibridna aplikacija porabila tudi občutno več

glavnega pomnilnika.

Page 52: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

40

6 VIRI:

[1] IBM Corporation: IBM developer works Getting started:

http://www.ibm.com/developerworks/mobile/worklight/getting-started.html

[24.3.2014]

[2] IBM Corporation: IBM Worklight Foundation: http://www-

03.ibm.com/software/products/en/worklight/ [24.3.2014]

[3] IBM Corporation: Mobile Development Platform: IBM Worklight Studio: http://www-

01.ibm.com/software/mobile-solutions/worklight/components/mobile-development-

platform/ [24.3.2014]

[4] IBM Corporation: IBM developer works Blog:

https://www.ibm.com/developerworks/community/blogs/worklight/?lang=en

[24.3.2014]

[5] IBM Corporation: Key features and capabilities of IBM Worklight to accelerate your

mobile development:

https://www.ibm.com/developerworks/websphere/techjournal/1208_shenoy/1208_

shenoy.html [24.3.2014]

[6] IBM Corporation: Introducing IBM Worklight components:

http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.w

orklight.getstart.doc%2Fstart%2Fc_wl_overview.html [24.3..2014]

[7] IBM Corporation: Overview of IBM Worklight adapters:

http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m6/index.jsp?topic=%2Fcom.ibm.w

orklight.help.doc%2Fdevref%2Fc_overview_of_ibm_worklight_adap.html

[24.3.2014]

[8] IBM Corporation: JSONStore overview:

http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.w

orklight.help.doc%2Fdevref%2Fc_jsonstore_overview.html [25.3.2014]

[9] IBM Corporation: Rational Test Workbench: http://www-

03.ibm.com/software/products/en/rtw [25.3.2014]

[10] IBM Corporation: IBM Worklight editions:

http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp?topic=%2Fcom.ibm.w

orklight.getstart.doc%2Fgetstart%2Fc_wl_editions.html [25.3.2014]

[11] Google Inc.: Android developers: http://developer.android.com/index.html

[25.3.2014]

Page 53: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

41

[12] Google Inc.: Android developers Blog: http://android-developers.blogspot.com/

[25.3.2014]

[13] Microsoft Corporation: Windows Phone Dev Center:

http://dev.windowsphone.com/en-us [26.3.2014]

[14] Microsoft Corporation: Windows Phone 8 App Development:

https://www.dreamspark.com/student/Windows-Phone-8-App-Development.aspx

[26.3.2014]

[15] Microsoft Corporation: Windows Phone Developer Blog:

http://blogs.windows.com/windows_phone/b/wpdev/ [26.3.2014]

[16] Muhammad Saif Uddin in Talha Haroon. Mobile application development with IBM

Worklight. PACKT publishing 2014. Dostopno na:

http://www.packtpub.com/article/mobile-application-development-with-ibm-

Worklight [26.3.2014]

[17] Priyadarshi A., Mukhopadhyay P., Jhawar A. Creating a request-response mobile

application with IBM Worklight and IBM Integration Bus. developerWorks 2013.

Dostopno na:

http://www.ibm.com/developerworks/websphere/library/techarticles/1310_priyadar

shi/1310_priyadarshi.html [26.3.2014]

[18] Dannhauer A., Ming Zhe Huang, Idstein P., Kaplinger T., Katory H., Kirsch C.,

McPherson K., Olivera L., Hanson S. Extending Your Business to Mobile Devices

with IBM Worklight. IBM, 2013.

[19] Refsnes Data: HTML5 Introduction:

http://www.w3schools.com/html/html5_intro.asp [27.3.2014]

[20] Christian Vasile. CSS3 Introduction – New Features, What it Can Do, and

Resources. Webdesigner 2013. http://www.1stwebdesigner.com/css/css3-

introduction/ [27.3.2014]

[21] Refsnes Data: javascript Introduction: http://www.w3schools.com/js/js_intro.asp

[22] The Apache Software Foundation: About Apache Cordova™:

https://cordova.apache.org/#about [27.3.2014]

[23] The Eclipse Foundation: About the Eclipse Foundation:

https://www.eclipse.org/org/ [248.2014]

[24] Microsoft: Introducing Visual Studio: http://msdn.microsoft.com/en-

us/library/fx6bk1f4(v=vs.90).aspx [248.8.2014]

[25] Gartner, Inc.: Gartner Says by 2016, More Than 50 Percent of Mobile Apps

Deployed Will be Hybrid: http://www.gartner.com/newsroom/id/2324917

[25.8.2014]

Page 54: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

42

[26] J. F. Amprimoz, Tricia Goss: Bright Hub Inc.: How Redmon Took Windows on the

Road: What a Long, Strange, Mobile, Trip:

http://www.brighthub.com/computing/windows-platform/articles/1295.aspx

[25.8..2014]

[27] Microsoft Corporation: Getting Started with Visual Studio:

http://msdn.microsoft.com/en-us/library/ms165079.aspx [25.8.2014]

[28] QuinStreet Inc.: Windows Phone:

http://www.webopedia.com/TERM/W/windows_phone.html [25.8.2014]

[29] Jacob Gube: Smashing Magazine GmbH: 50 Useful javascript Tools:

http://www.smashingmagazine.com/2009/02/08/50-extremely-useful-javascript-

tools/ [27.8.2014]

[30] Spinfold: History of first touchscreen phone: http://www.spinfold.com/first-

touchscreen-phone/ [3.9.2014]

[31] Glen Sanford: iPhone: http://apple-history.com/iphone

[32] IBM Corporation: IBM Worklight Version 6.1.0 Information Center:

http://pic.dhe.ibm.com/infocenter/wrklight/v6r1m0/index.jsp?topic=%2Fcom.ibm.he

lp.doc%2Fwl_home.html [3.9.2014]

[33] Google Inc.: Fragments:

http://developer.android.com/guide/components/fragments.html [3.9.2014]

[34] Anshul Srivastava: Dazeinfo, Inc: 2 Billion Smartphone Users By 2015 : 83% of

Internet Usage From Mobiles [Study]:

http://www.dazeinfo.com/2014/01/23/smartphone-users-growth-mobile-internet-

2014-2017/#ixzz3DCqJhcUq [5.9.2014]

[35] Aady: Microsoft Mobile Oy.: Cross Platform Mobile Architecture:

http://developer.nokia.com/community/wiki/Cross_Platform_Mobile_Architecture

[15.9.2014]

[36] Mozilla Developer Network and individual contributors: HTML (HyperText Markup

Language): https://developer.mozilla.org/en-US/docs/Web/HTML [15.9.2014]

[37] W3C: Open Web Platform: http://www.w3.org/wiki/Open_Web_Platform

[18.9.2014]

[38] W3Schools: CSS Introduction: http://www.w3schools.com/css/css_intro.asp

[18.9.2014]

[39] W3Schools: CSS3 Introduction: http://www.w3schools.com/css/css3_intro.asp

[18.9.2014]

[40] Peter-Paul Koch: QuirksMode.org: javascript General introduction:

http://www.quirksmode.org/js/intro.html [18.9.2014]

Page 55: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

43

[41] Mozilla Developer Network and individual contributors: javascript

https://developer.mozilla.org/en/docs/Web/javascript [25.9.2014]

[42] The Dojo Foundation: DojoMobile: http://dojotoolkit.org/features/mobile

[25.9.2014]

[43] The jQuery Foundation: A Touch-Optimized Web Framework:

http://jquerymobile.com/ [28.9.2014]

[44] Sencha Inc.: Sencha Touch Build Mobile Web Apps with HTML5:

http://www.sencha.com/products/touch [20.10.2014]

[45] Dragan Gaić: Gajotres.net: sencha touch vs jQuery mobile:

http://www.gajotres.net/sencha-touch-vs-jquery-mobile/ [20.10.2014]

[46] Drifty: The Last Word on Cordova and PhoneGap:

http://ionicframework.com/blog/what-is-cordova-phonegap/ [20.10.2014]

[47] Brian: Adobe Systems Inc.: PhoneGap, Cordova, and what’s in a name?:

http://phonegap.com/2012/03/19/phonegap-cordova-and-what%E2%80%99s-in-a-

name/ [22.10.2014]

[48] JScripters: javascript: Advantages and disadvantages

http://www.jscripters.com/javascript-advantages-and-disadvantages/ [22.10.2014]

[49] Acunetix: Cross Site Scripting Attack:

https://www.acunetix.com/websitesecurity/cross-site-scripting/ [22.10.2014]

[50] Priya Viswanathan: About.com: What is a Mobile Application?

http://mobiledevices.about.com/od/glossary/g/What-Is-A-Mobile-Application.htm

[22.10.2014]

[51] IDC Corporate USA: Smartphone OS Market Share, Q2 2014:

http://www.idc.com/prodserv/smartphone-os-market-share.jsp [22.10.2014]

[52] Google Inc.: NEW GOOGLE PLAY DEVELOPER? START HERE Developer

Registration: https://support.google.com/googleplay/android-

developer/answer/113468?hl=en [22.10.2014]

[53] Marcello Mari: GlobalWebIndex: 4 Places Where Windows Phone Beats Apple:

http://blog.globalwebindex.net/Places-Where-Windows-Phone-Beats-Apple

[22.10.2014]

[54] IBM Corporation: Rational Test Workbench: http://www-

03.ibm.com/software/products/en/rtw [22.10.2014]

[55] Omnie Solutions: Why You Should Invest in IBM Worklight Whereas PhoneGap is

Available at No Cost: http://omniesolutions.blogspot.com/2014/01/why-you-

should-invest-in-ibm-worklight.html [25.10.2014]

Page 56: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

44

[56] Sophina Dillard: Mobileappstuff: Types of Mobile Apps You Must Know:

http://mobileappstuff.blogspot.com/2013/10/types-of-mobile-apps-you-must-

know.html [17.10.2014]

[57] Devi Chandrika: QBurst: Native and Hybrid Mobile Apps:

http://blog.qburst.com/2012/07/native-and-hybrid-mobile-apps/ [17.10.2014]

[58] IBM Corporation: Concept of the Application Center:

http://pic.dhe.ibm.com/infocenter/wrklight/v5r0m5/index.jsp?topic=%2Fcom.ibm.w

orklight.help.doc%2Fappcenter%2Fc_concept_of_the_application_cen.html

[17.10.2014]

[59] Anabia: IBM Corporation: Maximo Anywhere 7.5 is available!:

https://www.ibm.com/developerworks/community/blogs/a9ba1efe-b731-4317-

9724-a181d6155e3a/entry/maximo_anywhere_7_5_is_available?lang=en

[17.10.2014]

[60] Adobe Systems Incorporated: Flash Platform: https://www.adobe.com/platform/

[17.10.2014]

[61] W3C: ABOUT W3C: http://www.w3.org/Consortium/ [17.10.2014]

[62] Christian Karasiewicz: IBM Corporation: Apache Cordova and IBM Worklight: A

partnership for building hybrid apps:

https://www.ibm.com/developerworks/community/blogs/mobileblog/entry/apache_

cordova_and_ibm_worklight_a_partnership_for_building_hybrid_apps?lang=en

[18.10.2014]

[63] The jQuery Foundation: What is jQuery: http://jquery.com/ [18.10.2014]

[64] Microsoft Corporation: Windows Phone Application Analysis for Windows Phone

8: http://msdn.microsoft.com/en-

us/library/windows/apps/hh202934(v=vs.105).aspx [18.10.2014]

[65] Doug Bennett: HTML5 or Native App: What works best on mobile and tablet

devices?: http://hoosier40.com/2011/08/29/html5-or-native-app-what-works-best-

on-mobile-and-tablet-devices/ [18.10.2014]

[66] QuinStreet Inc.: Apple App Store:

http://www.webopedia.com/TERM/A/apple_app_store.html [20.10.2014]

[67] Google Inc.: Using DDMS:

http://developer.android.com/tools/debugging/ddms.html [20.10.2014]

[68] Douglas Crockford: JSLint: http://www.jslint.com/ [20.10.2014]

[69] The Dojo Foundation: Asynchronous Modules Come to Dojo 1.6:

http://dojotoolkit.org/features/1.6/async-modules [28.10.2014]

Page 57: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

45

Page 58: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

46

Page 59: Primerjava učinkovitosti hibridnih aplikacij, · 2017. 11. 28. · IV PRIMERJAVA UČINKOVITOSTI HIBRIDNIH APLIKACIJ, IZDELANIH V ORODJU IBM WORKLIGHT Z DOMORODNIMI APLIKACIJAMI NA

47