U P O R A B N A I N F O R M A T I K A58 2017 - πtevilka 1 - letnik XXV STROKOVNI PRISPEVKI Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË, Univerza v Mariboru, Fakulteta za elektrotehniko, raËunalniπtvo in informatiko, Inπtitut za informatiko, Smetanova 17, 2000 Maribor boris.ovcjak@um.si; tatjana.welzer@um.si; gregor.polancic@um.si 1 UVOD Trg mobilnih naprav ter s tem povezanih mobilnih aplikacij je æe nekaj Ëasa v polnem razcvetu. Leta 2017 je predvideno 4,77 milijarde mobilnih uporabnikov (Statista, 2016b), po- membne rasti pa je deleæen predvsem mobilni podatkovni promet, ki je leta 2015 zrasel za 74 odstotkov v primerjavi z letom 2014 (Cisco, 2016). Vsi ti podatki kaæejo na razπirjenost mobilnih naprav za poslovno in vsakodnevno uporabo. Tega se zavedajo tudi razvijalci, saj πtevilo aplikacij, ki so na raz- polago v aplikacijskih trgovinah, nenehno raste. Tri izmed najbolj razπirjenih platform, Android, iOS in Windows Phone, skupaj dosegajo æe skoraj pet milijard aplikacij (Android 2,2 milijarde, iOS 2 milijardi in Windows Phone 0,67 milijarde) (Statista, 2016a). Prav porazdeljenost platform je za razvi- jalce eden veËjih izzivov, saj je treba tako naloge razvoja kot tudi posodabljanja in vzdræevanja aplikacij opravljati na veË platformah (Joorabchi, Mesbah in Kruchten, 2013). To zah- teva veËkratno izvajanje enakih nalog, kar vpliva tako na Ëas razvoja kot na s tem povezane stroπke. Omenjene teæave pri razvoju aplikacij za veË plat­ form so razvijalce prisilile v iskanje alternativnih, uËinkovitejπih veËplatformskih razvojnih tehnik. Tre­ nutno je na voljo veË pristopov, ki ob prihranjenem Ëasu in stroπkih zahtevajo doloËene kompromise, povezane z izgledom, razpoloæljivostjo funkcional­ nosti mobilne naprave ter uËinkovitostjo delovanja aplikacij. Zaradi tega izbira veËplaformskega razvoj­ nega pristopa predstavlja svojevrsten izziv, s katerim Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij IzvleËek Prispevek prikazuje rezultate primerjalne analize zmogljivosti veËplatformsko razvite mobilne aplikacije za iOS, Android in Windows Phone. Analiza je namenjena ocenitvi primernosti uporabe izbranih razvojnih ogrodij. V ta namen sta bila izbrana dva razvojna pristopa (hibridni in veËplatformsko prevedeni) ter pripadajoËa ogrodja (Ionic in Xamarin). Implementirana vzorËna aplikacija je bila na podlagi petih testov zmogljivosti primerjana z aplikacijo, razvito z domorodnim pristopom. Rezultati testov so pokazali primernost uporabe veËplatformsko prevedenega pristopa, saj se je ta na podlagi izbranega ogrodja domorodnemu pristopu precej pribliæal, medtem ko se je hibridni pristop predvsem v strojno zahtevnejπih opravilih izkazal za neuËinkovitega. KljuËne besede: mobilne aplikacije, mobilne platforme, veËplatformski razvoj, zmogljivost, hibridne aplikacije, veËplatformsko prevedene aplikacije, Xamarin, Ionic. Abstract Performance comparison of cross-platform mobile applications The article presents the results of a performance based comparative analysis of cross-platform developed mobile application for iOS, Android and Windows Phone. The analysis is intended to assess the appropriateness of use of the selected development frameworks. To this end, two development approaches (hybrid and cross-compiled) and associated frameworks (Ionic and Xamarin) were selected. The implemented sample application was compared with the native application on the basis of five performance tests. Test results have shown the suitability of cross- -compiled approach, since the selected frameworks’ performance came close to the native approach, while the hybrid approach proved ineffec- tive especially in regard to in complex hardware tasks. Keywords: mobile applications, mobile platforms, cross-platform development, performance, hybrid applications, cross-compiled applications, Xamarin, Ionic. U P O R A B N A I N F O R M A T I K A 592017 - πtevilka 1 - letnik XXV se spopadajo tudi raziskovalci, ki skuπajo razvijalcem olajπati izbiro s predstavitvijo in primerjavo obstoje­ Ëih pristopov tako s teoretiËnega (znanstvenega) (R. M. de Andrade, B. Albuquerque, F. Frota, V. Silveira in A. da Silva, 2015; Charkaoui, Adraoui in Habib Ben­ lahmar, 2014; Palmieri, Singh in Cicchetti, 2012; Smut­ ný, 2012; Adinugroho in Gautama, 2015; Xanthopou­ los in Xinogalos, 2013) kot tudi s strokovnega (prak­ tiËnega) staliπËa. Raziskave se pri tem usmerjajo v analize razliËnih vidikov veËplatformskega razvoja (Dalmasso, Datta, Bonnet in Nikaein, 2013; Daniels­ son, Ameri, Friberg, Examiner in Lindell, 2014). Ob že uveljavljenih razvojnih pristopih raziskovalci raz­ vijajo tudi nove, ki temeljijo na obstojeËih, oz. razvi­ jajo nove alternativne (Perchat, Desertot in Lecomte, 2013; Bouras, Papazois, & Stasinos, 2014 El­Kassas, Abdullah, Yousef in Wahba, 2014). Glede na koliËi­ no razliËnih ogrodij in pristopov se raziskovalci po­ sveËajo tudi izdelavi platform za ocenjevanje veËplat­ formskih mobilnih ogrodij (Dhillon, 2015). V Ëlanku bomo predstavili razliËne vrste veËplat­ formskega razvoja, njihove lastnosti, prednosti in slabosti. Glede na razpoloæljivost razliËnih ogrodij in platform se bomo natanËneje osredinili predvsem na tiste, ki so razvijalcu v polni funkcionalnosti na voljo brezplaËno in je z njimi mogoËe razviti mobil­ no aplikacijo za platforme iOS, Android in Windows Phone. Za vsakega izmed preuËenih pristopov bomo podrobneje predstavili najbolj razπirjenega predstav­ nika ter na podlagi vzorËne aplikacije s primerjalno analizo zmogljivosti ocenili primernost uporabe og­ rodij v primerjavi z domorodnim razvojem. 2 PRISTOPI RAZVOJA VE»PLATFORMSKIH APLIKACIJ Cilj veËplatformskega razvoja mobilnih aplikacij je zagotoviti enovit pristop k razvoju mobilnih aplikacij za veË platform. Poleg domorodnega naËina razvoja aplikacij, ki zahteva loËen razvoj za vsako izmed mo­ bilnih platform, je to mogoËe zagotoviti na razliËne naËine. Vsi omogoËajo z enim samim razvojnim oko­ ljem ter programskim jezikom razviti mobilno aplika­ cijo, ki jo je mogoËe poganjati na razliËnih platformah. To je pomembno, saj se ob enkratni izbiri razvojnega ogrodja razvijalcem ni veË treba ukvarjati z uËenjem novih tehnologij oz. novih programskih jezikov za vse platforme, saj lahko uporabijo æe obstojeËe zna­ nje. Glede na raznolikost naËinov veËplatformskega razvoja obstajajo razliËne prednosti in slabosti naËi­ na razvoja. V sploπnem veËplatformski razvoj lahko prinese prednosti, kot so: 1) hitrejπi Ëas razvoja, 2) niæji stroπki razvoja, 3) ponovna uporaba programske kode, 4) laæji razvoj, 5) uporaba vtiËnikov, 6) veËji do­ seg træiπËa ter 7) preprosto in hitro podajanje poso­ dobitev. Omenjene prednosti pa lahko zahtevajo tudi doloËene kompromise, med katere πtejemo: 1) manjπo kakovost 3D vsebin in grafike, 2) omejitve platforme (nezmoænost dostopanja do vseh funkcionalnosti platforme), 3) ni zagotovljene optimalne uporabniπke izkuπnje, 4) teæave pri integraciji s platformo ter 5) poËasnejπe delovanje aplikacij (Rajput, 2016). Teæave, ki jih prinaπa porazdeljenost mobilnih plat­ form, so povzroËile razcvet razliËnih kategorij veËplat­ formskih pristopov, ki se med sabo razlikujejo tako po arhitekturi, naËinu razvoja, uporabljenih tehnologijah ter razvojnih orodjih. V sploπnem naËine raz voja mo­ bilnih aplikacij delimo na pet skupin (Rahul Raj in To­ lety, 2012; Xanthopoulos in Xinogalos, 2013).  Domorodne aplikacije (angl. Native applicati­ ons) pomenijo privzet naËin razvoja mobilnih aplikacij in so specifiËne za vsako mobilno plat­ formo, torej uporabljajo razvojna orodja in pro­ gramski jezik, ki ga doloËa specifiËna platforma. ObiËajno tovrstne aplikacije zagotavljajo najveËjo podporo funkcionalnostim naprave ter omogoËa­ jo aplikaciji specifiËen izgled ter optimalno delo­ vanje (Korf in Oksman, 2016).  Spletne mobile aplikacije (angl. mobile web appli­ cations) so aplikacije, razvite z namenom izvajanja v brskalniku mobilne naprave. Razvite so s pomoËjo spletnih tehnologij (HTML5, CSS3 in JavaScript). Za izvajanje tovrstnih aplikacij mobilna naprava ne potrebuje posebej nameπËene aplikacije, saj se vsa vsebina prikazuje v brskalniku naprave.  Hibridne aplikacije (angl. hybrid applications) so kombinacija spletnega in domorodnega ra­ zvojnega pristopa. Razvite so s pomoËjo splet­ nih tehnologij in se na mobilni napravi izvajajo znotraj domorodne komponente WebView. Ta je skupna vsem mobilnim platformam in omogoËa prikaz vsebine HTML na celoten zaslon naprave. Takπen naËin razvoja omogoËa dostop do funkci­ onalnosti naprave preko abstrakcijskega nivoja, ki zmoænosti naprave izpostavlja v obliki Java­ Script API (angl. Application Programming In­ terface). Hibridni pristop lahko uporabljamo tako za streæniπke kot za samostojne spletne aplikacije. Za razliko od spletnih mobilnih aplikacij moramo Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij U P O R A B N A I N F O R M A T I K A60 2017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij tovrstne aplikacije prenesti na telefon prek aplika­ cijskih trgovin.  Interpretirane aplikacije (angl. Interpreted ap­ plications) delujejo tako, da se aplikacijska koda postavi na mobilno napravo in se interpretira πele v Ëasu izvajanja aplikacije. Aplikacija nato komu­ nicira z abstrakcijskim nivojem, prek katerega dostopa do domorodnega API­ja, kar ji omogoËa dostop do naprednejπih funkcionalnosti mobilne naprave. Tako razvite aplikacije omogoËajo upo­ rabo platformsko specifiËnih elementov za iz­ gradnjo uporabniπkega vmesnika, medtem ko je aplikacijska logika zajeta na naËin, neodvisen od platforme. To je lahko v obliki mnoæice ukazov v XML ali v katerem drugem opisnem jeziku.  VeËplatformsko prevedene aplikacije (angl. cross­compiled applications) temeljijo na preva­ jalniku, ki omogoËa pretvorbo izvorne v domoro­ dno binarno kodo. Prevajalnik je v tem primeru odgovoren za generiranje in izvajanje program­ ske kode za specifiËno platformo (Xamarin, 2016). Tako lahko razvijalec napiπe izvorno kodo v eno­ tnem skupnem programskem jeziku, ki ga preva­ jalnik nato prevede v domorodno kodo, doloËe­ no pri ciljni platformi. V tem primeru je celoten pristop odvisen od uËinkovitosti in zanesljivosti prevajalnika. Tabela 1 prikazuje razliËne pristope veËplatformske­ ga razvoja, pripadajoËa ogrodja, njihovo dostopnost ter njihove prednosti in izzive (Rahul Raj in Tolety, 2012). Pristop Ogrodja Prednosti Izzivi Domorodne SpecifiËna glede na platformo (brezplaËno) ‡ Domoroden uporabniπki izgled in delovanje ‡ Dostop do vseh funkcionalnih lastnosti platforme ‡ Hitrost izvajanja ‡ Razvoj aplikacij je razliËen za vsako mobilno platformo. Spletne Adobe Air (brezplaËno) ‡ Instalacija aplikacije na mobilno napravo je nepotrebna. ‡ Podatki aplikacije se hranijo na spletnem streæniku, kar lajπa posodabljanje aplikacije. ‡ Enoten uporabniπki vmesnik ‡ Nezmoænost distribucije prek aplikacijskih trgovin, kar lahko negativno vpliva na popularnost aplikacije ‡ Odvisnost od hitrosti povezave s spletom ‡ Nezmoænost dostopanja do funkcionalnosti in strojne opreme mobilne naprave ‡ Potreba po upoπtevanju velike koliËine razliËnih resolucij ‡ Manjπi nadzor mobilnega brskalnika nad prikazovanjem vsebin ‡ Omejena podpora gestam (angl. Gestures) ‡ Teæja monetizacija aplikacije Hibridne Cordova (brezplaËno), PhoneGap (brezplaËno), MoSync (brezplaËno), RhoMobile (brezplaËno z omejitvami) ‡ Distribucija prek aplikacijskih trgovin ‡ Ponovna uporaba uporabniπkega vmesnika prek razliËnih platform ‡ Dostop do funkcionalnosti in zmoænosti mobilne naprave ‡ Slabπa uËinkovitost delovanja v primerjavi z domorodnimi aplikacijami, saj se izvajanje dogaja v komponenti brskalnika ‡ Zaradi uporabe JavaScript programskega jezika so aplikacije izpostavljene ranljivostim CSC (angl. Cross space communication). ‡ Ponovna uporaba uporabniπkega vmesnika ne ponuja domorodnega izgleda aplikacije. To lahko doseæemo z oblikovanjem, specifiËnim za vsako platformo. Interpretirane Titanium (plaËljiv, brezplaËno dostopen osnovni SDK), React Native (brezplaËno) ‡ Prinaπa izgled in obËutek domorodne mobilne aplikacije. ‡ OmogoËa prenos poslovne logike med platformami. ‡ Distribucija aplikacij poteka prek aplikacijskih trgovin. ‡ Strojna oprema in lastnosti naprave so zapakirane znotraj specifiËnega API-ja. ‡ Ponovna uporaba uporabniπkega vmesnika je odvisna od abstrakcije na nivoju ogrodja. ‡ Razvoj je odvisen od mnoæice funkcij, ki jih omogoËa ogrodje. ‡ UËinkovitost delovanja je slabπa zaradi interpretiranja programske kode v Ëasu delovanja. VeËplatformsko prevedene Xamarin (brezplaËno), Marmelade (brezplaËno z omejitvami), JavaFxPorts (brezplaËno) ‡ Ponuja vse funkcionalnosti, ki jih omogoËa domorodna aplikacija. ‡ OmogoËen dostop do strojne opreme mobilne naprave ‡ Zmoænost uporabe vseh vmesniπkih komponent ‡ Glavno prednost predstavlja ustrezna uËinkovitost delovanja. ‡ Ne omogoËa ponovne uporabe uporabniπkega vmesnika ter platform specifiËnih lastnosti, kot so kamera, lokacijske storitve, lokalna obvestila ipd. Ker so te funkcionalnosti odvisne od platforme, se naËin dostopa razlikuje med platformami. Tabela 1: Pristopi veËplatformskega razvoja mobilnih aplikacij (Rahul Raj in Tolety, 2012) U P O R A B N A I N F O R M A T I K A 612017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij Iz tabele je razvidno, da smo ne glede na izbrani pristop sooËeni z doloËenimi izzivi, ki jih ta prinaπa. V povezavi s tem je bil glavni namen Ëlanka z vidi­ ka zmogljivosti aplikacije primerjati trenutno najbolj aktualna veËplatformska ogrodja z domorodnim pristopom. Pri tem smo se omejili na brezplaËno do­ stopna ogrodja, ki omogoËajo razvoj mobilnih apli­ kacij za izbrane tri mobilne platforme. Zaradi tega smo iz primerjalne analize izkljuËili pristop mobil­ nih spletnih aplikacij, saj se tovrstne aplikacije lahko izvajajo izkljuËno le v brskalniku mobilne naprave. V podrobnejπo analizo prav tako nismo vkljuËili interpretiranega pristopa, saj oba izmed pregleda­ nih predstavnikov ne podpirata trenutno najbolj razπirjenje verzije sistema Windows Phone, uporab­ ljene v tej analizi (Windows Phone 8.1) (NetMarket­ Share, 2016), prav tako pa platforma Titanium v urad ni obliki ni na voljo brezplaËno (Titanium, 2016). Ob upoπtevanju omejitev se bomo v Ëlanku osredi­ nili na pristop veËplatformsko prevedenih in hibrid­ nih aplikacij. Glede na to, da oba pristopa vkljuËujeta zbirko razliËnih ogrodij, smo v nadaljevanju izbrali po enega predstavnika za vsak tip razvoja. V pri­ meru veËplatformskega pristopa smo se odloËili za ogrodje Xamarin, saj predstavlja enega izmed najbolj celovitih ogrodij, podprtega s strani podjetja Micro­ soft. Hibridni pristop, za katerega smo se prav tako odloËili, pa je predvsem zaradi priljubljenosti splet­ nih tehnologij, na katerih temelji, precej razπirjen. Za potrebe πtudije smo ogrodje izbrali na podlagi priljubljenosti med razvijalci, in sicer ogrodje Ionic (Noeticforce, 2016; Markov, 2015). Oba izbrana pred­ stavnika sta na kratko predstavljena v nadaljevanju. 2.1 Predstavnik veËplatformsko prevedenega pristopa Xamarin Xamarin je odprtokodna platforma, ki jo ponuja pod­ jetje Microsoft in omogoËa izgradnjo veËplatformsko prevedenih mobilnih aplikacij na deljeni program­ ski bazi z uporabo enotnega razvojnega okolja, pro­ gramskega jezika in API­ja. Podjetje Xamarin je usta­ novil Miguel de Icaza 16. maja 2011 (Allen, 2011) z namenom izgradnje mobilnih aplikacij na podlagi ogrodja Mono, ki omogoËa veËplatformsko izvaja­ nje aplikacij .NET. Uporaba platforme je bila do ne­ davnega plaËljiva, kar pa se je spremenilo, ko je 24. februarja 2016 podjetje prevzel Microsoft (Guthrie, 2016). Dober mesec po prevzemu je namreË podjetje Microsoft objavilo, da je Xamarin SDK postal odprto­ kodno ogrodje na voljo brezplaËno znotraj integrira­ nega razvojnega okolja Visual Studio. Ogrodje Mono .NET, na katerem temelji platforma Xamarin, omogoËa implementacijo πirokega spektra ogrodja .NET, ki ga s programskim jezikom C# lahko poganjamo na veË mobilnih platformah, in sicer iOS, Android ter Windows Phone. Razvoj za vsako izmed omenjenih platform je podprt prek paketov za razvoj programske opreme (angl. SDK), ki omogoËajo pove­ zavo do veËine platform specifiËnih funkcionalnosti (Xamarin, 2016a). SDK je specifiËen tako za Andro­ id (Xamarin.Android SDK) kot za iOS (Xamarin.iOS SDK), medtem ko za platformo Windows Phone ni potreben. Glede na platformo, za katero razvijamo aplikacijo, prevajalnik Xamarin zgradi domorodno aplikacijo, kar pa zaradi raznolikosti ciljnih platform poteka na razliËne naËine (slika 1). Slika 1: Shema pristopa veËplatformsko prevedene aplikacije V primeru platforme iOS se C# programska koda vnaprej prevede v zbirni jezik ARM (angl. Assembly language), v katerega se vkljuËi ogrodje .NET. Na drugi strani se v primeru platforme Android C# pre­ vede v vmesni jezik (angl. Intermediate language), ki se zapakira v Mono virtualno okolje (MonoVM). KonËna aplikacija se tako izvaja vzporedno z javan­ skim ali android izvajalnim okoljem (angl. Runtime environment) in komunicira z domorodnimi tipi prek domorodnega vmesnika Java (angl. Java native interface). V primeru obeh platform se pred vkljuËi­ tvijo ogrodja .NET temu prej odstranijo nerabljeni U P O R A B N A I N F O R M A T I K A62 2017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij razredi v namen zmanjπanja velikosti konËne apli­ kacije. V primerjavi z omenjenima platformama je postopek priprave aplikacije za platformo Windows Phone enostavnejπi, saj za delovanje ne potrebuje ogrodja Xamarin, a je ta vseeno priporoËljiv zaradi moænosti ponovne uporabe programske kode (Xa­ marin, 2016b). To je v primeru ogrodja Xamarin mo­ goËe doseËi na veË naËinov (tabela 2). Z uporabo razliËnih metod ponovne uporabe pro­ gramske kode lahko doseæemo do 90 % deljene pro­ gramske kode (Xamarin, 2016a). Za razvoj aplikacij ogrodje ponuja dve program­ ski orodji, in sicer Visual Studio (Windows) ter Xa­ marin Studio (Windows, macOS), ki glede na opera­ cijski sistem, v katerem razvijamo, podpirata razvoj razliËnih mobilnih platform (tabela 3). »eprav je v operacijskem sistemu Windows mo­ goË razvoj aplikacij za vse podprte platforme, pa za poganjanje iOS aplikacij v vsakem primeru potre­ bujemo raËunalnik z nameπËenim operacijskim sis­ temom macOS ter domorodnim razvojnim okoljem XCode, saj je za uspeπno prevajanje aplikacije potre­ ben iOS SDK (Xamarin, 2016b). Tabela 2: Metode ponovne uporabe programske kode Metoda ponovne uporabe programske kode Opis Xamarin. Mobile Enoten API za dostop do skupnih virov mobilne naprave za vse vrste razvojnih platform (Xamarin, 2016d) Deljeni projekt (angl. Shared Asset Project) Projekt, namenjen organizaciji izvorne kode z uporabo direktiv na ravni prevajalnika za upravljanje platformsko specifiËnih delov programske kode Prenosljive razredne knjiænice (angl. Portable Class Libraries) Projekt, namenjen izgradnji knjiænic za podprte platforme, ki za dostop do platformsko specifiËnih funkcionalnosti uporabljajo vmesnike Xamarin.Forms Strani, napisane z uporabo programskega jezika C# ali XAML, ki se v Ëasu izvajanja skupaj z vsebujoËimi kontrolami preslikajo v platformsko specifiËne vizualne elemente Predvsem so namenjene aplikacijam, osredinjenim na vnos podatkov. 2.2 Predstavnik hibridnega pristopa Ionic Ionic je knjiænica za razvoj hibridnih mobilnih apli­ kacij, ki temeljijo na ogrodjih, kot so Cordova, Pho­ neGap ali Trigger.io (Ionic, 2016). Vsa omogoËajo ra­ zvoj veËplatformskih aplikacij z uporabo standard­ nih spletnih tehnologij HTML5, CSS3 in JavaScript. Tako grajene aplikacije se izvajajo znotraj ovojnic, specifiËnih za vsako ciljno platformo, in prek API­ja zagotavljajo dostop do zmoænosti mobilne naprave, kot so senzorji, podatki ali omreæje. Arhitekturno za­ snovo hibridne mobilne aplikacije v primeru upora­ be hibridnega ogrodja Cordova predstavlja slika 2. Tabela 3: Podprtost platform glede na operacijski sistem in razvojno orodje macOS Windows Mobilna platforma Xamarin Studio Visual Studio Xamarin Studio iOS Da Da (z macOS raËunalnikom) Ne Android Da Da Da Windows Phone Ne Da Da U P O R A B N A I N F O R M A T I K A 632017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij Slika 2: Arhitektura mobilne aplikacije na osnovi ogrodja Cordova (Cordova, 2012) V primeru ogrodja Cordova celoten uporabniπki vmesnik mobilne aplikacije predstavlja komponenta WebView, ki omogoËa prikaz spletne vsebine zno­ traj aplikacije. Znotraj te se nahaja programska koda aplikacije, implementirana v obliki spletne strani skupaj z nastavitveno datoteko, ki vsebuje informa­ cije o aplikaciji ter parametre za njeno delovanje. Ta nato prek API klicev komunicira z razliËnimi vtiËni­ ki, ki predstavljajo vmesnike tako za ogrodje Cordo­ va kot za domorodne komponente mobilne naprav (Cordova, 2012). Neodvisno od podpornega hibridnega ogrodja je glavni namen knjiænice Ionic uporabniku olajπati razvoj Ëela (angl. Front­end) mobilne aplikacije ter tako zagotoviti pristen izgled in obËutek aplikaci­ je predvsem na ravni interakcije z uporabniπkim vmesnikom. To omogoËata prilagojeno ogrodje CSS ter knjiænica JavaScript. Arhitektura ogrodja temelji na vzorcu View Controller, medtem ko za poslovno logiko skrbi odprtokodno ogrodje JavaScript Angu­ larJS (Ionic, 2016). Knjiænica v verziji 1.3 uradno pod­ pira le razvoj aplikacij za platformi iOS in Android, a je zaradi uporabe spletnih tehnologij prenos aplika­ cije na platformo Windows Phone mogoË s preprosto modifikacijo nastavitvene datoteke (Hösl, 2014). Zaradi uporabe spletnih tehnologij je aplikacijo Ionic mogoËe razviti z uporabo katerega koli orodja, ki podpira razvoj spletnih aplikacij. Po drugi strani pa mobilna komponenta WebView zagotavlja, da je aplikacijo brez sprememb v programski kodi mogoËe poganjati na vseh izbranih mobilnih platformah. Spremembe so potrebne le v primeru prilagajanja iz­ gleda aplikacije pravilom posamezne platforme. 3 PRIMERJAVA PRISTOPOV Glavni cilj raziskave je bil primerjava zmogljivosti delovanja veËplatformsko razvitih mobilnih aplika­ cij z namenom ugotavljanja njihove primernosti kot alternative domorodnemu pristopu. V sklopu pri­ merjave smo na vseh izbranih platformah opazovali U P O R A B N A I N F O R M A T I K A64 2017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij zmogljivost delovanja izbranih ogrodij Xamarin in Ionic v primerjavi z domorodnim pristopom, ki je podlaga za optimalno delovanje mobilnih aplikacij. 3.1 Opredelitev testov in testne aplikacije Opredelitev testov je temeljila na standardnih te­ stih mobilnih naprav (PassMark, 2016) ter vidikih odzivnosti aplikacije (DeCapua, 2015). Pri izvedbi testa smo se zgledovali po obstojeËem delu Jakoba Danielssona (2014), ki je na podlagi mobilne platfor­ me iOS primerjal razliËne pristope veËplatformskega razvoja. Njegov pristop je temeljil na standardnih te­ stih mobilnih naprav, ki so sluæili kot primerna pod­ laga za pripravo testov zmogljivosti naπe raziskave. Naπa analiza je od omenjene πtudije prevzela tri te­ ste, ki preverjajo zmogljivost delovanja procesorske enote, spomina in izrisovanja grafike, dodali pa smo primerjavo odzivnosti aplikacije ter Ëasa, potrebnega za vzpostavitev aplikacije. Na podlagi omenjenih dejstev smo zasnovali pet testov (tabela 4), pri katerih smo opazovali od­ zivni Ëas mobilne aplikacije, tj. metriko Ëasovnega obnaπanja (angl. Time behaviour metrics) zmoglji­ vostne uËinkovitosti, povzeto po standardu ISO/ IEC 2010:2011. Metrika je namenjena merjenju pov­ preËnega Ëakalnega Ëasa, ki preteËe od podane zahte­ ve do pridobitve rezultata pod specifiËnimi obreme­ nitvami sistema v smislu soËasnih nalog ali sistem­ ske uporabe (angl. Utilisation) (ISO, 2016). Tabela 4: Testi zmogljivosti ter opazovana metrika Test zmogljivosti Razlaga Scenarij izvedbe Opazovana metrika Test procesorja »as izvedba kalkulacije matematiËne konstante π na X decimalnih πtevilk natanËno z enovitim algoritmom (Code Codex, 2012) X = 10.000 Odzivni Ëas (ms) Test pomnilnika »as zapisovanja in branja zbirke X πtevil X = 10.000.000 Test 2D grafike »as, potreben za izris 1000 gumbov X = 1000 Test odzivnosti »as, ki preteËe med interakcijo z aplikacijo in njenim odzivom v obliki preprostega obvestila / Test vzpostavitve aplikacije »as, potreben za zagon aplikacije / Za izvedbo testov zmogljivosti smo za vsako iz­ med izbranih mobilnih platform implementirali tri Slika 3: VzorËne aplikacije mobilne aplikacije za vsakega izmed preuËevanih razvojnih pristopov (slika 3). U P O R A B N A I N F O R M A T I K A 652017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij Domorodni razvoj za vsako izmed platform je potekal s pripadajoËim razvojnim orodjem in plat­ formi specifiËnem programskem jeziku. Aplikacijo iOS smo razvili z razvojnim orodjem XCode in pro­ gramskim jezikom Objective­C, aplikacijo Android z orodjem Android Studio in programskim jezikom Java, aplikacijo Windows Phone pa z orodjem Vi­ sual Studio ter programskim jezikom C#. V okviru primerjave je razvoj za ogrodje Xamarin potekal ne­ koliko enostavneje, in sicer z enotnim programskim jezikom C#. Aplikacijo smo tako za iOS kot Android implementirali z orodjem Xamarin Studio, medtem ko smo za Windows Phone uporabili orodje Visu­ al Studio. Najenostavnejπe za razvoj se je izkaza­ lo ogrodje Ionic, pri katerem smo po vzpostavitvi projekta z uporabo ukazne vrstice vso programsko logiko za vse izmed platform zapisali v preprostem urejevalniku besedila. Glede na rezultirajoËe aplika­ cije lahko opazimo, da aplikacije, razvite z domoro­ dnim pristopom in ogrodjem Xamarin, posedujejo platformi domoroden izgled, medtem ko izgled apli­ kacije v primeru ogrodja Ionic ostaja enak skozi vse platforme. 3.2 Predstavitev testnih okolij Za potrebe testov smo potrebovali tri izvajalna okolja (mobilne naprave) razliËnih platform, na katere smo namestili aplikacije vseh treh testiranih pristopov. Vse mobilne naprave ter njihovi pripadajoËi opera­ cijski sistemi so predstavljeni v tabeli 5. Tabela 5: Testna izvajalna okolja Atributi iOS Android Windows Phone Naprava iPhone 6S LG Nexus 5 Nokia Lumia 635 Procesor Dual-core 1.84 GHz Quad-core 2.3 GHz Quad-core 1.2 GHz Interni pomnilnik 2 GB 2 GB 512 MB grafiËna enota PowerVR GT7600 Adreno 330 Adreno 305 Operacijski sistem iOS 9.3.2 Android 6.0.1 Windows Phone 8.1 Enakovredno testiranje mobilnih aplikacij na razliËnih platformah je teæko doseËi predvsem zaradi razlik v strojni opremi. Enako velja za posnemoval­ nike mobilnih naprav, saj vsak izmed ponudnikov platforme doloËa svoj posnemovalnik, prilagojen specifiËni platformi. Ne glede na definirane razlike nam je uporaba dejanskih mobilnih naprav omogoËi­ la realno primerjavo rezultatov znotraj posamezne platforme. 3.3 Omejitve izvedbe testov Primerjava razliËnih pristopov na razliËnih mobil­ nih napravah zahteva zapis mobilne aplikacije v veË razliËnih programskih jezikih, ki imajo svoja sintak­ tiËna pravila. »e razvojna metoda zahteva program­ sko kodo, ki je specifiËna za doloËeno platformo, pride πe do dodatne specializacije razvoja, kar lahko vpliva na rezultate analize. Na natanËnost testiranja aplikacije lahko vpliva tudi metoda merjenja Ëasa izvedbe doloËenega testa, saj je v nekaterih prime­ rih (asinhroni klici) nemogoËe programsko doloËiti konec testa. Dodatna omejitev so tudi same mobilne naprave ali njihovi posnemovalniki, saj je v prime­ ru uporabe katere koli moænosti testiranja aplikacije teæko zagotoviti enakovrednost delovanja. Glede na naπtete pomanjkljivosti smo opredelili omejitve, ki lahko vplivajo na rezultate izvedenih testov.  RazliËni programski jeziki. Pri razvoju za razliËne platforme se ne moremo izogniti razliËnim pro­ gramskim jezikom, ki zaradi razliËne sintakse in tehnologije delovanja vplivajo na hitrost izvajanja procesov.  Platformsko specifiËna koda. RazliËne tehnologije definirajo razliËne naËine implementacije doloËe­ nih platformsko specifiËnih funkcionalnosti, Ëesar v primeru razliËnih pristopov veËplatformskega razvoja ne moremo poenotiti.  Merjenje Ëasa izvedbe testov. Za doloËena opravi­ la je doloËitev Ëasa, potrebnega za konËanje nalo­ ge, mogoËe natanËno doloËiti v programski kodi, medtem ko to v nekaterih primerih ni mogoËe (npr. asinhrono delovanje). V teh primerih je me­ ritev mogoËa le z uporabo zunanje meritve.  Omejitve glede mobilnih naprav. Uporaba de­ janskih naprav pri testiranju mobilnih aplikacij povzroËi razlike, ki temeljijo na razlikah v strojni U P O R A B N A I N F O R M A T I K A66 2017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij opremi naprave. Neposredna primerjava rezul­ tatov razliËnih mobilnih naprav je tako nemo­ goËa, saj lahko razlike v strojni opremi povzroËijo precejπnje spremembe v Ëasu izvedbe testov. Zaradi navedenih omejitev smo v okviru razvitih mobilnih aplikacij uporabili le najosnovnejπe kompo­ nente ter se z izjemo naslavljanja vizualnih elemen­ tov poskuπali izogniti naprednejπim funkcionalno­ stim naprave. Omejitve merjenja Ëasa izvedbe testov smo odpravili tako, da smo vsak test izvedli deset­ krat ter nato spremljali povpreËje Ëasov izvedbe te­ stov. Ker nismo mogli zagotoviti enakovrednosti mo­ bilnih naprav, smo podrobno analizo testov izved li s primerjavo koeficientov sprememb povpreËnega Ëasa izvedbe testov med posameznimi pristopi. 3.4 Rezultati raziskave Tabela 6 prikazuje rezultate testov, izvedenih na vseh izbranih mobilnih platformah ter pripadajoËih mo­ bilnih napravah. Za vsak test so navedeni povpreËni Ëas izvedbe, maksimalni in minimalni Ëas ter media­ na Ëasa izvedbe. Tabela 6: Rezultati testov zmogljivosti Po vp re Ën i Ë as ( s) M ak si m al ni Ë as ( s) M in im al ni Ë as ( s) M ed ia na ( s) Po vp re Ën i Ë as ( s) M ak si m al ni Ë as ( s) M in im al ni Ë as ( s) M ed ia na ( s) Po vp re Ën i Ë as ( s) M ak si m al ni Ë as ( s) M in im al ni Ë as ( s) M ed ia na ( s) Naprava Apple iPhone 6S (iOS 9.3.2) Lg Nexus 5 (Android 6.0.1) Nokia Lumia 635 (Windows Phone 8.1) Test Test procesorja Dom. 0,089 0,118 0,053 0,095 0,155 0,178 0,145 0,148 0,791 0,797 0,785 0,793 Xamarin 0,101 0,112 0,096 0,098 0,377 0,393 0,361 0,381 0,796 0,807 0,783 0,797 Ionic 0,766 0,779 0,722 0,769 0,598 0,609 0,589 0,596 1,843 1,876 1,831 1,839 Test Test spomina Dom. 0,147 0,157 0,140 0,146 0,208 0,232 0,186 0,202 0,701 0,720 0,681 0,700 Xamarin 0,166 0,171 0,152 0,167 0,302 0,325 0,289 0,301 0,713 0,740 0,695 0,709 Ionic 2,296 2,312 2,277 2,297 1,812 1,962 1,653 1,815 7,810 8,133 7,726 7,777 Test Test 2D grafike Dom. 0,470 0,515 0,381 0,483 2,134 2,252 1,862 2,148 4,542 4,569 4,487 4,551 Xamarin 0,578 0,634 0,484 0,593 2,703 2,945 2,597 2,692 4,537 4,622 4,434 4,537 Ionic 3,081 3,229 3,004 3,069 23,97 27,47 22,71 23,01 100,8 106,9 94,49 99,88 Test Test odzivnosti Dom. 0,042 0,056 0,029 0,042 0,072 0,086 0,055 0,071 0,087 0,097 0,071 0,087 Xamarin 0,074 0,078 0,068 0,073 0,088 0,096 0,081 0,088 0,092 0,102 0,083 0,092 Ionic 0,084 0,089 0,080 0,084 0,117 0,128 0,102 0,118 0,136 0,142 0,129 0,136 Test Test vzpostavitve aplikacije Dom. 0,763 0,845 0,662 0,781 1,085 1,174 1,018 1,085 1,295 1,329 1,244 1,297 Xamarin 2,618 2,664 2,530 2,651 1,514 1,600 1,386 1,516 1,549 1,809 1,311 1,537 Ionic 0,782 0,897 0,725 0,765 2,264 2,390 2,181 2,250 2,415 2,476 2,294 2,421 U P O R A B N A I N F O R M A T I K A 672017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij Kot æe omenjeno v razdelku 3.3, je enakovredna primerjava razliËnih mobilnih naprav oteæena. Za­ radi tega je nadaljnja analiza rezultatov potekala na podlagi koeficientov sprememb povpreËnega Ëasa, potrebnega za izvedbo posameznega testa, pri Ëe­ mer smo za izhodiπËno vrednost vzeli rezultat testa domorodne aplikacije. 3.4.1 Test procesorja Pri testiranju mobilnih pristopov smo najprej opazo­ vali Ëas, potreben za izraËun konstante π na 10.000 mest natanËno. Slika 4 prikazuje koeficiente spre­ memb povpreËnega Ëasa izvedbe ter dejanske vred­ nosti procesorskega testa na razliËnih mobilnih plat­ formah. Slika 4: Koeficienti sprememb (test procesorja) Iz slike je razvidno, da je v vseh primerih najkrajπi Ëas za izvedbo testa potrebovala domorodna aplika­ cija, kateri je z manjπim odstopanjem sledilo ogrodje Xamarin (najveËje odstopanje v primeru platforme Android). V vseh primerih je najveË Ëasa potrebovala aplikacija, razvita s hibridnim pristopom Ionic, ki je v primeru platforme iOS od domorodnega pristopa odstopala za najveË (8,6­krat). 3.4.2 Test pomnilnika Testiranje pomnilnika mobilne naprave je poteka­ lo na podlagi opazovanja Ëasa zapisovanja zbirke 10,000.000 celih πtevil ter kopiranja nastalega sezna­ ma v nov seznam. Slika 5 prikazuje rezultate testa pomnilnika med mobilnimi platformami. Slika 5: Koeficienti sprememb (test pomnilnika) U P O R A B N A I N F O R M A T I K A68 2017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij Rezultati testov pomnilnika so glede vrstnega reda pristopov podobni testu procesorja, a je v tem prime­ ru priπlo do veËjega odstopanja predvsem ogrodja Ionic, ki je odstopal za 8,7­krat v primeru platforme Android, za 11,1­krat v primeru platforme Windows Phone ter 15,6­krat v primeru platforme iOS. Razlog za veËje odstopanje je mogoËe pripisati tudi sami im­ plementaciji zbirke na razliËnih platformah. 3.4.3 Test 2D grafike Za testiranje izrisa vsebine smo definirali test, ki je na zaslon postopno izrisal 1.000 gumbov, pri tem pa smo merili Ëas, ki ga je aplikacija potrebovala, da je vse gumbe prikazala na zaslonu. Rezultati testa 2D grafike so predstavljeni na sliki 6. Izrisovanje vsebine na zaslon je grafiËno obre­ menjujoËa operacija, kar je vplivalo predvsem na delovanje hibridne aplikacije. Na njeno zmogljivost na posamezni platformi vpliva tudi implementacija mobilne kontrole WebView, ki v primeru hibridnega pristopa skrbi za izrisovanje celotne vsebine mobilne aplikacije. Ionic se je tako v primeru vseh platform pri testu izkazal za najpoËasnejπega. Najboljπi rezul­ tat je tudi v tem primeru dosegel domorodni pristop, kateremu je z manjπim odstopanjem sledil Xamarin. Slika 6: Koeficienti sprememb (test 2D grafike) 3.4.4 Test odzivnosti Delo z mobilno napravo poteka prek interakcije z razliËnimi vizualnimi kontrolami, ki se glede na upo­ rabnikovo zahtevo odzovejo s spremembo vsebine. Raziskave so pokazale, da je za povpreËnega uporab­ nika odziv instanten, Ëe ta traja do 100 ms (Nielsen, 1993). Na podlagi tega smo definirali preprost test odziva mobilne aplikacije, pri katerem smo merili Ëas med interakcijo z aplikacijo in prikazom prepro­ stega obvestila. Rezultati testa so prikazani na sliki 7. U P O R A B N A I N F O R M A T I K A 692017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij Rezultati testov vseh pristopov so pokazali, da je odzivni Ëas aplikacije na vseh platformah krajπi od mejne vrednosti 100 ms ali nekaj nad to, saj je najdaljπi povpreËni Ëas znaπal le 0,136 sekunde. Pri tem mora­ mo upoπtevati tudi Ëas prikaza obvestila, ki pogosto vkljuËuje tudi kratko animacijo. V vseh primerih je znova najboljπe rezultate dosegla domorodna aplika­ cija, kateri sta sledili ogrodji Xamarin in Ionic. 3.4.5 Test vzpostavitve aplikacije Ne glede na kakovost mobilne aplikacije si uporab­ niki æelijo, da je aplikacija na voljo v kar najkrajπem moænem Ëasu. Slika 8 prikazuje koeficiente spre­ memb Ëasa, ki ga aplikacija potrebuje za vzpostavi­ tev in dosegljivost za uporabniπko interakcijo. Opazovanje Ëasa zagona mobilne aplikacije je pokazalo, da najveË Ëasa v primeru platforme IOS potrebuje ogrodje Xamarin, in sicer 3,4­krat veË v primerjavi z domorodnim pristopom, medtem ko je bil Ëas ogrodja Ionic ekvivalenten domorodnemu pristopu. V primeru platform Android in Windows Phone je najveË Ëasa za zagon potreboval Ionic in to za dvakrat veË kot pri domorodnem pristopu v pri­ meru platforme Android. Slika 7: Koeficienti sprememb (odzivni Ëas) Slika 8: Koeficienti sprememb (Ëas zagona) U P O R A B N A I N F O R M A T I K A70 2017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij 4 RAZPRAVA Izvedba testov zmogljivosti razvitih aplikacij je bila podlaga za ocenjevanje primernosti razliËnih pristo­ pov za razvoj zmogljivih ter zaradi tega uËinkovitih mobilnih aplikacij za tri najbolj razπirjene mobilne platforme. Pri vseh testih smo za izhodiπËe doloËili domorodni pristop, s katerim smo na podlagi koe­ ficientov sprememb primerjali ogrodji Xamarin in Ionic. V tabeli 7 predstavljamo zdruæene rezultate koeficientov sprememb posameznih zmogljivostnih testov skupaj s povpreËnimi izraËuni vseh testov. Tabela 7: Zdruæeni rezultati sprememb koeficientov VeËplatformsko prevedeni pristop (Xamarin) Hibridni pristop (Ionic) iOS Android WP iOS Android WP Test procesorja 1,138 2,434 1,006 8,595 3,853 2,329 Test pomnilnika 1,128 1,454 1,016 15,618 8,723 11,140 Test 2D grafike 1,231 1,266 0,999 6,560 11,232 22,192 Odzivni Ëas 1,771 1,216 1,053 2,029 1,622 1,562 »as nalaganja 3,430 1,395 1,196 1,024 2,087 1,865 PovpreËje 1,740 1,553 1,054 6,765 5,503 7,817 Glede na zdruæene rezultate lahko opazimo velike razlike med preuËevanima pristopoma. Ugotavlja­ mo, da je med domorodnim pristopom in veËplat­ formsko prevedenim pristopom le minimalna razli­ ka, saj skupni povpreËni koeficient sprememb vseh testov ne preseæe vrednosti 1,74 v primeru platforme iOS, se nekoliko zmanjπa v primeru platforme An­ droid (1,55) in je skorajda enakovreden domorodne­ mu pristopu v primeru platforme Windows Phone (1,054). VeËje razlike lahko opazimo v primerjavi s hibridnim pristopom, saj je najboljπi rezultat dosegla platforma Android, vendar je kar 5,5­krat poËasnejπa v primerjavi z domorodnim pristopom. Sledi platfor­ ma iOS s koeficientom 6,76, medtem ko je najslabπi rezultat dosegla platforma Windows Phone s koefi­ cientom 7,8. Na podlagi rezultatov lahko trdimo, da je z vidika zmogljivosti implementirane aplikacije veËplatform­ sko prevedeni pristop primerna alternativa domo­ rodnemu pristopu za dnevno uporabo pri razvoju mobilnih aplikacij. V primeru hibridnega pristopa pa lahko opazimo, da je πibka toËka aplikacije predvsem zmogljivostno zahtevna poslovna logika. Zaradi tega je pristop primeren predvsem za mobilne aplikaci­ je, ki ne vsebujejo veliko poslovne logike ali pa se ta nahaja na strojno moËnejπem viru, do katerega nato dostopamo preko spletnih storitev. 5 SKLEP Napredek mobilnih tehnologij prinaπa vse veË raz­ liËnih pristopov k veËplatformskemu mobilnemu razvoju, πe veË pa je ogrodij, ki jih implementirajo. »e je πe pred Ëasom domorodni pristop veljal za edi­ nega, ki zagotavlja najveËjo uËinkovitost delovanja aplikacije, se razlika v primerjavi z drugimi pristo­ pi vztrajno zmanjπuje. To je potrdila tudi naπa pri­ merjalna analiza, saj se je pri merjenju zmogljivosti veËplatformsko prevedeni pristop (ogrodje Xamarin) v primeru vseh mobilnih platform najbolj pribliæal domorodnemu pristopu. Glede na rezultate ocenju­ jemo, da je v primeru ogrodja Xamarin veËplatform­ sko prevedeni pristop primerna alternativa za domo­ rodni razvojni pristop. Nasprotno se je hibridni pristop izkazal za naj­ manj zmogljivega. Eden od razlogov za to je sama arhitektura pristopa, ki temelji na izvajanju aplika­ cije znotraj mobilne komponente WebView, katere zmogljivost je odvisna od zmogljivosti mobilnega brskalnika platforme. Pomanjkljivosti se nanaπajo predvsem na strojno zahtevnejπa opravila, kar po­ meni, da je pristop lahko πe vedno zanimiv za razvoj strojno nezahtevnih aplikacij ali takπnih, ki tovrstna opravila odlagajo na zmogljivejπe vire. Kljub razlikam v rezultatih je treba omeniti, da ti temeljijo predvsem na dveh specifiËnih ogrodjih, kar pomeni, da lahko spremenjena izbira ogrodij vpli­ va na drugaËne rezultate. Pri izbiri veËplatformskih U P O R A B N A I N F O R M A T I K A 712017 - πtevilka 1 - letnik XXV Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij ogrodij je treba prav tako upoπtevati, da je zmoglji­ vost le eden izmed faktorjev in da je treba pri odloËi­ tvi upoπtevati tudi æe obstojeËo bazo znanja, komple­ ksnost grajenih aplikacij ter vse prednosti in slabosti ogrodja. Rezultati primerjalne analize so namenjeni tako novim kot tudi æe izkuπenim razvijalcem mobilnih aplikacij, ki æelijo na hiter in uËinkovit naËin razviti zmogljive veËplatformske mobilne aplikacije. V prihodnje nameravamo raziskave na podroËju veËplatformskega pristopa razπiriti tako z vkljuËe­ vanjem veËjega πtevila pristopov kot s primerjavo veËjega πtevila razliËnih ogrodij znotraj enega same­ ga pristopa. Na ravni vzorËne aplikacije namerava­ mo vkljuËiti tudi teste 3D animacij ter obstojeËe teste obogatiti z dodatnimi scenariji. Za veËjo zanesljivost podatkov na posameznih platformah nameravamo vkljuËiti πe veËje πtevilo naprav za vsako izmed testi­ ranih platform. 6 LITERATURA Dostopnost vseh elektronskih virov je bila potrjena dne 30. 7. 2016. [1] Adinugroho, T. Y. in Gautama, J. B. (2015). Review of Multi- -platform Mobile Application Development Using WebView: Learning Management System on Mobile Platform. Procedia Computer Science, 59, 291‡297. http://doi.org/10.1016/j. procs.2015.07.568. [2] Allen, J. (2011). The Death and Rebirth of Mono. https://www. infoq.com/news/2011/05/Mono-II. [3] Bouras, C., Papazois, A. in Stasinos, N. (2014). A framework for cross-platform mobile web applications using HTML5. V: Proceedings - 2014 International Conference on Future Inter- net of Things and Cloud, FiCloud 2014 (str. 420‡424). http:// doi.org/10.1109/FiCloud.2014.75. [4] Charkaoui, S., Adraoui, Z. in Habib Benlahmar, E. (2014). Cross- -platform mobile development approaches. Information Scien- ce and Technology (CIST), 2014 Third IEEE International Collo- quium in, 188‡191. http://doi.org/10.1109/CIST.2014.7016616. [5] Cisco. (2016). Cisco Visual Networking Index: Global Mo- bile Data Traffic Forecast Update, 2015‡2020 White Paper. http://www.cisco.com/c/en/us/solutions/collateral/service- -provider/visual-networking-index-vni/mobile-white-paper- -c11-520862.html. [6] Cordova. (2012). Cordova Overview. http://cordova.apache. org/docs/en/latest/guide/overview/index.html. [7] Dalmasso, I., Datta, S. K., Bonnet, C. in Nikaein, N. (2013). Survey, comparison and evaluation of cross platform mo- bile application development tools. 2013 9th Internati- onal Wireless Communications and Mobile Computing Conference (IWCMC), 323‡328. http://doi.org/10.1109/ IWCMC.2013.6583580. [8] Danielsson, J., Ameri, A., Friberg, M., Examiner, A. in Lindell, R. (2014). Comparison study of cross-platform developing tools for iPhone devices. [9] DeCapua, T. (2015). Front-end vs back-end performance me- trics for mobile apps. http://techbeacon.com/understanding- -front-end-vs-back-end-performance-metrics-mobile-apps. [10] Dhillon, S. (2015). An Evaluation Framework for Cross-Plat- form Mobile Application Development Tools. Software: Prac- tice and Experience, 45(10), 1331‡1357. https://atrium2.lib. uoguelph.ca/xmlui/bitstream/handle/10214/4949/Dhillon_ Sanjeet_201212_MSc.pdf?sequence=3&isAllowed=y. [11] El-Kassas, W. S., Abdullah, B. A., Yousef, A. H. in Wahba, A. (2014). ICPMD: Integrated cross-platform mobile de- velopment solution. V: Proceedings of 2014 9th IEEE In- ternational Conference on Computer Engineering and Sy- stems, ICCES 2014 (str. 307‡317). http://doi.org/10.1109/ ICCES.2014.7030977. [12] Guthrie, S. (2016). Microsoft to acquire Xamarin and em- power more developers to build apps on any device. http:// blogs.microsoft.com/blog/2016/02/24/microsoft-to-acquire- -xamarin-and-empower-more-developers-to-build-apps-on- -any-device/. [13] Hösl, T. (2014). Using the Ionic Framework for Windows (Pho- ne) 8.1 apps. https://www.hoessl.eu/2014/12/on-using-the- -ionic-framework-for-windows-phone-8-1-apps/. [14] Ionic. (2016). Ionic Document Overview. http://ionicframe- work.com/docs/overview/. [15] ISO. (2016). ISO - International Organization for Standardiza- tion. http://www.iso.org/iso/home.htm. [16] Joorabchi, M. E., Mesbah, A. in Kruchten, P. (2013). Real challenges in mobile app development. V: International Sym- posium on Empirical Software Engineering and Measurement (str. 15‡24). http://doi.org/10.1109/ESEM.2013.9. [17] Korf, M. in Oksman, E. (2016). Native, HTML5, or Hybrid: Un- derstanding Your Mobile Application Development Options. https://developer.salesforce.com/page/Native,_HTML5,_ or_Hybrid:_Understanding_Your_Mobile_Application_Deve- lopment_Options. [18] Markov, D. (2015). Comparing The Top Frameworks For Buil- ding Hybrid Mobile Apps. http://tutorialzine.com/2015/10/ comparing-the-top-frameworks-for-building-hybrid-mobile- -apps/. [19] NetMarketShare. (2016). Mobile/Tablet Operating System Market Share. https://www.netmarketshare.com/operating- -system-market-share.aspx?qprid=10&qpcustomd=1. [20] Nielsen, J. (1993). Response Times: The 3 Important Limits. https://www.nngroup.com/articles/response-times-3-impor- tant-limits/. [21] Noeticforce. (2016). 10 best hybrid mobile App UI Frame- works: HTML5, CSS and JS. [22] Palmieri, M., Singh, I. in Cicchetti, A. (2012). Comparison of cross-platform mobile development tools. V: 2012 16th In- ternational Conference on Intelligence in Next Generation Networks, ICIN 2012 (str. 179‡186). http://doi.org/10.1109/ ICIN.2012.6376023. [23] PassMark. (2016). PassMark PerformanceTest mobile - mo- bile device benchmark software. http://www.passmark.com/ products/pt_mobile.htm. [24] Perchat, J., Desertot, M. in Lecomte, S. (2013). Component based framework to create mobile cross-platform applicati- ons. V: Procedia Computer Science, Vol. 19, str. 1004‡1011. http://doi.org/10.1016/j.procs.2013.06.140. [25] R. M. de Andrade, P., B. Albuquerque, A., F. Frota, O., V. Silve- ira, R. in A. da Silva, F. (2015). Cross Platform App : A Compa- rative Study. International Journal of Computer Science and Information Technology, 7(1), 33‡40. http://doi.org/10.5121/ ijcsit.2015.7104. U P O R A B N A I N F O R M A T I K A72 2017 - πtevilka 1 - letnik XXV [26] Rahul Raj, C. P. in Tolety, S. B. (2012). A study on approaches to build cross-platform mobile applications and criteria to se- lect appropriate approach. V: 2012 Annual IEEE India Confe- rence, INDICON 2012 (str. 625‡629). http://doi.org/10.1109/ INDCON.2012.6420693. [27] Rajput, M. (2016). Pros and Cons of Developing Cross Plat- form Mobile Apps. http://www.smallbizdaily.com/pros-cons- -developing-cross-platform-mobile-apps/. [28] Smutný, P. (2012). Mobile development tools and cross-plat- form solutions. V: Proceedings of the 2012 13th International Carpathian Control Conference, ICCC 2012 (str. 653‡656). http://doi.org/10.1109/CarpathianCC.2012.6228727. [29] Statista. (2016a). Number of apps available in leading app stores as of June 2016. http://www.statista.com/statisti- cs/276623/number-of-apps-available-in-leading-app-stores/. [30] Statista. (2016b). Number of mobile phone users worldwide from 2013 to 2019 (in billions). http://www.statista.com/stati- stics/274774/forecast-of-mobile-phone-users-worldwide/. [31] Titanium. (2016). Titanium pricing. http://www.appcelerator. com/pricing/. [32] Xamarin. (n. d.). Xamarin. https://www.xamarin.com/. [33] Xamarin. (2016a). Introduction to Mobile Development. https://developer.xamarin.com/guides/cross-platform/get- ting_started/introduction_to_mobile_development/. [34] Xamarin. (2016b). Understanding the Xamarin Mobile Plat- form. https://developer.xamarin.com/guides/cross-platform/ application_fundamentals/building_cross_platform_appli- cations/part_1_-_understanding_the_xamarin_mobile_plat- form/. [35] Xanthopoulos, S. in Xinogalos, S. (2013). A Comparative Analysis of Cross-platform Development Approaches for Mobi- le Applications. Proceedings of the 6th Balkan Conference in In- formatics, 213‡220. http://doi.org/10.1145/2490257.2490292. Boris OvËjak je asistent za podroËje informatike na Fakulteti za elektrotehniko, raËunalniπtvo in informatiko Univerze v Mariboru. Njegovo raziskovalno podroËje zajema podroËje mobilnih in spletnih tehnologij, raËunalniπtvo v oblaku in storitveno usmerjena arhitektura, vkljuËno z vidikom sprejetosti omenjenih tehnologij. Sodeloval je na veË projektih s podroËja razvoja informacijskih sistemov, prav tako pa je avtor in soavtor veË strokovnih in znanstvenih prispevkov.  Gregor PolanËiË je docent na Fakulteti za elektrotehniko, raËunalniπtvo in informatiko Univerze v Mariboru. Med njegova raziskovalna podroËja spadajo tehnoloπki, metodoloπki in uporabniπki vidiki sistemov za komuniciranje, sodelovanje in upravljanje poslovnih procesov, vkljuËno z implikacijami sodobnih stori- tveno usmerjenih informacijskih reπitev na omenjena podroËja.  Tatjana Welzer Druæovec je redna profesorica za podroËje informatike na Fakulteti za elektrotehniko, raËunalniπtvo in informatiko, Univerze v Mariboru. Je no- silka veË predmetov s podroËja podatkovnih baz, varnosti in zasebnosti ter medkulturnega komuniciranja. Je vodja Laboratorija za podatkovne tehnologije - LPT. Njeno raziskovalno podroËje je predvsem povezano z modeliranjem podatkovnih baz in πirπe sistemov, kjer se upoπtevajo tudi vplivi ekspertnih okolji, razliËnih kultur in ponovne uporabe æe obstojeËih reπitev. Tako kot drugi Ëlani LPT je aktivna v πtevilnih mednarodnih projektih. Rezultate raziskav je objavila v πtevilnih znanstvenih in strokovni prispevkih v domaËi in tuji literaturi. Boris OvËjak, Tatjana Welzer Druæovec, Gregor PolanËiË: Primerjava zmogljivosti veËplatformsko razvitih mobilnih aplikacij