razvojna orodja za heterogene mobilne platforme · še testna aplikacija, napisana v orodju...

54
UNIVERZA V MARIBORU FAKULTETA ZA ELEKTROTEHNIKO, RAČUNALNIŠTVO IN INFORMATIKO Matej Notersberg RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME Diplomsko delo Maribor, September 2014

Upload: others

Post on 05-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

UNIVERZA V MARIBORU

FAKULTETA ZA ELEKTROTEHNIKO,

RAČUNALNIŠTVO IN INFORMATIKO

Matej Notersberg

RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME

Diplomsko delo

Maribor, September 2014

Page 2: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 3: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi
Page 4: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 5: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 6: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 7: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 8: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 9: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 10: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 11: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 12: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 13: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 14: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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)

Page 15: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 16: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 17: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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]

Page 18: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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)

Page 19: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 20: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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]

Page 21: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 22: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 23: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

Razvojna orodja za heterogene mobilne platforme

12

Slika 3.1: Delež uporabe najpogostejših razvojnih orodij ter razlogi za izbiro [15]

Page 24: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 25: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 26: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 27: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 28: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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]

Page 29: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 30: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 31: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 32: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 33: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 34: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 35: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 36: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

Page 37: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 38: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 39: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 40: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 41: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 42: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 43: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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).

Page 44: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

Razvojna orodja za heterogene mobilne platforme

33

Slika 5.10: Android kompas

Slika 5.11: iOS kompas

Slika 5.12: Windows Phone

nedelujoč kompas

Page 45: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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>

Page 46: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

}

Page 47: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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

});}

Page 48: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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.

Page 49: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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].

Page 50: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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].

Page 51: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi

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]

Page 52: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi
Page 53: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi
Page 54: RAZVOJNA ORODJA ZA HETEROGENE MOBILNE PLATFORME · še testna aplikacija, napisana v orodju PhoneGap, ki bo nato pretvorjena v ve č razli čnih mobilnih platform ter na njih tudi