razvojna orodja za heterogene mobilne platforme · še testna aplikacija, napisana v orodju...
TRANSCRIPT
UNIVERZA V MARIBORU
FAKULTETA ZA ELEKTROTEHNIKO,
RAČUNALNIŠTVO IN INFORMATIKO
Matej Notersberg
RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME
Diplomsko delo
Maribor, September 2014
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
RAZVOJNA ORODJA ZA HETEROGENE MOBILNE
PLATFORME
Diplomsko delo
Študent: Matej Notersberg
Študijski program: Univerzitetni
Informatika in tehnologije komuniciranja
Smer: Tehnologije komuniciranja
Mentor: doc. dr. Domen Verber
Lektorica: mag. Nataša Koražija, prof. slov.
ZAHVALA Zahvaljujem se mentorju docentu dr. Domnu
Verberju za vodenje in svetovanje pri izdelavi
diplomske naloge.
Zahvaljujem pa se tudi družini in punci, ker
so me podpirali v času študija.
i
Razvojna orodja za heterogene mobilne platforme
Ključne besede: razvojna orodja, mobilne platforme, PhoneGap, Appcelerator, Android,
iOS.
UDK: 004.4'27(043.2)
Povzetek
V diplomskem delu so predstavljena orodja, ki omogočajo razvoj aplikacij za heterogene
mobilne platforme. Ta orodja omogočajo razvoj mobilnih aplikacij v univerzalni programski
kodi (HTML5, CSS3 ter JavaScript), iz katere je nato aplikacije možno namestiti na več
različnih mobilnih platform. Predstavljenih je več različnih orodij, orodji z največ posvečene
pozornosti pa se imenujeta PhoneGap in Appcelerator ter omogočata pretvorbo napisane
kode v aplikacije, ki jih je možno namestiti na največ različnih mobilnih platform.
ii
Development tools for heterogeneous mobile platforms
Key words: development tools, mobile platforms, PhoneGap, Appcelerator Android, iOS.
UDK: 004.4'27(043.2)
Abstract
The thesis presents the tools that enable development of applications for heterogeneous
mobile platforms. These tools enable the development of mobile applications in the
universal program code (HTML5, CSS3, and JavaScript), which it is then possible to install
applications on various mobile platforms. There are several different tools, tools with the
most devoted attention are called PhoneGap and Appcelerator which allow the conversion
of written code into the applications that can be installed on a wide variety of mobile
platforms.
iii
KAZALO
1 UVOD ........................................................................................................................ 1
2 MOBILNE PLATFORME ........................................................................................... 2
2.1 Google Android .................................................................................................... 2
2.1.1 Razvoj Android aplikacij ...................................................................................... 4
2.2 Apple iOS .............................................................................................................. 6
2.2.1 Razvoj iOS aplikacij ............................................................................................ 6
2.3 Windows Phone ................................................................................................... 8
2.3.1 Razvoj Windows Phone aplikacij ...................................................................... 10
3 ORODJA ZA RAZVOJ APLIKACIJ ZA HETEROGENE MOBILNE PLATFORME . 11
3.1 PhoneGap ........................................................................................................... 13
3.2 Appcelerator Titanium ....................................................................................... 16
3.3 Adobe AIR (Adobe Integrirano Izvajanje) ......................................................... 18
3.3.1 AIR SDK ........................................................................................................... 18
3.4 Mono ................................................................................................................... 19
3.5 Qt Project ............................................................................................................ 20
3.6 Embarcadero Delphi XE6/XE7 ........................................................................... 22
4 PRIMERJAVA ORODIJ ........................................................................................... 23
4.1 Primerjava PhoneGap in Appcelerator ............................................................. 24
4.1.1 Razvoj aplikacij z PhoneGap-om ...................................................................... 26
4.1.2 Razvoj aplikacij z Appcelerator Titanium ........................................................... 28
5 TESTNA APLIKACIJA ............................................................................................ 29
5.1 Analiza aplikacije ............................................................................................... 30
5.1.1 Kamera ............................................................................................................. 31
iv
5.1.2 Lastnosti naprave in obvestilno okno ................................................................ 31
5.1.3 Podatkovna baza in dostop do pomnilnika ........................................................ 32
5.1.4 Kompas ............................................................................................................ 32
5.2 Izgradnja aplikacije ............................................................................................ 34
6 SKLEP .................................................................................................................... 37
7 VIRI ......................................................................................................................... 38
v
KAZALO SLIK
SLIKA 2.1: DELEŽI DISTRIBUCIJ ANDROIDA [8] .............................................................................................................. 3
SLIKA 2.2: ANDROID KITKAT 4.4.4 (LG NEXUS 5) ........................................................................................................ 3
SLIKA 2.3: ANDROID SDK UPRAVITELJ ........................................................................................................................ 4
SLIKA 2.4: VIRTUALNA NAPRAVA ANDROID L ............................................................................................................... 5
SLIKA 2.5: XCODE IOS 7.1 SIMULATOR (IPAD RETINA) .................................................................................................. 7
SLIKA 2.6: WINDOWS PHONE 8.0 (NOKIA LUMNIA 520) GRAFIČNI VMESNIK METRO ....................................................... 10
SLIKA 2.7:WINDOWS PHONE 7.1 VIRTUALNA NAPRAVA .............................................................................................. 10
SLIKA 3.1: DELEŽ UPORABE NAJPOGOSTEJŠIH RAZVOJNIH ORODIJ TER RAZLOGI ZA IZBIRO [15] ............................................. 12
SLIKA 3.2: PRIKAZ NAČINA DELOVANJE ORODJA PHONEGAP[2] ..................................................................................... 13
SLIKA 4.1:PHONEGAP ........................................................................................................................................... 25
SLIKA 4.2:APPCELERATOR ...................................................................................................................................... 25
SLIKA 4.3: ANDROID APLIKACIJA PHONEGAP ............................................................................................................. 27
SLIKA 4.4: UPRAVLJANJE TITANIUM STUDIA V UKAZNI VRSTICI ....................................................................................... 28
SLIKA 5.1: ANDROID 4.4.4 APLIKACIJA ..................................................................................................................... 30
SLIKA 5.2: IOS 6.1.2 APLIKACIJA ............................................................................................................................. 30
SLIKA 5.3: WINDOWS PHONE 8 APLIKACIJA ............................................................................................................... 30
SLIKA 5.4: ANDROID KAMERA ................................................................................................................................. 31
SLIKA 5.5: IOS KAMERA......................................................................................................................................... 31
SLIKA 5.6: WINDOWS PHONE KAMERA ..................................................................................................................... 31
SLIKA 5.7: ANDROID OPOZORILNO OKNO .................................................................................................................. 32
SLIKA 5.8: IOS OPOZORILNO OKNO .......................................................................................................................... 32
SLIKA 5.9: WINDOWS PHONE OPOZORILNO OKNO ..................................................................................................... 32
SLIKA 5.10: ANDROID KOMPAS ............................................................................................................................... 33
SLIKA 5.11: IOS KOMPAS ...................................................................................................................................... 33
SLIKA 5.12: WINDOWS PHONE NEDELUJOČ KOMPAS .................................................................................................. 33
vi
KAZALO TABEL
TABELA 2.1: VERZIJE ANDROIDA TER DELEŽI DISTRIBUCIJE [8] ......................................................................................... 3
TABELA 2.2: VERZIJE WINDOWS PHONE, DATUMI IZIDOV, TRŽNI DELEŽ [28] TER NOVOSTI [9] .............................................. 9
TABELA 3.1: VEČJE MOBILNE PLATFORME TER PODPORA VMESNIKOV [2] ........................................................................ 14
TABELA 4.1: PRIMERJAVA POSAMEZNIH ORODIJ ......................................................................................................... 23
TABELA 4.2: PRIMERJAVA ORODIJ PHONEGAP IN APPCELERATOR [26] ........................................................................... 25
vii
SEZNAM UPORABLJENIH KRATIC:
HTML5 – Hypertext Markup Language 5
CSS3 – Cascading Style Sheet 3
SDK – Software development kit
ADT – Android Virtual Device
GPS – Global Position System
NFC – Near Field Communication
IDE – Integrated Development Environment
WWDC – Worldwide Developer Conference
XAML – Extensible Application Markup Language
URL – Uniform Resource Locator
API – Application Programming Interface
XML – Extensible Markup Language
AIR – Adobe Integrated Runtime
ADL – Air Debug Launcher
CLA – Common Language Runtime
PHP – Hypertext Preprocessor
BSD – Berkley Software Distribution
SVG – Scalable Vector Graphics
GPL – General Public License
Razvojna orodja za heterogene mobilne platforme
1
1 UVOD
Orodja za heterogene mobilne platforme omogočajo razvoj mobilnih aplikacij s pisanjem
univerzalne programske kode, ki ni odvisna samo od enega tipa mobilne platforme, iz nje
pa je možno ustvariti aplikacije za posamezne mobilne platforme. Najboljša orodja
podpirajo vsaj najpogostejše mobilne platforme, kot so:
• Google Android,
• Apple iOS,
• Microsoft Windows Phone.
Razvoj v takih orodjih po navadi poteka na enak način kot razvoj spletnih strani z uporabo
HTML5, CSS3 ter JavaScripta, nato pa je omogočena pretvorba programske kode v
aplikacije, ki ustrezajo posameznim mobilnim ali namiznim platformam.
Način razvoja ene aplikacije trenutno poteka tako, da je treba za posamezen operacijski
sistem napisati novo programsko kodo, ki ustreza posameznemu operacijskemu sistemu.
Takšen način razvoja aplikacij stane veliko, ker je potrebno za posamezne platforme imeti
svoje programerje, pri tem pa se porabi tudi veliko časa. Zato se je zadnje čase začelo
pojavljati vse večje število razvojnih orodij za heterogene mobilne platforme ali tako
imenovanih čez-platformskih (ang. Cross-platform) orodij. Ta orodja omogočajo veliko
hitrejši razvoj mobilnih aplikacij, saj je treba programsko kodo napisati le enkrat, iz te kode
pa se nato ustvarijo aplikacije, ki ustrezajo posameznim platformam.
Diplomska naloga je sestavljena iz več delov. Tako nas prvi del seznanja z najpogostejšimi
mobilnimi platformami (Android, iOS in Windows Phone) ter klasičnimi postopki razvoja
aplikacij za posamezne mobilne platforme. Drug del diplomske naloge se posveča
posameznim razvojnim orodjem za heterogene mobilne platforme in s potekom takšnega
razvoja na posameznih mobilnih platformah. Nato sledi primerjava dveh najbolj uporabljenih
razvojnih orodij, njihov opis ter prikaz, kaj nam je omogočeno v teh orodjih. Na koncu sledi
še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v več različnih
mobilnih platform ter na njih tudi testirana, sledijo pa še ugotovitve, kje so meje razvoja v
teh orodjih, kaj nam je vse omogočeno ter česa ne moremo storiti.
Razvojna orodja za heterogene mobilne platforme
2
2 MOBILNE PLATFORME
Mobilne platforme oziroma mobilni operacijski sistemi so operacijski sistemi, ki so posebej
ustvarjeni z namenom, da lahko poganjajo mobilne naprave, kot so pametni telefoni,
dlančniki, tablični računalniki ter vedno več drugih naprav. Mobilna platforma je programska
platforma, na kateri se na mobilnih napravah izvajajo programi, ki se imenujejo Aplikacije.
[11]
2.1 Google Android
Android izvira iz skupine 84 tehnoloških in mobilnih podjetij poznanih pod imenom Open
Handset Alliance, ki jih vodi Google. Združili so se z namenom, da uporabnikom ponudijo
bogatejšo, cenejšo in boljšo mobilno izkušnjo. [10]
Med trenutno obstoječimi mobilnimi platformami predstavlja Android najpopularnejšo
odprtokodno in brezplačno mobilno platformo za pametne telefone, tablične in prenosne
računalnike, navigacije, pametne ure itd. Android je v času pisanja nameščen že na več kot
sto milijonov mobilnih napravah po vsem svetu. Skratka, je najpogosteje uporabljena
mobilna platforma, število naprav, ki poganjajo Android, pa strmo narašča. Tako se vsak
dan po svetu na novo aktivira približno milijon naprav, ki imajo nameščeno mobilno
platformo Android. [8]
Na spodnji tabeli (tabela 2.1) in sliki (slika 2.1) lahko vidimo deleže Android distribucij, ki so
trenutno še v uporabi.
Razvojna orodja za heterogene mobilne platforme
3
Tabela 2.1: Verzije Androida ter deleži distribucije [8]
Verzija Ime API Distribucija
2.2 Froyo 8 0.7 %
2.3.3−2.3.3 Gingerbread 10 13.6 %
4.0.3−4.0.4 Ice Cream Sandwich 15 10.6 %
4.1.x
Jelly Bean
16 26.5 %
4.2.x 17 19.8 %
4.3 18 7.9 %
4.4 KitKat
(Slika 2.2) 19 20.9 %
Slika 2.1: Deleži distribucij Androida [8]
Slika 2.2: Android KitKat 4.4.4 (LG Nexus 5)
Razvojna orodja za heterogene mobilne platforme
4
2.1.1 Razvoj Android aplikacij
Za razvoj mobilne aplikacije za platformo Android potrebujemo:
• razvojno okolje (najpriporočljivejše je Eclipse, obstaja pa tudi več alternativ),
• Android SDK,
• ADT.
Preden začnemo z razvojem Android aplikacije, moramo pripraviti razvojno okolje, ki ga
bomo uporabljali za razvoj Android aplikacije. Najbolj priporočeno razvojno okolje za razvoj
Android aplikacij je Eclipse. Takrat ko je le-to nameščeno, namestimo še ADT vtičnik za
Eclipse, nato pa na koncu s pomočjo SDK upravitelja namestimo še najnovejša SDK orodja
in platforme.
Slika 2.3: Android SDK upravitelj
Najnovejše verzije Android SDK zdaj vsebujejo že celoten komplet vtičnikov in orodij, ki jih
potrebujemo za razvoj aplikacije. Komplet tako vsebuje:
• Eclipse + ADT vtičnik,
• Android SDK orodja,
• Android platformska orodja,
• Android sistemsko sliko za virtualno napravo.
Razvojna orodja za heterogene mobilne platforme
5
Ko so nameščene vse potrebne komponente, je treba samo še izbrati verzijo in lastnosti
virtualne naprave, kot so:
• ime naprave,
• velikost pomnilnika,
• velikost spomina,
• ločljivost zaslona,
• verzijo Androida itd.
Virtualna naprava (Slika 2.3) nam omogoča, da lahko že med razvojem testiramo aplikacijo
kar na računalniku.
Slika 2.4: Virtualna naprava Android L
Razvoj mobilne aplikacije z orodjem Eclipse je sestavljen iz več različnih ločenih sklopov:
• /src - Java datoteke z izvornimi kodami (MainActivity.java).
• /gen – avtomatsko ustvarjene datoteke.
• /res – vsebuje .xml datoteke z oblikovnimi lastnostmi (oblika, barva, slike, vrednosti
spremenljivk ...).
• /libs – vsebuje knjižnice.
• AndroidManifest.xml – vsebuje informacije o aplikaciji (minimalna in ciljna verzija
SDK), dovoljenja (dostop do interneta, notranjega pomnilnika, GPS ...), glavno
aktivnost.
Razvojna orodja za heterogene mobilne platforme
6
2.2 Apple iOS
Podjetje Apple je razvilo mobilno platformo, imenovano iOS (znano tudi kot iPhone OS).
Namenjena je poganjanju Applovih naprav, kot so pametni telefoni iPhone, tablični
računalniki iPad, prenosni predvajalniki iPod Touch, pametne ure iWatch in Apple TV. [16]
Mobilna platforma iOS je bila skupaj z mobilnim telefonom iPhone predstavljena 9. januarja
2007. Namen njene zasnove je bil ustvariti hitrejšo in prostorsko ter energijsko varčnejšo
platformo. [17]
2.2.1 Razvoj iOS aplikacij
Aplikacije za iOS naprave je možno razvijati samo na Applovih računalnikih Mac, ki imajo
nameščen operacijski sistem OS X 10.8 oziroma novejšo verzijo omenjenega
operacijskega sistema. Poleg tega je treba imeti nameščeno še razvojno okolje Xcode in
iOS SDK.
Xcode je integrirano razvojno okolje (IDE) podjetja Apple, ki vključuje urejevalnik izvorne
kode, urejevalnik grafičnega vmesnika in veliko drugih funkcij.
iOS SDK pa orodje razširja, tako da so mu dodana dodatna orodja, prevajalnik in ogrodje,
ki je specifično namenjeno za razvoj iOS aplikacij. [18]
Programiranje aplikacij poteka v programskem jeziku Objective-C. V času pisanja
diplomskega dela pa se poskuša Apple osamosvojiti tudi v programskem vidiku, saj so na
svetovni razvijalski konferenci (WWDC) predstavili svoj programski jezik po imenu Swift, s
katerim želijo nadomestiti trenutno uporabljan Objective-C pri razvoju iOS ter OS X aplikacij.
[19]
Razvojna orodja za heterogene mobilne platforme
7
V začetku razvoja aplikacije je treba ustvariti nov projekt, ki ga lahko izbiramo med
različnimi že vnaprej pripravljenimi predlogami, nato pa je treba izpolniti in izbrati nastavitve
za projekt, kot so:
• ime izdelka (izbrano ime izdelka je kasneje uporabljeno za ime aplikacije ter
projekta),
• identifikator podjetja (privzeto je com.example, lahko pa uporabimo tudi svoj),
• predpona razreda (Xcode uporabi predpono razreda, da poimenuje razrede, ki jih
ustvari),
• naprava (izbira naprave, za katero bo aplikacija namenjena, lahko izberemo tudi
univerzalno aplikacijo, ki ustreza vsem napravam). [18]
Ko so izbrane vse nastavitve, se lahko začne delo na aplikaciji, ker pa je treba aplikacijo
med razvojem testirati, se zato uporabi namenski Ios Simulator, ki je vključen v Xcode. S
tem je možno sproti spremljati, kako bo aplikacija izgledala in delovala, če bi bila
nameščena na iOS napravi.
Simulator lahko simulira delovanje na več različnih tipih naprav (iPad, iPhone ...), ki imajo
različne velikosti zaslonov in resolucijo. [18]
Slika 2.5: Xcode iOS 7.1 Simulator (iPad Retina)
Razvojna orodja za heterogene mobilne platforme
8
2.3 Windows Phone
Windows Phone je mobilni platforma, ki jo je razvilo podjetje Microsoft kot naslednika
Windows Mobile. Prvič je bila izdana oktobra 2010 pod oznako Windows Phone 7, v njem
pa je Microsoft predstavil nov grafični vmesnik, ki se imenuje Metro. [12] Windows Phone 7
je sprva temeljil na arhitekturi Windows CE, nato pa se je z izidom Windows Phone 8, le-ta
spremenila v Windows NT, kar je omogočilo enostavno prenosljivost med Windows Phone
in Windows 8. [13]
Microsoft je z leti izdal veliko posodobitev in nadgradenj, saj tako ostaja v koraku s
konkurenco. V spodnji tabeli (tabela 2.2) so tako po vrsti prikazani izidi verzij Windows
Phone in njihove najpomembnejše lastnosti.
Razvojna orodja za heterogene mobilne platforme
9
Tabela 2.2: Verzije Windows Phone, datumi izidov, tržni delež [28] ter novosti [9]
Verzije Izzid Tržni
delež Najpomembnejše novosti
Windows Phone 7
(NoDo)
Oktober
2010
17,7%
• Nov dizajn
• Podpora kopiraj in prilepi
Windows Phone
7.5 (Mango)
Februar
2011
• Podpora HTML5 video in zvok
• Podpora Geolokaciji
• Podpora omrežju 4G
Windows Phone
7.5 (Tango) Junij 2012
• Podpora nizkocenovnim napravam z samo 256 MB pomnilnika
Windows Phone
7.8
Januar
2013
• Nov uporabniški vmesnik z
prilagodljivimi živimi okni
• Nov logotip
Windows Phone
8.0 (Apollo)
(Slika 2.6 spodaj)
Oktober
2012 70,4%
• Večopravilnost
• Podpora več jedrnim procesorjem
• Podpora NFC
• Skupna raba med Windows
Phone 8.0 in Windows 8
Windows Phone
8.1 (Blue) April 2014 11,9%
• Digitalni pomočnik Cortana • Center z opozorili
Zadnja verzija Microsoftove mobilne platforme je bila predstavljena aprila 2014 pod oznako
Windows Phone 8.1 ali Blue. Prinaša številne novosti, kot so digitalni asistent Cortana, nova
verzija brskalnika Internet Explorer 11, izboljšana poraba energije, izboljšana
večopravilnost ter povezava z Windows 8 in integracija s socialnimi omrežji. Vključuje še
mnoge druge novosti, saj Windows Phone 8.1 predstavlja posodobitev, ki prinaša veliko
število sprememb. [14]
Razvojna orodja za heterogene mobilne platforme
10
2.3.1 Razvoj Windows Phone aplikacij
Microsoft za razvoj aplikacij ponuja veliko različnih orodij in načinov razvoja mobilnih
aplikacij. Orodja nam ponujajo tako klasične razvoje aplikacij, kjer je možno programirati v
več različnih programskih jezikih, kot tudi enostavnejše spletno orodje, ki se imenuje
Windows App Studio. S slednjimi je možno ustvariti aplikacije v zelo kratkem času, in to
brez znanja programiranja. S tem orodjem pa je seveda možno ustvariti zgolj osnovne
aplikacije, iz katerih se da čisto enostavno ustvariti izvorno kodo, ki jo nato možno nadgraditi
z naprednejšimi funkcijami v razvojnem okolju Visual Studio. [20]
Klasičen razvoj Windows Phone aplikacij pa poteka v Microsoftovem orodju Visual Studio,
kjer je možno testiranje aplikacij v virtualni napravi kot tudi na dejanski napravi. Pri razvoju
Windows Phone aplikacij se uporablja razširljiv aplikacijski označevalni jezik (XAML), ki se
uporabi za izdelavo uporabniškega vmesnika, ter Microsoft Visual Basic ali pa C# za
programiranje. Možen pa je tudi razvoj Direct3D aplikacij za Windows Phone 8 v
programskem jeziku C++. Skupaj z Visual Studiom je treba imeti nameščeno tudi Windows
Phone SDK, ki vsebuje tudi virtualno napravo, ki je prikazana na spodnji sliki (slika 2.7).
Slika 2.6: Windows Phone 8.0 (Nokia Lumnia
520) grafični vmesnik Metro
Slika 2.7:Windows Phone 7.1 virtualna
naprava
Razvojna orodja za heterogene mobilne platforme
11
3 ORODJA ZA RAZVOJ APLIKACIJ ZA HETEROGENE MOBILNE PLATFORME
Svet je preplavljen s pametnimi telefoni, tabličnimi računalniki in drugimi elektronskimi
napravami. Zato na trgu najdemo že veliko različnih mobilnih platform, med katerimi
izstopajo Android, iOS in Windows Phone, saj obvladujejo največji tržni delež. Pojavlja pa
se tudi vse več drugih platform, ki želijo uporabnike prepričati s svojo preprostostjo in
funkcionalnostjo.
Zato se pri razvijalcih aplikacij pojavljajo težave zaradi razvoja aplikacij za različne
platforme, saj se aplikacije za posamezne platforme programirajo v različnih programskih
jezikih in orodjih. Iz tega razloga je treba za posamezne platforme najeti programerje, kar
pa pomeni, da bi se tako stroški izdelave ene aplikacije povečali npr. štirikrat za štiri različne
platforme, najverjetneje pa bi se povečal tudi čas razvoja aplikacij. Zato se je pričelo na trgu
pojavljati vse več različnih orodij, ki omogočajo razvoj aplikacije v univerzalni programski
kodi (npr. HTML5, CSS3, JavaScript ...), iz katere je nato možno aplikacijo pretvoriti tako,
da je nato primerna za namestitev na različne platforme. Najpogostejša izmed teh orodij so
PhoneGap, Appcelerator, Adobe Air, Mono, Qt ... Na spodnji sliki (slika 3.1) so tako
prikazana razmerja med uporabo različnih orodij ter prikazani najpomembnejši razlogi,
zakaj izbrati posamezno orodje.
Pri razvoju v takih orodjih poznamo tri pristope [23]:
• Spletne aplikacije (ang. Web Apps) so aplikacije, ki so ustvarjene tako, da
ustrezajo velikostim mobilnih zaslonov, ter so dosegljive z URL naslovi preko
mobilnih brskalnikov.
• Hibridne aplikacije (ang. Hybrid Apps) so spletne aplikacije, ki so zgrajene z HTML
in CSS ter se prikazujejo v mobilnem brskalniku narejenem po meri, ki je namenjen
zgolj za prikaz aplikacije, ker ima privzeto nastavljen celozaslonski način, tako da
spominja na domorodno aplikacijo, saj vsebuje razširitve, preko katerih je omogočen
dostop do nekaterih funkcij strojne opreme naprave.
• Domorodne aplikacije (ang. Native Apps) so aplikacije, ki so napisane v
posameznih programskih jezikih ter posameznih razvojnih okoljih, odvisno od vrste
platforme. Ta pristop se uporablja največkrat pri najbolj zahtevnih ter bogatih
aplikacijah, saj ponuja popoln dostop do vseh funkcij strojne opreme pri napravi
Razvojna orodja za heterogene mobilne platforme
12
Slika 3.1: Delež uporabe najpogostejših razvojnih orodij ter razlogi za izbiro [15]
Razvojna orodja za heterogene mobilne platforme
13
3.1 PhoneGap
PhoneGap je odprtokodno delovno okolje, ki nam omogoča hitro izgradnjo aplikacij za
heterogene mobilne platforme s pomočjo tehnologij za razvoj spletnih strani HTML5, CSS
in JavaScript. Pri klasičnem razvoju mobilnih aplikacij je treba imeti za vsako posamezno
platformo svoje delovno okolje, v katerem se programira po drugačnem postopku in v
drugačnem jeziku. PhoneGap pa ta problem odpravi in nam omogoči hitrejši, cenejši ter
lažji razvoj aplikacij za vse večje platforme.
Slika 3.2: Prikaz načina delovanje orodja PhoneGap[2]
PhoneGap je tako imenovano čez-platformsko orodje, ki podpira najštevilčnejši spekter
mobilnih platform, med katerimi so vse vodilne in pa tudi manj znane platforme [2]:
• Google Android,
• Apple iOs,
• Windows Phone,
• Windows 8,
• Firefox OS,
• Ubuntu Touch,
• Blackberry,
• Amazon Fire OS,
• Tizen.
OVIJANJE Z
PHONEGAP-OM
PRETVORBA V RAZLIČNE
PLATFORME
Razvojna orodja za heterogene mobilne platforme
14
To pomeni, da če nekdo razvija mobilno aplikacijo, ki mora biti na voljo v vseh zgoraj
navedenih mobilnih platformah, lahko s pomočjo PhoneGapa izdela aplikacijo samo enkrat
namesto potencialnih devetkrat za posamezno platformo posebej.
Za mobilne platforme ponuja PhoneGap velik izbor API-jev (vmesnikov za programiranje
aplikacij), ki so na voljo pri razvoju aplikacij. V spodnji tabeli (tabela 3.1) se nahaja del
podprtih platform in najbolj pomembnih vmesnikov. Obstaja jih še veliko več, vendar pa so
za nekatere platforme slabo podprte. PhoneGapovi razvijalci se trudijo, da v programskih
posodobitvah dodajo še več mobilnih platform in programskih vmesnikov. [2]
Tabela 3.1: Večje mobilne platforme ter podpora vmesnikov [2]
iOS Android Blackberry
OS 6.0+
Blackberry
10
Windows
Phone 8
Ubunto Firefox
OS
Merilec
pospeška
✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Kamera ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Kompas ✓✓✓✓ ✓✓✓✓ X ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Kontakti ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Datoteke ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ X
Geolokacija ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Mediji ✓✓✓✓ ✓✓✓✓ X ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ X
Omrežje ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Opozorila ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Pomnilnik ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
✓✓✓✓− podprte lastnosti
X – nepodprte lastnosti zaradi strojne opreme ali programskih omejitev
Razvojna orodja za heterogene mobilne platforme
15
PhoneGap tako pri razvoju ponuja številne prednosti kot so:[25]
• PhoneGap ponuja razvoj aplikacij v enostavnih in že znanih jezikih, kot so HTML,
JavaScript in CSS. Razvijalcu se tako ni treba naučiti novih kompliciranih
programskih jezikov, pač pa lahko uporabi že obstoječe znanje pri izdelavi
kvalitetne mobilne aplikacije.
• Namestitev aplikacij, izdelanih s pomočjo PhoneGapa, poteka popolnoma enako
kot namestitev domorodnih aplikacij.
• Obstaja veliko vtičnikov namenjenih za PhoneGap, ki jih lahko razvijalec uporabi
pri izdelavi dobro funkcionalne aplikacije. Taki že pripravljeni vtičniki so zelo
popularni pri razvijalcih mobilnih aplikacij.
• PhoneGap je odprtokodno okolje, kar pomeni, da je popolnoma brezplačno.
Na žalost pa se tako kot pri drugih orodjih, tudi pri okolju PhoneGap pojavljajo slabosti, kot
so [25]:
• Pomanjkanje posodobitev sistema in vtičnikov. Posledica je pogosto pojavljanje
napak, kar pa je sicer običajna težava pri vseh odprtokodnih orodjih, kot je
PhoneGap.
• Vtičniki po navadi delujejo dobro in brez zapletov, če seveda razvijalec lahko najde
pravilnega za svojo aplikacijo, v nasprotnem primeru je treba razviti lasten vtičnik,
kar pa seveda lahko poveča čas in strošek razvoja, razvijalec pa potrebuje tudi
znanje naprednejših programskih jezikov, da ga lahko razvije.
• Na delovanje PhoneGapa zelo vpliva, če razvijalec uporablja veliko različnih
grafičnih učinkov.
Razvojna orodja za heterogene mobilne platforme
16
3.2 Appcelerator Titanium
Appcelerator Titanium je odprtokodno razvijalsko orodje, ki je namenjeno razvoju aplikacij
za različne mobilne platforme [22]:
• Android, • BlackBerry, • iOS, • Mobile Web, • Windows.
Orodje Titanium je podprto na naslednjih operacijskih sistemih:
• Mac OS X (10.9.4 in novejši), • Windows 7 in 8, • Linux (Ubuntu 12.04 LTS).
Vključuje odprtokodni SDK s podporo preko 5000 napravam ter vmesnikov za
programiranje aplikacij (API) za različne mobilne platforme. Appcelerator je sestavljen iz
več komponent [23]:
• Appcelerator studio: Celostno razvojno okolje, namenjeno ustvarjanju in
razvijanju svoje mobilne aplikacije, podprta s strani Titanium SDK delovnega
okolja.
• Appcelerator dashboard: Spletni portal namenjen spremljanju uporabe
aplikacije. Namenjena je tehničnim uporabnikom.
• Appcelerator Services: Skupek podjetniških značilnosti, kot so predstavitveno
upravljanje, avtomatizirano testiranje in analiziranje, ki so omogočeni skozi
Appcelerator studio in spremljani v Appcelerator Dashboard ali Appcelerator
Insight aplikacijah.
• Appcelerator Insights: Aplikacija, namenjena spremljanju matrike uporabe.
Namenjena je poslovnim uporabnikom.
Razvojna orodja za heterogene mobilne platforme
17
Appcelerator ponuja podporo velikemu številu Modulov, ki so na voljo za posamezne
platforme [22]:
• Android (gradniki za izdelavo android aplikacij),
• Network (se uporablja za dostop do funkcionalnosti povezanimi z omrežjem),
• XML (ta modul se uporablja za razčlenjevanje (ang. parsing) in procesiranje
vsebin na podlagi XML),
• UI (grafični gradniki za izdelavo aplikacij),
• Calendar (API za dostop do koledarskih funkcij),
• Cloud (povezava z Appceleratorjevimi oblačnimi storitvami),
• Contacs (dostop in delo s kontakti),
• Database (delo s podatkovno bazo),
• Filesystem(dostop do datotek in direktorijev na napravi),
• Geolocation (dostop do lokacijskih storitev naprave),
• Map (prikaz zemljevidov v aplikacijah),
• Media (modul, ki omogoča dostop do medijskih funkcij naprave, kot so: dostop do
kamere, galerije, glasbe, snemanje avdio in video vsebine ...),
• Platform (dostop do sistemskih funkcij naprave: status baterije, pomnilnik ...).
Večina teh modulov je že vključenih v Titanium SDK ali pa se jih da brezplačno namestiti iz
Appcelerator Marketa. [22]
Razvojna orodja za heterogene mobilne platforme
18
3.3 Adobe AIR (Adobe Integrirano Izvajanje)
Adobe AIR je čez-platformsko delovno okolje, ki omogoča razvoj Windows, Mac OS, iOS
in Android aplikacij z uporabo že obstoječih znanj Flash/ActionScript, HTML, JavaScript in
znanih orodij za razvoj spletnih aplikacij. Orodje je podjetje Adobe prvič predstavilo že v
začetku leta 2008, z namenom ponuditi možnost razvoja namiznih aplikacij s čez-
platformskim izvajanjem, kasneje pa so se pri izidu verzije 2.5 osredotočili na razvoj
mobilnih aplikacij in predstavili podporo novim funkcijam, kot so: podpora geolokaciji,
merilec pospeška in več prstni vnos na dotik. Od verzije 2.5 naprej Adobe AIR podpira
platformo Android. [7]
AIR aplikacije je možno poganjati na katerikoli platformi in operacijskem sistemu, ki
podpirajo AIR runtime, vključno z Mac OS X, Linux in Windows. [24]
3.3.1 AIR SDK
Adobe AIR SDK je skupek orodij, ki se uporabljajo za razvoj aplikacij. Sestavljen je iz [7]:
• AIR razvojnega okolja (ADT)
ADT je večnamensko orodje, napisano v programskem jeziku Java. Za delovanje
potrebuje Javo verzije 1.5 ali novejšo.
• AIR Debug Launcher (ADL)
ADL se uporablja za testiranje med razvojem aplikacije. Uporablja izvajalnik kode,
ki je vključen v SDK, Prikaže nam napake in opozorila pri izvajanju programske
kode. Prav tako pa se uporablja za zagon Flash Debugger (FDB) seje. ADL orodje
se imenuje adl ali adl.exe in se nahaja v »bin« datoteki.
• AIR runtime
AIR runtime se uporablja za izvajanje in testiranje aplikacije v procesu razvoja in
prevajanja, preden se aplikacija namesti na napravo. Vsebuje virtualno napravo in
verzije naprav za mobilne in namizne naprave.
• Delovno okolje
Direktorij delovnega okolja vsebuje vse knjižnice.
Razvojna orodja za heterogene mobilne platforme
19
3.4 Mono
Mono je odprtokodna implementacija Microsoftovega .NET delovnega okolja, ki omogoča
razvoj aplikacij za heterogene mobilne platforme, ki temelji na osnovi C# programske kode
ter CLA. [6] Orodje podpira večjezični razvoj, zato je v njem možno razvijati v veliko različnih
programskih jezikih, kot so: C#, F#, Java, Scala, Visual Basic.NET, Phyton, JavaScript,
PHP,Object Pascal, Boo ipd.
Razvoj z okoljem Mono nam omogoča, da je med različnimi platformami v povprečju enake
75 % programske kode. [5]
Mono podpira oboje, 32-bitne in tudi 64-bitne platforme [6]:
• Linux,
• Mac OS X,
• Android,
• iOS,
• Microssoft Windows,
• Nitendo Wii,
• Sony PlayStation 3,
• Sun Solaris,
• BSD – OpenBSD, FreeBSD, NetBSD.
Mono je sestavljen iz več komponent, ki so [6]:
• C# Prevajalnik
• Mono izvajalnik kode (ang. Runtime)
• Osnovna knjižnica razredov (ang. Base Class Library)
Platforma Mono ponuja celovit komplet razredov, ki ponujajo trdne temelje za
izgradnjo aplikacij, ti razredi so združljivi z Microsoft-ovim .NET delovnim ogrodjem
• Mono knjižnica razredov (ang. Mono Class Library)
Mono ponuja tudi veliko razredov, ki ponujajo veliko več kot pa osnovna knjižnica
razredov. Ta knjižnica ponuja dodatne funkcionalnosti pri izgradnji aplikacij.
Obstajajo tri različne implementacije Mona:
• Mono,
• Xamarin.iOS (MonoTouch), namenjen za razvoj iOS aplikacij,
• Xamarin.Android (Mono for Android), namenjen za razvoj Android aplikacij.
Razvojna orodja za heterogene mobilne platforme
20
3.5 Qt Project
Qt je odprtokodno orodje za razvoj heterogenih mobilnih in namiznih aplikacij, ki ga je
razvilo podjetje Nokia in je vodilno po uporabi programskega jezika C++. [4]
Orodje Qt je do sedaj uporabilo že več kot 500.000 razvijalcev po vsem svetu, saj je orodje
zelo učinkovito, ker omogoča enostavno ponovno uporabo programske kode na več kot 14
vodilnih namiznih in mobilnih platformah, za katere osnova je zgrajena v Qt oblačnih
storitvah. [4]
Qt podpira veliko različnih 32- in 64-bitnih platform, z njim se razvija na naslednjih namiznih
platformah [21]:
• Windows, • Linux/X11, • Mac OS X.
Z orodjem Qt je možno razvijati za naslednje platforme:
• Android, • iOS, • BlackBerry 10, • Sailfish OS.
Trenutno pa se pri Qt trudijo priključiti tudi:
• Windows RT, • Windows Phone, • Tizen.
Razvojna orodja za heterogene mobilne platforme
21
Qt ponuja tudi podporo raznovrstnim modulom, ki nam omogočajo razvoj bogatih mobilnih
in namiznih aplikacij [21]:
• Qt Android Extras (modul, ki vsebuje dodatne funkcionalnosti za razvoj Android
aplikacij),
• Qt Bluetooth (vsebuje operacije kot so iskanje naprav ter povezava z njimi),
• Qt Core (ponuja jedro ne grafičnih funkcionalnosti),
• Qt Designer (ponuja razrede, s pomočjo katerih lahko ustvarimo svoje gradniške
vtičnike),
• Qt GUI (ponuja osnovne gradnike za grafične aplikacije, ki so napisane v Qt),
• Qt Mac Extras (ponuja razrede ter funkcije namenjene posebej za platforme Mac
OS X ter iOS),
• Qt Multimedia (vsebuje podporo za multimedijske funkcionalnosti: avdio, video,
radio in kamero),
• Qt NFC (API za uporabo NFC),
• Qt OpenGL (modul ponuja razrede, ki omogočajo enostavno uporabo OpenGL v
aplikacijah),
• Qt Print Support (razredi, ki omogočajo enostavno ter prenosljivo tiskanje),
• Qt Quick Widgets (API z podporo za gradnike),
• Qt Sensors (ponuja razrede, ki omogočajo branje podatkov iz senzorjev),
• Qt SQL (API za podporo SQL podatkovnim bazam),
• Qt SVG (podpora za ravnanje z SVG slikami),
• Qt Windows Extras (ponuja razrede ter funkcije, za uporabo nekaterih Windows
vmesnikov).
Seveda Qt ponuja še veliko več modulov ter vmesnikov, saj ponujajo redne posodobitve, v
katerih se pojavlja vedno več novosti, s katerimi želijo zagotoviti podporo čim več
platformam.
Razvojna orodja za heterogene mobilne platforme
22
3.6 Embarcadero Delphi XE6/XE7
Je orodje, ki omogoča razvoj aplikacij za heterogene mobilne platforme, ki omogoča hitrejši
način razvoja za Windows, Mac, Android, iOS in druge naprave. Sprva orodje ni podpiralo
razvoja heterogenih mobilnih aplikacij, vendar pa se je pri zadnjih dveh verzijah XE6 in XE7
to spremenilo ter tako postaja orodje čedalje bol namenjeno za razvoj heterogenih aplikacij.
Verzija XE6, ki je izšla 15. aprila 2014, je tako vsebovala podporo za razvoj domorodnih
aplikacij za namizne in mobilne platforme. Nato pa je 2. septembra 2014 izšla še verzija
XE7, ki sedaj ponuja še dodatne in izboljšane funkcionalnosti, kot je ta, da pri razvoju ni več
treba izbrati med razvojem za namizne ali mobilne aplikacije, pač pa sedaj aplikacije
podpirajo vse podprte platforme, ki so naslednje [27]:
• 32-bit in 64-bit Windows,
• Mac OS X,
• iOS naprave,
• Android,
• Windows Phone,
• Blackberry.
Orodje torej omogoča Delphi/Object Pascal in C++ razvijalcem ustvariti povezavo mobilnih
in namiznih aplikacij na podlagi že obstoječih Windows aplikacij. Tako jih nadgradijo z
dodatnimi pripomočki in storitvami ter tako omogočijo uporabo uporabniškega vmesnika
aplikacije na več različnih napravah ter platformah.
Razvojna orodja za heterogene mobilne platforme
23
4 PRIMERJAVA ORODIJ
V prejšnjem poglavju so opisana orodja, ki omogočajo razvoj heterogenih mobilnih aplikacij,
v tem poglavju pa je predstavljena primerjalna tabela (tabela 4.1) teh orodjih po nekaj
osnovnih kriterijih, ki bi jih morala ta orodja vsebovati.
Tabela 4.1: Primerjava posameznih orodij
PhoneGap Appcelerator Adobe
AIR Mono Qt
Delphi
XE7
Android ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
iOS ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Windows
Phone ✓✓✓✓ X X X X ✓✓✓✓
Blackberry ✓✓✓✓ ✓✓✓✓ X X ✓✓✓✓ ✓✓✓✓
Firefox OS ✓✓✓✓ X X X X X
Ubunto
Touch ✓✓✓✓ X X X X X
Tizen ✓✓✓✓ X X X X X
Namizne
platforme ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Domorodni
pristop ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ X ✓✓✓✓
Hibridni
pristop ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ X ✓✓✓✓ X
Spletni
pristop ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Dodatni API ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ ✓✓✓✓
Odprtokodno ✓✓✓✓ ✓✓✓✓ X ✓✓✓✓ ✓✓✓✓ X
Brezplačno ✓✓✓✓ ✓✓✓✓X ✓✓✓✓ ✓✓✓✓ ✓✓✓✓ X
✓✓✓✓- podprte lastnosti
X – nepodprte lastnosti
Razvojna orodja za heterogene mobilne platforme
24
Iz zgornje tabele tako ugotovimo, da so vsa orodja enaka zgolj po tem, da vsa podpirajo
razvoj Android, iOS in namizne aplikacije, ponujajo razvoj aplikacij preko spletnega načina
z uporabo spletnih tehnologij ter da so za vsa orodja na voljo dodatni vtičniki ali moduli.
4.1 Primerjava PhoneGap in Appcelerator
Ker sta PhoneGap in Appcelerator obe zelo popularni in najbolj razširjeni odprtokodni
delovni okolji, ki omogočata razvoj mobilnih aplikacij za heterogene mobilne platforme, smo
se odločili za podrobnejšo primerjavo njunih lastnosti.
Čeprav je na prvi pogled videti, da sta okolji zelo podobni, pa med njima obstaja kar nekaj
očitnih razlik. Tako je na primer PhoneGap orodje za izdelavo hibridnih aplikacij, medtem
ko je Appcelerator orodje za razvoj naprednih domorodnih aplikacij, ki podpirajo domorodne
funkcionalnosti in vmesnike. Iz tega razloga ima Appcelerator tudi podporo več vmesnikom
za programiranje aplikacij, kot jih ima PhoneGap.
V spodnji tabeli 4.1 je prikazana primerjava po nekaj splošnih primerjalnih kriterijev med
orodjema PhoneGap in Appcelerator.
Razvojna orodja za heterogene mobilne platforme
25
Tabela 4.2: Primerjava orodij PhoneGap in Appcelerator [26]
Slika 4.1:PhoneGap
Slika 4.2:Appcelerator
Arhitektura Za izdelavo hibridnih aplikacij
Za izdelavo domorodnih aplikacij
Fleksibilnost Spletna z dostopom do
domorodnih funkcij Domorodna
Shranjevanje
podatkov Lokalni pomnilnik, WebSQL
SQLite vdelana podatkovna
baza
Ponovna uporaba
programske kode
»Napiši enkrat, poganjaj
povsod«
Različna koda za vsako
platformo
Podprte mobilne
platfome
• Android • iOS • Blackberry OS • Windows Phone • Firefox OS • Ubunto Touch • Tizen • Symbian
• Android • iOS • Blackberry OS
Podprti jeziki • JavaScript • HTML
• JavaScript (mobilne in namizne aplikacije)
• Ruby (samo namizne) • Phyton (samo namizne) • PHP (samo namizne)
Razhroščevanje Lahko Težko
Licenca Apache Licence GPL- General Public Licence
Težavnost
programiranja Srednje Napredno
Dodatni moduli Brezplačni Nekateri plačljivi
Cena Brezplačno Brezplačno ampak omejeno,
Enterprise Edition
Razvojna orodja za heterogene mobilne platforme
26
PhoneGap in Appcelerator sta torej orodji, ki omogočata razvoj aplikacij za heterogene
mobilne platforme na podlagi JavaScripta in spletnih tehnologij, vendar če izbiramo
posamezno orodje, izbira ni toliko odvisna od posameznega orodja kot od tega, kakšne
vrste je aplikacija, kako zahtevna bo ter koliko izkušenj imamo iz programiranja v spletnih
in domorodnih programskih jezikih.
4.1.1 Razvoj aplikacij s PhoneGapom
Razvoj aplikacije v PhoneGapu poteka v posameznih platformah nekoliko drugače, saj se
razlikuje glede na razvojno okolje. Namestitev na operacijskem sistemu Windows 7, poteka
preko ukazne vrstice, še prej pa je treba imeti nameščeno tudi platformo Node.js in delovno
okolje, s katerim želimo razvijati npr. Android SDK.
Ko je namestitev zaključena, lahko nadaljujemo kar v ukazni vrstici ter z naslednjimi ukazi
ustvarimo nov projekt, ki bo osnova za aplikacijo, ter poženemo PhoneGap strežnik, preko
katerega bomo aplikacijo testirali:
$ phonegap create my-app
$ cd my-app
$ phonegap run android
$ phonegap serve
Ukazi nam ustvarijo nov projekt ter zaženejo lokalni strežnik, preko katerega lahko aplikacijo
testiramo v realnem času, preko namenske aplikacije PhoneGap Developer, ki si jo za
Android namestimo iz Google Play trgovine, če pa razvijamo za katero drugo platformo, pa
si aplikacijo namestimo iz lastne trgovine tiste platforme. V direktoriju, v katerem smo
ustvarili nov projekt, najdemo mapo www, ki vsebuje HTML, JavaScript in CSS datoteke, v
katere pišemo programsko kodo, ter tako ustvarimo aplikacijo.
Razvojna orodja za heterogene mobilne platforme
27
Slika 4.3: Android aplikacija PhoneGap
Dostop do realno-časovnega testiraja dobimo z vpisom IP naslova, ki nam ga poda strežnik
v računalniku. Ko smo povezani, se ob vsaki spremembi HTML dokumenta na računalniku
spremembe prikažejo na telefonu. Aplikacijo je seveda možno na ta način testirati v vseh
podprtih platformah, lahko pa testiramo tudi v spletnem brskalniku računalnika.
Če želimo ustvariti aplikacijo, ki ima dostop do domorodnih funkcij, pa je treba namestiti še
platformo Apache Cordova, v tem primeru pa je veliko lažje, če s programiranjem aplikacije
nadaljujemo v razvojnem okolju, npr. Eclipse. Potem v ukazni vrstici lahko z ukazom:
»cordova platform add android«
v projekt dodamo platformo android ali pa katero drugo mobilno platformo za katero želimo
razvijati z uporabo domorodnih funkcij.
Razvojna orodja za heterogene mobilne platforme
28
4.1.2 Razvoj aplikacij z Appcelerator Titanium
Razvoj aplikacij s pomočjo Appceleratorja poteka v Titanium Studiu, ki ga je najprej treba
namestiti na računalnik, nato sledi nameščanje SDK-jev za ciljne platforme, za katere se
aplikacija razvija. Namestitev SDK poteka kar v orodju samem, kjer je treba označiti, za
katere platforme se bo aplikacija razvijala, Titanium pa nato sam sname izbrane SDK-je in
jih namesti. Po želji je treba namestiti še virtualno napravo za posamezno platformo, da se
lahko na njem testira aplikacijo, lahko pa se aplikacijo testira tudi na napravi.
Upravljanje orodja poteka preko ukazne vrstice, kjer lahko upravljamo z nastavitvami,
inštaliramo nove komponente in virtualne naprave.
Slika 4.4: Upravljanje Titanium Studia v ukazni vrstici
Sedaj ko je vse pripravljeno za razvoj aplikacije, je treba ustvariti nov projekt tipa »Mobile
App Project« z templato »Default Alloy Project«, nato pa je treba vnesti ime projekta,
aplikacijski ID in izbrati ciljno platformo.
Nov projekt je ustvarjen in delo na aplikaciji se lahko prične. Aplikacija se v tem primeru
izdeluje s spreminjanjem index.xml, ki se nahaja v »views« direktoriju projekta ter
JavaScript datoteki, v kateri pišemo programske funkcije za dostop do posameznih
modulov in funkcionalnosti. Aplikacijo nato z klikom na gumb »Run« poženemo na izbrani
virtualni ali fizični napravi z mobilno platformo, za katero razvijamo.
Razvojna orodja za heterogene mobilne platforme
29
5 TESTNA APLIKACIJA
Sedaj ko smo spoznali orodja, ki so primerna za izdelavo aplikacij za heterogene mobilne
platforme, smo izmed vseh orodij izbrali eno, ki jo bomo tudi preizkusili ter z njo izdelali
testno aplikacijo.
Odločili smo se za orodje PhoneGap, ker nas je prepričal s svojo preprostostjo ter s svojo
nezahtevnostjo razvoja aplikacij s pomočjo HTML, JavaScript in CSS. V tem orodju je tako
možno preko osnovnih spletnih tehnologij zgraditi aplikacijo, ki vsebuje domorodne lastnosti
(dostop do kompasa, fotoaparata …). Končano aplikacijo bomo nato namestili na tri različne
naprave z različnimi platformami (Android, iOS in Windows Phone), med njimi primerjali
aplikacijo ter poiskali razlike v delovanju ter izgledu.
Sama izgradnja aplikacije ni potekala tako zelo težavno kot pa priprava okolja za izdelavo
same aplikacije, saj se pri pripravi in namestitvi posameznih komponent pojavijo zahtevni
namestitveni postopki, ki zahtevajo, da v sistem ročno dodamo sistemske spremenljivke
(ANDROID_HOME, JAVA_HOME in ANT_HOME), ki pa jih sistem nikakor noče zaznati.
Po dolgotrajnem trudu je bila napaka odpravljena in lahko smo nadaljevali z delom.
Aplikacijo smo zgradili z namenom preizkusiti različne vmesnike za programiranje aplikacij,
zato smo v aplikacijo vključili naslednje:
• Kamera (zajem, prikaz in shranjevanje fotografije),
• Kompas,
• Podatkovna baza (kreiranje, vnos in izpis),
• Obvestila (prikaz, pisk, vibriranje),
• Galerija,
• Stanje baterije,
• Lastnosti naprave.
Poganjanje in testiranje aplikacije je potekalo preko PhoneGap strežnika, ki ga upravljamo
preko ukazne vrstice na mobilnih napravah:
• LG Nexus 5 z platformo Android Kit Kat 4.4.4,
• Nokia Lumnia 520 z platformo Windows Phone 8,
• Apple iPod Touch 4G z platformo iOS 6.1.2.
Razvojna orodja za heterogene mobilne platforme
30
5.1 Analiza aplikacije
Na mobilnih napravah je najprej treba imeti nameščeno aplikacijo PhoneGap Developer, s
katero nam je omogočeno testiranje aplikacij preko PhoneGap strežnika, na katerega se
povežemo preko brezžičnega omrežja Wi-Fi. Testiranje aplikacije je možno na poljubnem
številu različnih naprav hkrati, vendar je v tem primeru delovanje aplikacije vidno
počasnejše.
Aplikacija je tako sestavljena iz glavnega zaslona (slike 5.1, 5.2 in 5.3), ki vsebuje gumbe
za dostop in testiranje različnih zgoraj naštetih funkcij.
Slika 5.1: Android 4.4.4
aplikacija
Slika 5.2: iOS 6.1.2
aplikacija
Slika 5.3: Windows Phone
8 aplikacija
Aplikacija je tako zelo drugačna že na prvi pogled osnovnega zaslona, saj je na vsaki
platformi prikazana nekoliko drugače. Na platformi Android (slika 5.1) ima aplikacija
pravokotne gumbe, medtem ko je na platformi iOS (slika 5.2) izgled nekoliko drugačen, saj
so gumbi zaobljeni in nekoliko prozorni, na platformi Windows Phone (slika 5.3) pa je
element aplikacije »premajhen«, saj vsebuje premajhne gumbe in pisavo, na zaslonu pa je
veliko praznega prostora.
Razvojna orodja za heterogene mobilne platforme
31
5.1.1 Kamera
Na vseh treh napravah se nam ob stisku gumba »Fotografiraj« odprejo kamere, s katerimi
lahko posnamemo sliko, ki se nam nato prikaže v aplikaciji v majhnem okvirčku. Vizualne
razlike so spet samo v obliki in velikosti. Razlika v delovanju pa je, da platformi iOS (slika
5.5) in Windows Phone (slika 5.6) posnete slike shranita v galerijo telefona, pri Androidu
(slika 5.4) pa se sicer ne pojavi nobena napaka, vendar se slika v galerijo ne shrani.
Slika 5.4: Android kamera
Slika 5.5: iOS kamera
Slika 5.6: Windows Phone
kamera
5.1.2 Lastnosti naprave in obvestilno okno
Druga funkcija nam prikaže podrobnosti naprave s pomočjo opozorilnega okna (ang.
Notification Alert), podrobnosti o napravi, ki jih izvemo s pomočjo tega vmesnika, so Ime
naprave, Verzija PhoneGapa, Vrsta platforme, Verzija platforme ter UUID naprave. Na vseh
treh platformah so ustrezno prikazane vse informacije, iz neznanega razloga pa sta bili
informaciji Ime naprave in Verzija PhoneGapa nedefinirani.
Prikazi obvestila na posameznih platformah pa so prikazani v svojem stilu (slike 5.7, 5.8 in
5.9). Prav tako so na vseh platformah obvestilna okna delovala v redu, prikaz vsakega okna
pa je spremljal tudi pisk in vibriranje.
Razvojna orodja za heterogene mobilne platforme
32
Slika 5.7: Android
opozorilno okno
Slika 5.8: iOS opozorilno
okno
Slika 5.9: Windows Phone
opozorilno okno
5.1.3 Podatkovna baza in dostop do pomnilnika
Dostop do podatkovne baze je na klasičen način velikokrat zelo težaven pri posameznih
platformah, s pomočjo PhoneGapa pa je to popolnoma enostavno, saj lahko lokalno
podatkovno bazo kreiramo zgolj z JavaScriptom, katerega koda pa pozneje ustreza na vseh
platformah. V našem primeru smo uspešno kreirali podatkovno bazo ter izpisali podatke na
dveh platformah Android in iOS. Na platformi Windows Phone pa ni uspelo ne kreirati
podatkovne baze in ne izpisati podatkov, pač pa aplikacija sploh ni reagirala.
5.1.4 Kompas
Uporaba kompasa je najzanimivejša funkcija, ki jo omogoča PhoneGap. Ko obračamo
mobilno napravo v različne smeri neba, nam ta vrača vrednosti med 0 in 359.99, iz katerih
pa lahko nato izračunamo smer v katero je naprava obrnjena. Pri tej funkciji smo naleteli na
zelo različne rezultate, saj je kompas na napravi Android (slika 5.10) deloval odlično,
medtem ko na napravi z iOS-om ni deloval, ker iPod Touch, na katerem smo testirali,
kompasa ne podpira (slika 5.11). Na Windows Phone napravi pa se je namesto smeri
prikazala napaka (slika 5.12).
Razvojna orodja za heterogene mobilne platforme
33
Slika 5.10: Android kompas
Slika 5.11: iOS kompas
Slika 5.12: Windows Phone
nedelujoč kompas
Razvojna orodja za heterogene mobilne platforme
34
5.2 Izgradnja aplikacije
Izgradnja aplikacije je potekala v urejevalniku programske kode Notepad++ in je sestavljena
s pomočjo HTML, JavaScripta in CSS-ja, pri čemer pa je HTML kode zelo malo, saj
predstavlja samo nekaj osnovnih elementov na začetnem zaslonu. V tem poglavju je
predstavljenih nekaj najpomembnejših izsekov programske kode.
Index.html:
<body onload="onLoad()" id="bod" background="img/bg.png">
<h1>PhoneGap testna Aplikacija</h1>
<button onclick="capturePhoto();" style="width:80%;height:70px;">
<font size="5"> Fotografiraj</font></button> <br>
<img style="display:none;width:200px;height:200px;" id="smallImage" src="" />
<button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);
"style="width:80%;height:70px;">
<font size="5"> Galerija</font></button><br>
<button onclick="properties();"style="width:80%;height:70px;">
<font size="5">Lastnosti naprave</font></button><br>
<button onclick="podatkovnaBaza();"style="width:80%;height:70px;">
<font size="5">Podatkovna baza</font></button><br>
<button onclick="kompas();"style="width:80%;height:70px;"><font size="5">Kompas
</font></button>
</body>
Razvojna orodja za heterogene mobilne platforme
35
Vsa ostala koda pa je sestavljena z JavaScriptom, npr. funkcija za izračun smeri pri
kompasu:
function onSuccess(heading) {
var directions = ['Sever', 'Severo-Vzhod', 'Vzhod', 'Jugo-Vzhod', 'Jug', 'Jugo-Zahod',
'Zahod', 'Severo-Zahod', 'Sever']; //polje z vrednostmi, ki se prikazujejo na zaslonu
var smer = (((heading.magneticHeading)+23)/45);// izračun vrednosti, na podlagi katere
se prikaže pravilna vrednost iz zgornjega polja
var element = document.getElementById('heading');
element.innerHTML = directions[parseInt(smer)];// prikaz vrednosti s pomočjo
innerHTML
}
Razvojna orodja za heterogene mobilne platforme
36
Funkciji za izpis podatkov iz podatkovne baze:
function queryDB(tx) {
tx.executeSql('SELECT * FROM TEST', [], querySuccess, errorCB); // po vpraševalni
stavek, ki vrne vse vrednosti z podatkovne baze
}
function querySuccess(tx, results) {
var len = results.rows.length;
for (var i=0; i<len; i++){ // zanka, ki izpiše vse rezultate
document.getElementById("rezultati").innerHTML+=
'<tr bgcolor="#E0E0E0"><td width="80px"><img src="img/user.jpg"
style="width:80px;height:80px"></td><td>'
+ results.rows.item(i).ime +'</td><td>'
+ results.rows.item(i).priimek +'</td></tr><tr height="2px"></tr>';
//izpis vseh podatkov iz podatkovne baze s pomočjo innerHTML
}
}
JavaScript funkcija omogoča zajem fotografije, za zajeto fotografijo pa lahko nastavimo
tudi posamezne nastavitve, kot so velikost slike, vrsta slike ipd.
function capturePhoto() {
navigator.camera.getPicture(onPhotoDataSuccess, onFail, {
quality : 75,// kvaliteta slike
destinationType : Camera.DestinationType.DATA_URL,
//format vrnjene destinacije
sourceType : Camera.PictureSourceType.CAMERA//vir slike
allowEdit : false,//omogočitev urejanja
encodingType: Camera.EncodingType.JPEG,//vrsta slike oziroma kodiranje
targetWidth: 900,// širina slike
targetHeight: 900,//višina slike
popoverOptions: CameraPopoverOptions,//iOS nastavitve
saveToPhotoAlbum: true //shranjevanje v galerijo
});}
Razvojna orodja za heterogene mobilne platforme
37
6 SKLEP
V diplomskem delu smo najprej spoznali tri najbolj uporabljane mobilne platforme: Android,
iOS in Windows Phone, ter proučili kako so se platforme z leti razvijale ter pridobivale na
tržnih deležih. Nato pa smo spoznali tudi, kako poteka razvoj aplikacij za te platforme,
kakšna so razvojna okolja in kaj potrebujemo za razvoj posameznih aplikacij.
Danes klasični razvoj aplikacij več ne zadostuje, saj je razvoj aplikacij za posamezne
platforme prepočasen ter predstavlja precejšen strošek za naročnike aplikacij, če želijo
zagotoviti svojo aplikacijo za več različnih mobilnih platform. Zato smo spoznali različna
orodja, s katerimi se razvoj mobilnih aplikacij zelo poenostavi, saj orodja omogočajo razvoj
aplikacij, npr. v JavaScriptu, aplikacija pa nato ustreza različnim platformam v nasprotju z
domorodnim razvojem aplikacij, kjer lahko razvito aplikacijo namestimo samo na platformo,
za katero smo razvijali. Tako smo spoznali več različnih orodij, ki omogočajo razvoj aplikacij
za heterogene mobilne platforme, ter se podrobneje posvetili PhoneGapu in Appceleratorju,
ki smo ju tudi preizkusili, ju podrobneje primerjali med sabo ter opisali postopek razvoja
aplikacije.
Ker nas je najbolj izmed vseh orodij prepričal PhoneGap, smo v njem razvili poskusno
aplikacijo, v kateri smo preizkusili različne API-je. Aplikacijo smo nato testirali na treh
različnih platformah Android, iOS in Windows Phone ter ugotovili, da se kljub enaki
programski kodi med platformami pojavljajo vizualne in tehnične razlike. Tako je aplikacija
med posameznimi platformami vizualno malo drugačna, nekateri API-ji pa na vseh
platformah brez posebnih modifikacij ne delujejo.
V diplomski nalogi smo tako ugotovili, da razvoj aplikacij s temi orodji močno poenostavijo
razvoj aplikacij in močno skrajšajo čas razvoja, vendar pa nastanejo težave pri razvoju
zahtevnejših aplikacij, kjer je prav tako kot pri klasičnem razvoju treba določene dele
aplikacije sprogramirati v domorodni programski kodi, kar pri razvijalcu zahteva tudi to
znanje.
Razvojna orodja za heterogene mobilne platforme
38
7 VIRI
[1] Thomas M. Beginning PhoneGap. Indianapolis: John Wiley & Sons, Inc., 2012.
[2] Adobe Systems Inc. Phonegap, 2014. Dostopno na: http://www.phonegap.com/ [10.
julij 2014].
[3] Olsen M. Mobile Application Development of the Erhvervsstyrelsen Frekvensregistret
Service - Challenges and Implementation. Kongens Lyngby, 2012.
[4.] Digia. Qt digia, 2014. Dostopno na: http://qt.digia.com/ [15. julij 2014].
[5] Xamarin, 2014. Dostopno na: http://xamarin.com/platform [16. julij 2014].
[6] Mono, 2014. Dostopno na: http://www.mono-project.com/Main_Page [16. julij 2014].
[7] Brossier V. Developing Android Applications with Adobe AIR. O'Reilly Media, Inc.,
2011.
[8] Google Inc. Developer Android, 12. maj 2014. Dostopno na:
http://developer.android.com/about/index.html [22. avgust 2014].
[9] Future tech hub 2050. VERSION HISTORY AND FEATURES OF WINDOWS PHONE
LIKE WINDOWS PHONE 7 OR WINDOWS PHONE 8. Dostopno na:
http://fth2050.blogspot.com/2013/08/version-history-and-features-of-windows.html [31.
avgust 2014].
[10] Open Handset Alliance. Dostopno na: http://www.openhandsetalliance.com/ [1.
september 2014].
[11] Beal V. Webopedia. mobile operating system (OS). Dostopno na:
http://www.webopedia.com/TERM/M/mobile_operating_system.html [1. september 2014].
[12] Blogging Hits. The Brief History of Windows Phone, 4. julij 2013. Dostopno na:
http://www.blogginghits.com/2013/07/04/the-brief-history-of-windows-phone/ [2.
september 2014].
Razvojna orodja za heterogene mobilne platforme
39
[13] Veugelen W. Mobile Device Security and Ethical Hacking . Mobile Application
Penetration Testing, 2013. Dostopno na: http://www.voipsec.eu/wp-content/Mobile-
Application-Penetration-Testing-Windows-Phone-8-v1.0.pdf [2. september 2014].
[14] Martin C. Windows Phone 8.1 and Cortana UK release date and new features: Get
Cortana now in Beta. Pcadvisor, 1. avgust 2014. Dostopno na:
http://www.pcadvisor.co.uk/news/mobile-phone/3510108/windows-phone-81-cortana-
release-date-new-features-uk/ [2. september 2014].
[15] Developer Economics 2013. Developer Economics. Pros and Cons of the Top 5
Cross-Platform Tools, januar 2013. Dostopno na:
http://www.developereconomics.com/pros-cons-top-5-cross-platform-tools/ [2. september
2014].
[16] Nations D. What is iOS? about technology. Dostopno na:
http://ipad.about.com/od/iPad-Glossary/g/What-Is-iOS.htm [5. september 2014].
[17] WhatIsiOS.org. What is iOS?. Dostopno na: http://whatisios.org/ [6. september
2014].
[18] Apple Inc. iOS Developer, 22. oktober 2013. Dostopno na:
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/ [6.
september 2014].
[19] Williams O. The Next Web. Apple announces Swift, a new programming language for
iOS and OS X, 2. Junij 2014. Dostopno na:
http://thenextweb.com/apple/2014/06/02/apple-announces-swift-new-programming-
language-ios/ [6. september 2014].
[20] Microssoft. Windows App Studio, 2014. Dostopno na: http://appstudio.windows.com/
[7. september 2014].
[21] Digia. Qt Project . Documentation, 2014. Dostopno na: https://qt-project.org/doc/qt-5
[8. september 2014].
[22] Appcelerator Inc. Appcelerator Documentation, 2014. Dostopno na:
http://docs.appcelerator.com/platform/latest/#!/api [9. september 2014].
[23] Appcelerator, 2014. Dostopno na: http://www.appcelerator.com/ [10. avgust 2014].
Razvojna orodja za heterogene mobilne platforme
40
[24] Ward J. Adobe. Developing cross-platform Adobe AIR applications, 2008. Dostopno
na: http://www.adobe.com/devnet/air/articles/developing_crossplatform.html [10.
september 2014].
[25] Pitafi W. Best Cross Platform Mobile Development Framework – PhoneGap, 19. maj
2014. Dostopno na: https://www.linkedin.com/today/post/article/20140519093356-
2039541-best-cross-platform-mobile-development-framework-phonegap [12. september
2014].
[26] Rishabh Software. Appcelerator Titanium Vs PhoneGap: A Quick Comparison Guide.
Dostopno na: http://www.rishabhsoft.com/blog/phonegap-vs-titanium [13. september
2014].
[27] Embarcadero. Embarcadero Wiki. What's New in Delphi and C++Builder XE7, 9.
september 2014. Dostopno na:
http://docwiki.embarcadero.com/RADStudio/XE7/en/What%27s_New_in_Delphi_and_C%
2B%2BBuilder_XE7 [16. september 2014].
[28] Diaconescu A. technology tell. Windows Phone 8.1 slowly gains market share, Nokia
Lumia 520 remains WP king, 30. julij 2014. Dostopno na:
http://www.technologytell.com/gadgets/148973/windows-phone-8-1-slowly-gains-market-
share-nokia-lumia-520-remains-wp-king/ [19. september 2014]