Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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
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
II
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.
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.
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.
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
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
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
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
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
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
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].
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.
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
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).
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.
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.
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.
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].
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].
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])
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),
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.
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.
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
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
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
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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
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.
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.
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
% / / /
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 / / /
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 / / /
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.
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.
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.
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]
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]
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]
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]
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]
45
46
47