web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in finnish)

30
Aalto-yliopisto Perustieteiden korkeakoulu Informaatioverkostojen tutkinto-ohjelma Web-teknologiat mobiililaitteiden ohjelmistokehityksess ¨ a Kandidaatinty¨ o 4. toukokuuta 2011 Antti Vuorela

Upload: antti-vuorela

Post on 27-Nov-2014

280 views

Category:

Documents


6 download

DESCRIPTION

Bachelor's thesis for Aalto University. Topic is "Web-technologies in mobile development"

TRANSCRIPT

Page 1: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Aalto-yliopisto

Perustieteiden korkeakoulu

Informaatioverkostojen tutkinto-ohjelma

Web-teknologiat mobiililaitteiden

ohjelmistokehityksessa

Kandidaatintyo

4. toukokuuta 2011

Antti Vuorela

Page 2: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Aalto-yliopisto KANDIDAATINTYON

Perustieteiden korkeakoulu TIIVISTELMA

Informaatioverkostojen tutkinto-ohjelma

Tekija: Antti Vuorela

Tyon nimi: Web-teknologiat mobiililaitteiden ohjelmistokehityksessa

Paivays: 4. toukokuuta 2011

Sivumaara: 24 + 1

Paaaine: Mediatekniikka

Koodi: T130-2

Vastuuopettaja: lehtori Stina Immonen

Tyon ohjaaja(t): Esko Nuutila (Tietotekniikan laitos)

Tama kandidaatintyo kasittelee ohjelmien kehittamista mobiilaitteisiin kayttaen stan-

dardeja web-teknologioita. Tutkimusongelma on selvittaa, voiko web-teknologioilla kor-

vata alustakohtaisia teknologioita mobiiliohjelmistojen kehittamisessa. Tyossa tarkas-

tellaan myos uusien HTML5-teknologioiden tuomia mahdollisuuksia mobiililaitteissa.

Tutkimusmeneltemina tyossa olivat seka kirjallisuuskatsaus etta kokeellinen tutkimus.

Kokeellisessa tutkimuksessa testattiin web-teknologioiden toimivuutta mobiililaitteissa

tata varten tehdylla testiohjelmalla ja kahdella valmiilla testikokonaisuudella: Acid3

ja HTML5 -testeilla. Testit suoritettiin viidessa eri mobiilialustassa: iOS, Android,

Symbian, WebOS ja Windows Phone.

Tyon tuloksista kay ilmi, etta web-teknologioiden toimivuus keskeisilla mobiilialustoil-

la on varsin hyva. Paras tuki oli iOS ja Android -alustoilla. Muidenkin alustojen toi-

mivuus tulee paranemaan lahitulevaisuudessa. HTML5 mahdollistaa mobiililaitteissa

erityisesti uusia rajapintoja laitteen ominaisuuksien hyodyntamiseen. Tyon perusteella

HTML5-ominaisuuksien tuki on mobiilialustoilla on melko hyva ja sita voi tayden-

taa paketoinnilla natiiviohjelmaksi. Tyossa esitetaan, etta web-sovellukset lahestyvat

natiiviohjelmistoja niin suorityskyvyssa, ominaisuuksissa kuin kaytettavyydessakin.

Tyon johtopaatoksena esitetaan, etta web-teknologioilla on mahdollista korvata natii-

viteknologioita mobiililaitteissa. Web-teknologioiden etu on useamman alustan tukemi-

nen pienemmilla kustannuksilla. Tyossa suositetaan, etta web-teknologioita kannattaa

hyodyntaa nykyisellaan erityisesti Android ja iOS-alustoilla kaikkiin muihin ohjelmiin

paitsi raskaimpiin peleihin.

Avainsanat: Web, mobiili, ohjelma, web-sovellus, mobiiliohjelma, ohjelmis-

tokehitys, HTML5, HTML, CSS, JavaScript, PhoneGap, iOS,

Android, Symbian, WRT, Qt, WebOS, Windows Phone

Kieli: Suomi

2

Page 3: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Sisalto

Kaytetyt lyhenteet 5

1 Johdanto 6

2 Tausta ja aikaisempi tutkimus 7

2.1 Web-teknologiat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.1 Web-sovellukset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.1.2 HTML5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2 Mobiililaitteiden ohjelmistokehitys . . . . . . . . . . . . . . . . . . . . . . 8

2.2.1 Mobiilialustojen fragmentaatio . . . . . . . . . . . . . . . . . . . . 8

2.2.2 Mobiiliohjelmien tyypit ja alustojen tukeminen . . . . . . . . . . . 8

2.2.3 Natiiviohjelmien kehitys . . . . . . . . . . . . . . . . . . . . . . . 9

3 Tutkimusongelma ja tutkimusmenetelmat 10

3.1 Tutkimusongelma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2 Tutkimusaineisto ja -menetelmat . . . . . . . . . . . . . . . . . . . . . . 10

3.3 Testit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3.1 Testatut mobiilialustat . . . . . . . . . . . . . . . . . . . . . . . . 10

3.3.2 Testiohjelma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3.3 Acid3-testi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.3.4 HTML5-testi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4 Tulokset 13

4.1 Mobiiliohjelmien kehittaminen web-tekniikoilla . . . . . . . . . . . . . . . 13

4.1.1 Tekniset edellytykset . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.1.2 Kehitysymparistot ja testaaminen . . . . . . . . . . . . . . . . . . 14

4.1.3 Kayttoliittyman rakentaminen . . . . . . . . . . . . . . . . . . . . 14

4.1.4 Paketoiminen natiiviohjelmaksi . . . . . . . . . . . . . . . . . . . 15

4.1.5 HTML5:n uudet mahdollisuudet . . . . . . . . . . . . . . . . . . . 16

4.2 Testien tulokset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2.1 Testiohjelma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3

Page 4: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

4.2.2 Acid3-testi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.2.3 HTML5-testi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.3 Alustakohtaiset havainnot . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3.1 Apple iOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3.2 Google Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3.3 Nokia Symbian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.3.4 HP WebOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.3.5 Microsoft Windows Phone . . . . . . . . . . . . . . . . . . . . . . 23

4.3.6 Yhteenveto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.4 Web-sovellukset natiiviohjelmien korvaajana . . . . . . . . . . . . . . . . 23

4.4.1 Suorituskyky ja ominaisuudet . . . . . . . . . . . . . . . . . . . . 24

4.4.2 Kayttoliittyma ja kaytettavyys . . . . . . . . . . . . . . . . . . . 24

4.4.3 Ohjelmien jakelu ja ohjelmistokaupat . . . . . . . . . . . . . . . . 25

4.4.4 Liiketoimintanakokulma . . . . . . . . . . . . . . . . . . . . . . . 26

5 Johtopaatokset 26

Lahteet 28

A Testiohjelma 30

4

Page 5: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Kaytetyt lyhenteet

API Application programming interface; Ohjelmointirajapinta;

Ohjelmistojen valinen tiedonsiirtorajapinta

CSS Cascading Style Sheets; Verkkosivujen muotoiluun kaytet-

tava tyylikieli

HTML Hyper Text Markup Language; Verkkosivujen merkinta-

kieli

HTML5 Viides versio edellisesta

iOS Applen kehittama mobiililaitteiden kayttojarjestelma

JS JavaScript; Verkkosivujen dynaamisten toimintojen to-

teuttamiseen kaytetty script-kieli

Qt Nokian omistama alustariippumaton ohjelmistojen kehi-

tysymparisto.

SDK Software Development Kit; Ohjelmistokehitysymparisto

WRT Web Runtime Widget; Symbian-alustan web-

applikaatioiden paketointi- ja suoritusymparisto.

WWW World Wide Web; Internet-verkossa toimiva hajautettu

hypertekstijarjestelma

W3C World Wide Web Consortium; WWW:n standardeja ylla-

pitava ja kehittava organisaatio

5

Page 6: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

1 Johdanto

Mobiililaitteet ovat viime vuosina nousseet keskeiseen asemaan ohjelmistokehityksessa.

Erilaiset mobiililaitteet, kuten alypuhelimet ja tablet-tietokoneet, ovat kehittyneet haas-

tamaan tietokoneet ominaisuuksiltaan ja kayttomahdollisuuksiltaan. Mobiililaitteiden en-

nustetaankin lahitulevaisuudessa ohittavan perinteiset tietokonejarjestelmat sahkoisten

palveluiden kayttoalustana. (Fling, 2009)

Mobiililaitteiden ohjelmistokehitys on noussut keskeiseksi ohjelmistokehityksen osa-

alueeksi. Kolmansien osapuolien tekemista ohjelmista on muodostunut tarkea osa mo-

biililaitteiden kayttoa. Mobiilialustojen ymparille on muodostunut ekosysteemeja, joissa

ohjelmilla on merkittava rooli alustan menestyksen kannalta. Ohjelmien maara on lisaan-

tynyt eksponentiaalisesti. Esimerkiksi Applen App Store -ohjelmistokauppaan oli tammi-

kussa 2011 lisatty sen 2,5 vuoden toiminnan aikana yli 350 000 ohjelmaa, joita oli ladattu

yli kymmenen miljardia kertaa. (Apple, 2011)

Mobiilialustojen ja ohjelmien muodostamat ekosysteemit ovat nykyisellaan hyvin erity-

tyneita, silla jokaiselle mobiilialustalle kehitetaan ohjelmia kayttaen alustan omia kehi-

tystyokaluja. Eri alustoilla kaytettavat ohjelmistokehitystekniikat eroavat merkittavasti

toisistaan. Tama aiheuttaa haasteita haluttaessa tehda ohjelma usealle eri alustalle. Kay-

tannossa ohjelma joudutaan nykyaan ohjelmoimaan uudelleen jokaiselle alustalle. Tama

johtaa merkittaviin lisakustannuksiin ja luo alustojen valille kuiluja, kun vahemman suo-

situille alustoille ei kannata lainkaan tehda omaa versiota ohjelmasta. (Fling, 2009)

Tama kandidaatintyo kasittelee ohjelmien kehittamista mobiilaitteisiin kayttaen stan-

dardeja web-teknologioita. Tutkimusongelma on selvittaa, voiko web-teknologioilla kor-

vata alustakohtaisia teknologioita mobiiliohjelmistojen kehittamisessa. Tyossa luodaan

myos katsaus modernien HTML5-teknologioiden tuomiin uusiin mahdollisuuksiin web-

teknologioille ja tarkastellaan naiden toimivuutta mobiilialustoissa.

Tyon tavoitteena on muodostaa realistinen kuva web-teknologioiden hyodyntamisen nyky-

tilanteesta eri mobiilialustoilla. Tarkoitus on saada selville, voidaanko web-teknologioiden

avulla vahentaa alustakohtaisien teknologioiden kayttamista ja tehda helpommin ohjel-

mia usealle mobiilialustalle. Tuloksien perusteella on tarkoitus antaa suosituksia web-

teknologioiden hyodyntamisesta eri mobiilialustojen ohjelmistokehityksessa. Tyon rajaus

keskittyy natiiviohjelmien korvaamiseen web-teknologioilla.

Tyon aihe on keskeinen mobiilikehityksen yhtenaistamisen kannalta. Nykyisellaan mobii-

liohjelmista joudutaan kehittamaan erikseen versiot jokaiselle tuettavalle alustalle. Tama

aiheuttaa turhaa tyota ja ongelmia eri versioiden paivityksessa. Esimerkiksi Facebook on

kertonut, etta web-teknologiat ja HTML5 tulevat olemaan keskeisessa roolissa eri alusto-

jen kehittamistyon yhtenaistamisessa. Nykyisellaan Facebookilla on ongelmia pitaa seit-

6

Page 7: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

seman eri alustoille suunnattua versiota ominaisuuksiltaan yhtenaisina. (Siegler, 2011)

Tutkimusmeneltemana on seka kirjallisuuskatsaus etta kokeellinen tutkimus. Kirjallisuus-

katsaus pohjautuu mahdollisimman tuoreeseen materiaaliin, josta osa on julkaisematon-

ta. Akateemisia julkaisuja aihepiirista ei viela ole merkittavasti. Tyon kokeellisessa tut-

kimuksessa testaan web-teknologioiden toimivuutta mobiililaitteissa. Tarkoitusta varten

teen testiohjelman, jota suoritan viidessa eri mobiilialustassa. Taman lisaksi suoritan

alustoilla kaksi valmista testikokonaisuutta: Acid3 ja HTML5 -testit.

Tutkielman alussa esittelen tutkimuksen taustan ja aikaisempaa aiheesta tehtya tutki-

musta. Seuraavaksi esittelen tutkimusongelman, -aineiston ja -menetelmat ja sen jalkeen

tarkastellaan tutkimuksen tuloksia. Lopuksi teen tuloksista johtopaatokset.

2 Tausta ja aikaisempi tutkimus

2.1 Web-teknologiat

Web-teknologioilla tarkoitetaan alunperin WWW-sivustojen toteuttamiseen kehitetty-

ja teknologioita. Naihin kuuluvat keskeisimpina HTML-kuvauskieli, CSS-tyylikieli ja

JavaScript-ohjelmointikieli. Tekniikoilla kehitettyja web-sivuja kaytetaan verkkoselaimen

kautta, joka kaantaa ne reaaliajassa kayttajan paatelaitteella naytettavaan muotoon.

2.1.1 Web-sovellukset

Web-teknologioita on kaytetty viime vuosina yha monipuolisempien ja interaktiivisem-

pien palveluiden kehittamiseen. Naita palveluita on alettu kutsumaan Web-sovelluksiksi.

Web-sovelluksilla on korvattu perinteisia tietokoneohjelmia ja ohjelmistokehitysta. (Tai-

valsaari et al., 2008)

Web-sovelluksien etuna on esimerkiksi helppo paivitettavyys ja kayttojarjestelmariippu-

mattomuus. Vastaavasti ongelmia tuovat esimerkiksi eri verkkoselaimien valiset erot, jotka

aiheuttavat yhteensopivuusongelmia ja voivat pahimmillaan estaa sovelluksen toiminnan

kokonaan. Ongelmia ovat aiheuttaneet myos web-sovellusten huonompi suorituskyky ja

turvallisuuspuutteet. (Taivalsaari et al., 2008)

2.1.2 HTML5

HTML5 on uusi versio HTML-kuvauskielesta. Kyseessa on evolutiivinen paivitys aikai-

sempiin versioihin. HTML5 on kehitetty tekemaan HTML-kielesta entista soveltuvam-

pi Web-sovelluksien kehittamiseen. Se maarittelee HTML-kielen rakenteen lisaksi useita

uusia API-ohjelmointirajapintoja selaimen ja verkkosivun valille. (WHATWG, 2011)

7

Page 8: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

HTML5-standardi on viela kehitteilla ja muutoksia siihen tulee jatkuvasti. Tassa tyos-

sa HTML5-standardilla viitataan 5. huhtikuuta 2011 julkaistuun luonnokseen. (W3C,

2011b) Standardia kehittava W3C-organisaatio tahtaa standardin lopullisen version val-

mistumiseen vuonna 2014. (W3C, 2011c)

HTML5-teknologioihin kuuluu yleisen maaritelman mukaan varsinaisen HTML5-standardin

lisaksi useita muita moderneja web-teknologioita, jotka yhdessa muodostavat HTML5:ksi

kutsutun kokonaisuuden. Naihin teknologioihin kuuluvat muun muassa ohjelmointiraja-

pinnat tiedon tallentamiseen kayttajan paatelaitteeseen ja CSS-tyylikielen uudet ominai-

suudet, kuten transformaatiot. (Pilgrim, 2010)

2.2 Mobiililaitteiden ohjelmistokehitys

Tassa tutkimuksessa mobiililaitteiden ohjelmistokehityksella viitataan laitteissa toimivien

sovellusohjelmien tekemiseen. Tarkastelun ulkopuolelle jaa sovellusten taustalla toimivan

kayttojarjestelman ja muiden jarjestelmaohjelmien kehitys. Seuraavassa on esitelty joitain

mobiililaitteiden ohjelmistokehityksen tarkeita piirteita.

2.2.1 Mobiilialustojen fragmentaatio

Mobiililaitteiden ohjelmistokehityksen merkittava ominaispiirre on erilaisten alustojen

ja laitteiden valtava maara. Kullakin alustalla toimii yleensa vain juuri sille alustalle

tehdyt ohjelmat. Tasta aiheutuu alustojen fragmentaatio, joka on suuri haaste ja ongelma

mobiililaitteiden ohjelmistokehitykselle. (Fling, 2009)

Fragmentaatiota tapahtuu usealla tasolla. Eri alustoista on useita versioita ja variantte-

ja, jotka eivat ole keskenaan taysin yhteensopivia ja lisaavat fragmentaatiota entisestaan.

Esimerkiksi Android-puhelimissa on suuri hajonta eri nayttokokoja ja muita teknisia omi-

naisuuksia. Lisaksi eri ohjelmistoversioiden valilla on suuria eroja tuetuissa ominaisuuk-

sissa. (Tarkoma ja Lagerspetz, 2011) Oman lisahaasteensa fragmentaatioon tuovat myos

mobiilioperaattorit, jotka haluavat kontrolloida myymiensa puhelimien ominaisuuksia ja

kayttoa. (Fling, 2009)

2.2.2 Mobiiliohjelmien tyypit ja alustojen tukeminen

Mobiililaitteisiin voidaan kehittaa ohjelmia monella eri tavalla. Fling (2009) esittaa, et-

ta yksinkertaisimmillaan mobiiliohjelma voi olla tekstiviestipalvelu. Seuraavina yksin-

kertaisina vaihtoehtoina tulevat mobiilit web-sivut ja widgetit. Mobiilit web-sovellukset

muistuttavat jo natiiviohjelmia. Natiiviohjelmat ovat vanhin ja yleisin ohjelmien tyyppi,

mutta myos monimutkaisin kehittaaa. Ohjelman tyypin valinta vaikuttaa tyomaaraan ja

8

Page 9: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

tuettaviin alustoihin ja on siten hyvin oleellista ohjelmistokehittajan strategiassa.

Kehittajan taytyy muodostaa strategia siita, mita alustoja halutaan tukea. Fling (2009)

vaittaa, etta valtaisan fragmentaation takia kaikkien laitteiden tukeminen ei teoriassa-

kaan ole mahdollista, silla eri variantteja on satoja ja natiiviohjelmien kehittaminen ja

testaaminen eri laitteilla on kallista. Wasserman (2010) esittelee nelja strategiavaihtoeh-

toa eri alustojen tukemiseen mobiililaitteiden ohjelmistokehityksessa:

1. Natiiviohjelma vain yhdelle alustalle.

2. Monta natiiviohjelmaa useille alustoille ja niiden varianteille.

3. Web-sovellus, joka tukee mahdollisimman montaa alustaa.

4. Yhteisen koodipohjan kaantaminen alustojen natiiviohjelmaksi.

Ensimmainen strategia takaa parhaan tuloksen yhdelle alustalle, mutta vain sille. Toinen

strategia taas lisaa kustannuksia moninkertaiseksi, joka on monesti este. Kolmatta ja

neljatta vaihtoehtoa tutkitaan tarkemmin tassa tutkimuksessa.

2.2.3 Natiiviohjelmien kehitys

Mobiililaitteiden natiiviohjelmien ohjelmistokehitys on hajautunut alustakohtaisilla tek-

nologioilla tehtavaan kehitykseen. Natiiviohjelmien kehitys eri alustoille tapahtuu hyvin

erilaisilla ohjelmointikielilla ja erilaisissa ymparistoissa. (Tarkoma ja Lagerspetz, 2011)

Tassa tyossa tutkittujen mobiilialustojen natiivit ohjelmistokehitysymparistot ja ohjel-

mointikielet on esitelty taulukossa 1.

Taulukko 1: Mobiilialustojen ohjelmistokehitysymparistoja.

Kayttojarjestelma Kehitysymparisto Ohjelmointikieli

Apple iOS iOS SDK Objective-C

Google Android Android SDK Java

Nokia Symbian Qt tai Qt Quick C++ tai JavaScript

HP WebOS webOS SDK JavaScript

Microsoft Windows Phone 7 XNA tai Silverlight C# tai .NET

Mobiilialustojen natiiviohjelmistojen kehitysteknologioiden hajautuneisuudesta seuraa se,

etta kehittajan tulee erikseen opetella uusia teknologioita jokaista alustaa varten. Natii-

viohjelmat tulee toteuttaa jokaiselle alustalle erikseen, eika kaytannossa yhtaan koodia

pysty hyodyntamaan eri alustojen valilla, silla ohjelmointikielet ja kaytettavat ohjelmoin-

tirajapinnat eroavat joka alustalla. (Tarkoma ja Lagerspetz, 2011)

9

Page 10: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

3 Tutkimusongelma ja tutkimusmenetelmat

3.1 Tutkimusongelma

Taman tyon tutkimusongelma on selvittaa, voiko web-teknologioilla nykyaan mielekkaasti

korvata alustakohtaisia teknologioita mobiiliohjelmistojen kehittamisessa. Tyossa luodaan

myos katsaus modernien HTML5-teknologioiden tuomiin uusiin mahdollisuuksiin web-

teknologioille ja tarkastellaan naiden toimivuutta eri mobiilialustoissa.

Tyon tavoitteena on muodostaa realistinen kuva web-teknologioiden toimivuuden ny-

kytilanteesta eri mobiilialustoilla. Taman pohjalta on tarkoitus antaa suosituksia web-

teknologioiden hyodyntamisesta mobiililaitteiden ohjelmistokehityksessa. Tyon rajaus

keskittyy natiiviohjelmien korvaamiseen web-teknologioilla.

3.2 Tutkimusaineisto ja -menetelmat

Tutkimuksessa kaytan aineistona seka kirjallista aineistoa etta tutkimusta varten tekemie-

ni testien avulla saamiani tuloksia. Tutkimusmetelmina ovat siis seka kirjallisuuskatsaus

etta kokeellinen tutkimus.

Kirjallisuuskatsaukseen olen yrittanyt saada mahdollisimman uutta materiaalia. Kirjallis-

ta aineistoa olen etsinyt Nelli-portaalin kautta alan tietokannoista. Aihepiiri on niin uusi,

etta akateemisesti julkaistuja lahteita ilmestyi vasta tutkimuksen viime hetkilla. Aineis-

tossa onkin taytynyt tukeutua myos julkisiin verkkoaineistoihin, joiden luotettavuutta

olen arvioinut kriittisesti. Luotettavimpia lahteita ovat Web-tekniikoiden osalta W3C:n

standardit ja mobiilikehityksesta alan kirjallisuus, josta paateoksena minulla on kaytossa

Fling (2009) Mobile Design and Development.

3.3 Testit

Testaan web-tekniikoiden kaytannon toimivuutta suorittamalla testeja eri mobiilialus-

toilla. Testien toteuttamisessa hyodynnan omaa testiohjelmaani, joka testaa muutamia

natiiviohjelmien korvaamisen kannalta oleellisia ominaisuuksia. Oman ohjelmani lisaksi

suoritan kaksi valmista testipakettia: Acid3 ja HTML5-testikokonaisuudet.

3.3.1 Testatut mobiilialustat

Testatut mobiilialustat ja testilaitteet on esitelty taulukossa 2. Olen pyrkinyt valitsemaan

testattavat alustat ensisijaisesti siten, etta ne edustavat mahdollisimman relevantteja ja

laajasti kaytettyja alustoja. Tama maaritelma patee iOS:aan, Androidiin ja Symbianiin.

10

Page 11: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Naiden lisaksi mukana on HP:n WebOS siksi, etta se edustaa teknologialtaan mielenkiin-

toista lahestymistapaa, jossa kaikki ohjelmat toteutetaan web-tekniikoiden avulla. Mic-

rosoftin Windows Phone taas ei viela ole suuressa roolissa, mutta on kiinnostava tulevai-

suuden roolissaan Nokian paaasiallisena alypuhelinkayttojarjestelmana.

Taulukko 2: Testatut mobiilialustat.

Kayttojarjestelma Testilaite Ohjelmistoversio

Apple iOS Apple iPod Touch (3. gen) 4.2.1

Google Android HTC Legend 2.2

Nokia Symbian 3 Nokia N8 0.11.012

Nokia X7 (etana) 0.21.010 (Anna/PR2)

HP WebOS webOS emulator 2.1.0

Microsoft Windows Phone 7 HTC 7 Mozart 7.0.7390

Alustojen testaamista varten olen lainannut kayttooni testilaitteita. Testilaitteiden ohjel-

mistoversion olen pyrkinyt pitamaan uusimpana minka alustalle testaushetkella on saa-

tavilla. HP:n WebOS:n saatavuus Suomessa oli viela niin heikko, etta en valitettavasti

saanut kayttooni fyysista testilaitetta, joten jouduin suorittamaan testit alustan emulaat-

torissa.

Nokian Symbiania olen testannut fyysisen N8-laitteen lisaksi etayhteyden yli uudella

Symbianin PR2-versioon perustuvalla X7-puhelimella. Taman mahdollisti Nokian Re-

mote device access-palvelu, jonne uusi puhelin tuli testattavaksi. (Forum Nokia, 2011)

Testaan Symbiania myos kahdella eri tekniikalla: vanhemmilla WRT-widgeteilla ja uu-

demmalla Qt Webkit-ymparistolla. Naista WRT-ympariston tulokset olen kirjannut PR2-

ohjelmistoversiosta, jossa standardien tuki on parantunut.

3.3.2 Testiohjelma

Web-tekniikoiden soveltamista mobiililaitteiden ohjelmistokehitykseen testaan tekemalla

testiohjelman web-sovelluksena. Ohjelman avulla pyrin testaamaan eri alustojen tukemia

ominaisuuksia seka suorituskykya ja web-tekniikoiden kaytettavyytta. Ohjelman teke-

misesta saan myos tietoa kaytannon kehitystyon toteuttamisesta seka siina kohdatuista

haasteista.

Ohjelman tarkoitus on testata kayttoliittyman rakentamista JQuery Mobile -ymparistolla

seka muutaman HTML5-standardin uuden ominaisuuden hyodyntamista. Ohjelman avul-

la testaan myos alustakohtaista suorituskykya mittaamalla ohjelman latautumiseen seka

sivunvaihdoksiin kuluvaa aikaa. Linkit testiohjelman lahdekoodiin seka online-versioon

ovat liitteessa A.

11

Page 12: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

(a) Latauskuva (b) Paanakyma (c) Logi tapahtumista

Kuva 1: Kuvankaappauksia testiohjelmasta

Testiohjelman suorittamiseksi eri alustoilla testaan myos PhoneGap-ymparistoa, joka tar-

joaa mahdollisuuden paketoida web-tekniikoilla tehty ohjelma eri alustoilla toimiviksi na-

tiiviohjelmiksi. (Phonegap, 2011)

3.3.3 Acid3-testi

Selainten standardituen kattavuutta testaan suorittamalla Acid3-testin eri alustoilla.

Acid3-testi on laajasti kaytetty testi, joka testaa niin HTML, CSS ja JavaScript -

standardien tukea. Testin on kehittanyt monien web-standardien kirjoittaja Ian Hickson

ja sita yllapitaa Web Standards Project. (The Web Standards Project, 2011)

Kuva 2: Acid3-testin renderointitulos Applen iOS 4.2 -alustalla

Acid3-testissa selain renderoi joukon testeja eri standardeja hyodyntaen, jolloin niista

muodostuu kokonainen kuvio. Esimerkki renderointituloksesta Applen iOS-alustalla on

12

Page 13: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

kuvassa 2. Graafisen tuloksen lisaksi testi antaa numerisen tuloksen, jota kaytan alustojen

vertailussa.

3.3.4 HTML5-testi

Uusien HTML5-ominaisuuksien tukea testaan suorittamalla html5test.com -testisivun

(Leenheer, 2011) eri alustoilla. Sivusto testaa kaikki HTML5-standardiin kuuluvat osa-

alueet seka lisaksi joukon muita HTML5-termiin liittyvia standardeja. Testin osa-alueet

on esitetty tuloksien yhteydessa taulukossa 7.

Testissa eri osakokonaisuuksista annetaan pisteita lapaistyjen alatestien mukaan. Lisaksi

annetaan bonuspisteita standardeihin kuulumattomista, mutta kaytannon toimivuuteen

vaikuttavista osa-alueista, kuten eri videoformaatien tuesta. Dokumentoin tulokset osa-

kokonaisuuksittain ja bonus-pisteet koko testipaketista.

4 Tulokset

4.1 Mobiiliohjelmien kehittaminen web-tekniikoilla

Seuraavassa esittelen tulokset siita, miten web-tekniikoita voidaan hyodyntaa mobiililait-

teiden ohjelmistokehityksessa. Esittelen kirjallisista lahteista ja testiohjelmaa toteuttaes-

sani keraamani tiedot.

4.1.1 Tekniset edellytykset

Web-tekniikoilla toteutettu sovellus vaatii suoritysymparistokseen web-selaimen, joka

suorittaa sovellusta reaaliajassa suoraan lahdekoodista. Selain tulkitsee sivun HTML-

kuvauskielta ja esittaa elementit CSS-tyyleissa maaritellylla tavalla. Dynaamisyys saa-

daan aikaan JavaScript-kielella, jonka avulla voidaan muokata sivun DOM-mallia seka

liittaa kuuntelijoita erilaisiin tapahtumiin.

Koska web-sovellus suoritetaan selaimessa, riippuu ohjelman suorittamisen edellytykset

kaytettavasta selaimesta. Selaimilla on hyvin vaihteleva tuki eri standardien ominaisuuk-

sille. Ominaisuudet ja elementit voivat nayttaa ja toimia hyvin eri tavalla eri selaimissa.

Mobiililaitteiden selaimet ovat perinteisesti olleet tietokoneiden selaimia rajoittuneempia,

mutta viime aikoina ominaisuuksien tuki ja suorityskyky ovat parantuneet myos niissa

huomattavasti. (Charland ja Leroux, 2011)

13

Page 14: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

4.1.2 Kehitysymparistot ja testaaminen

Web-sovelluksen kehitysymparistoksi kay mika tahansa editori. HTML, CSS ja JS-kielien

syntaksivaritys ja virheentunnistus tosin helpottavat kehitysta. Web-koodia ei tarvitse

erikseen kaantaa, joten muutoksien testaaminen on nopeaa. Sovellusta voi testata nor-

maalissa selaimessa. Webkit-pohjaisissa selaimissa Chromessa ja Safarissa on hyva vali-

koima kehitystyokaluja, joiden avulla sovelluksen tilaa voi tutkia. (Rogers, 2010)

Ohjelmaa kannattaa myos testata kohteena olevassa mobiililaitteessa mahdollisimman

tiuhaan. Testiohjelmaa tehdessani havaitsin hyvaksi malliksi laittaa tietokoneelle web-

palvelin tarjoamaan kehityksen alla olevaa versiota sovelluksesta ja testata sovellusta

lahiverkon yli mobiililaitteen selaimella. Nain sykli muutoksien tekemisesta niiden tes-

taamiseen laitteessa on aarimmaisen nopea: pelkka tallennus editorissa ja refresh-napin

painaminen laiteessa riittaa.

Toimivuutta mobiililaitteessa voi mallintaa myos poytakoneella kayttamalla emulaattoria.

Testiohjelman yhteydessa kaytin Chrome -selaimessa toimivaa Ripple-emulaattoria, jolla

voi testata esimerkiksi kiihtyvyysanturin ja geolokaation toimintaa. (tinyHippos, 2011)

4.1.3 Kayttoliittyman rakentaminen

Nykyaikaisilla kosketusnayttopuhelimilla kayttoliittyma pitaa optimoida sormella kaytet-

tavaksi. Perinteiset web-sivustot on suunniteltu hiirella kaytettavaksi, jolloin interaktio-

alueet, kuten linkit, ovat usein hyvin pienia. Sormella osoittamisen tarkkuus on huo-

mattavasti pienempi kuin hiirella, joten kayttoliittymakomponenteista taytyy mobiileissa

web-sovelluksissa tehda suurempia kuin normaaleissa web-sovelluksissa. (Fling, 2009)

Toisin kuin monet natiivit kehitysymparistot, web-teknologiat eivat suoraan tarjoa val-

miita alustalle tyyliteltyja komponentteja kayttoliittyman rakentamiseen. Komponentit

on tyyliteltava itse CSS-tyyleja kayttaen. Avuksi kannattaakin ottaa jokin kayttoliitty-

makirjasto, jotka tarjoavat valmiit mobiilikayttoon sopivat tyylit seka joukon monipuoli-

sempia kayttoliittymakomponentteja. (Rogers, 2010)

Testiohjelmassani valitsin kaytettavaksi JQuery Mobile -kayttoliittymakirjaston. Se poh-

jautuu suosittuun JQuery JavaScript-kirjastoon ja laajentaa sita tarjoamaan mobiililait-

teille optimoituja kayttliittymakomponentteja. JQuery Mobile sisaltaa myos ohjelman ra-

kenteen hallintaan kaytettavan toimintalogiikan. Se hoitaa siirtymat eri nakymien valilla

ja pitaa ylla navigointipinoa. (jQuery Project, 2011)

14

Page 15: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

(a) Listanakyma (b) Transitiot (c) Dialogi

Kuva 3: JQuery Mobile-kayttoliittymakirjaston komponentteja Android-alustalla.

4.1.4 Paketoiminen natiiviohjelmaksi

Web-sovelluksen suorittaminen puhelimen selaimessa ei aina ole riittava ratkaisu. Monet

kayttajat eivat miella selaimessa suoritettavia sovelluksia varsinaiseksi ohjelmiksi, vaan

haluavat ennemmin puhelimen valikkoon asentuvan natiiviohjelman. Kehittajan kannal-

ta natiiviohjelmat mahdollistavat myos suosittujen ohjelmistokauppojen kayttamisen oh-

jelman jakelussa, markkinoinnissa ja rahastamisessa. Natiivisovellukset mahdollistavat

monilla alustoilla myos helpot ohjelmansisaiset maksut sisallosta. (Fling, 2009)

Nama natiiviohjelmien edut voidaan saavuttaa suorittamalla web-sovellus natiiviohjel-

man sisaan sijoitetussa web-komponentissa. Talloin kayttajalle sovellus ei parhaimmil-

laan eroa natiiviohjelmasta lainkaan. Paketoimalla web-sovellus natiiviohjelman sisaan

voidaan saavuttaa myos muita etuja, kuten mahdollisuus kayttaa natiiviohjelmien oh-

jelmointirajapintojen ominaisuuksia. Nain esimerkiksi kiihtyvyysanturin tiedot voidaan

natiivikoodin kautta valittaa web-komponentissa toimivalle sovellukselle. (Charland ja

Leroux, 2011)

Jokaiselle eri ohjelmistoalustalle joudutaan siis tekemaan oma natiivi-wrapperi, joka pa-

ketoi web-sovelluksen ja valittaa halutut ohjelmointirajapinnat sen kayttoon. Tahan on

olemassa valmis ratkaisu nimeltaan PhoneGap, joka tarjoaa eri alustojen natiivien API:en

ominaisuudet omalla vakioidulla API:lla web-sovelluksen kayttoon. PhoneGap tukee tal-

la hetkella virallisesti kuutta mobiialustaa, joista Apple iOS, Android, BlackBerry, Palm

WebOS ja Symbian ovat kaytettavissa. Tuki Windows Phonelle on julkistettu, mutta se

on viela kehitteilla. (Phonegap, 2011)

Normaalisti PhoneGap asennetaan kunkin alustan kehitysympariston yhteyteen. Ohjel-

ma pitaa siis paketoida ja kaantaa erikseen jokaiselle alustalle. PhoneGapia kehittava

15

Page 16: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Kuva 4: PhoneGap Build -palvelu

Nitobi on julkaissut beta-testaukseen PhoneGap Build -palvelun, jossa alustakohtainen

kaannostyo suoritetaan palvelimella. Talloin kehittaja ei tarvitse lainkaan alustakohtaisia

kehitysymparistoja. (Nitobi, 2011)

Kokeilin PhoneGap Build-palvelua testiohjelman kehittamisen yhteydessa. Palvelu osaa

kayda hakemassa ohjelman lahdekoodit suoraan git-versionhallinnasta. Palvelu tuntui

toimivan moitteettomasti ja ohjelmien kaantaminen eri alustoille onnistui muutamassa

minuutissa. Valitettavasti kuitenkin paketointi Applen iOS:lle ei onnistunut, silla se olisi

vaatinut Applen maksullisen kehittajaserfitikaatin toimiakseen.

4.1.5 HTML5:n uudet mahdollisuudet

HTML5-standardi ja muut siihen liittyvat uudet web-tekniikat mahdollistavat paljon

uusia ominaisuuksia mobiileissa web-sovelluksissa. Erityisen tarkeita ovat mobiililaitteen

ominaisuuksien ja web-sovelluksen valiseen toimintaan liittyvat ohjelmointirajapinnat,

joiden avulla voidaan hyodyntaa esimerkiksi laitteen paikannustietoa tai kameraa. (Char-

land ja Leroux, 2011)

Lisaksi natiiviohjelmien korvaamisen kannalta tarkeita HTML5-ominaisuuksia ovat esi-

16

Page 17: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

merkiksi tallennukseen liittyvat rajapinnat ohjelman datojen tallentamiseen laittee-

seen ja offline-kayttoon. Grafiikan piirtamiseen puolestaan canvas-elementti ja CSS-

transformaatiot tuovat apua. Myos HTML5:n multimedia-ominaisuudet ovat oleellisia

mobiililaitteissa, silla Flash-videoiden tuki on mobiililaitteissa huono. (Charland ja Le-

roux, 2011)

(a) Paikannus ja kartta (b) Kiihtyvyysanturi (c) Canvas-pikseligrafiikka

Kuva 5: Testiohjelman HTML5- ja PhoneGap-ominaisuuksien testit Android-alustalla.

Testiohjelmassani kokeilin kolmea mielestani oleellista HTML5-ominaisuutta: paikannus-

tietoa, kiihtyvyysanturia seka canvas-pikseligrafiikan piirtamista. Kuvankaappaukset tes-

teista on esitelty kuvassa 5.

Paikannus-testi kysyy kayttajan sijainnin laitteelta ja piirtaa sen kartalle Google Maps

JavaScript-kirjastoa kayttaen. Kiihtyvyysanturi-testi puolestaan tarkkailee kiihtyvyysan-

turia ja liikuttelee grafiikkaa ruudulla laittetta kallistamalla. Testissa kaytetaan kahta ta-

han eri lahestymistapaa: PhoneGapin tarjoamaa API:a seka W3C:n DeviceOrientation-

spesifikaatiota, joka on tuettu ainakin iOS-laitteissa. (W3C, 2011a)

Canvas-testissa taas kayttaja voi piirtaa canvakselle radiaalisia gradientteja. Canvas-

testin yhteydessa tulee samalla testattua myos kayttajan interaktioiden valittymista web-

sovellukselle. Tama on ollut hankalaa kosketusnayttolaitteilla, silla perinteisia hiireen

pohjautuvia eventteja ei saada samalla tavalla kuin poytakoneilla. Niiden tilalla uusim-

missa mobiiliselaimissa on touch-eventit. (Fling, 2009)

4.2 Testien tulokset

Seuraavassa kayn lapi testeissa saadut tulokset testiohjelman seka Acid3 ja HTML5-

testien toimivuudesta eri mobiilialustoilla.

17

Page 18: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

4.2.1 Testiohjelma

Testiohjelman avulla tutkittiin web-teknologioiden kaytannon suorituskykya ja ominai-

suuksien tukea eri alustoilla.

Suorituskyvyn mittaamista varten ohjelma laski kaynnistymiseensa seka sivunvaihtoihin

kuluvia aikoja. Sivunvaihtojen aika on keskiarvo mitatuista ajoista. Sivun vaihtoon kuluva

aika sisaltaa sivun lataus- ja generointiajan lisaksi sivunvaihton yhteydessa naytettavat

transitiot. Eri alustojen suorituskykytulokset on esitelty taulukossa 3.

Taulukko 3: Testiohjelman suorituskykymittausten tulokset

Android

2.2

iOS

4.2.1

Symbian

Qt 4.7.1

Symbian

Wrt pr2

WebOS

2.1

Windows

Phone 7

Kaynnistys (ms) 1988 3231 1861 6196 485 Virhe

Sivunvaihto (ms) 797 1281 1072 3041 Virhe Virhe

Parhaiten suorituskykymittauksissa menestyi Android, jonka sivunvaihtoajat olivat no-

peimpia, ja kaynnistysaikakin jai vain vahan nopeimmasta, Symbianista Qt-alustalla. We-

bOS:n nopean kaynnistysajan selittaa sen ajaminen emulaattorissa. WebOS:lla ja Win-

dows Phonella sivunvaihtoihin kuluvien aikojen mitattaaminen ei jostain syysta toiminut.

JQuery Mobile -kirjaston toimivuutta testanneiden ominaisuuksien testitulokset on esi-

tetty taulukossa 4. Kirjaston nakymat ja komponentit toimivat hyvin kaikilla alustoilla.

Myos JQuery Mobilen CSS3:n avulla toteutettujen sivunvaihto-transitioiden toimivuus

oli kohtalaista. Yksinkertaisimmat slide-transitiot eri suuntiin toimivat kaikilla alustoilla

Windows Phonea lukuun ottamatta. Monimutkaisempien fade, pop ja flip -transitioiden

kanssa syntyi hajontaa, osan alustoista nayttaessa ne vaarin ja osan jattaessa ne kokonaan

nayttamatta. Paras tuki transitioille oli selvasti iOS:ssa, jossa ne nakyivat rautakiihdy-

tettyina erittain sulavasti.

Taulukko 4: Testiohjelman JQuery Mobile-testien tulokset

Android

2.2

iOS

4.2.1

Symbian

Qt 4.7.1

Symbian

Wrt pr2

WebOS

2.1

Windows

Phone 7

Listanakyma Toimii Toimii Toimii Toimii Toimii Toimii

Dialogi Toimii Toimii Toimii Toimii Toimii Toimii

Transitiot, max 6 Toimii, 4 Toimii, 6 Toimii, 5 Toimii, 3 Toimii, 6 Ei

HTML5:n ja PhoneGapin tarjoamien uusien ominaisuuksien toimivuudessa alustojen va-

lilla oli paljon eroja. Tulokset on esitelty taulukossa 5. Paras tuki oli Androidilla ja iOS:lla,

18

Page 19: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

jotka tukivat kaikkia testattuja ominaisuuksia. Huonoin suoritus oli jalleen Windows Pho-

ne 7:lla, joka ei tukenut mitaan testatuista ominaisuuksista. Ominaisuuksista paras tuki

oli geolokaatiolle ja sen yhteydessa testatulle Google Maps -komponentille.

Taulukko 5: Testiohjelman HTML5 ja PhoneGap -testien tulokset

Android

2.2

iOS

4.2.1

Symbian

Qt

Symbian

Wrt pr2

WebOS

2.1

Windows

Phone 7

Geolokaatio Toimii Toimii Osittain Toimii Toimii Ei

Accelerometer Toimii Toimii Ei Toimii Ei Ei

Canvas Toimii Toimii Toimii Osittain Ei Ei

Testiohjelman perusteella web-sovellusten suorituskyky vaihtelee paljon alustojen valilla.

JQuery Mobile-kirjasto toimii kohtalaisesti useimmilla alustoilla. HTML5- ja PhoneGap

ominaisuuksien tuki taas on vaihtelevampaa kaikilla alustoilla. Lisaksi testiohjelman suo-

rittamisessa eri alustoilla oli erilaisia ongelmia ja haasteita, joita esittelen tarkemmin

alustakohtaisesti luvussa 4.3.

4.2.2 Acid3-testi

Suurin osa testatuista alustoista suoritui web-standardeja mittavaasta Acid3-testista hy-

vin. Alustojen tulokset on esitelty taulukossa 6. Parhaiten suoritui Applen iOS, joka sai

testista taydet 100 pistetta. Huonoiten suoriutui Windows Phone 7, jonka tulos on vaati-

maton 14 pistetta. Muiden mobiilialustojen tuki normaaleille HTML, CSS ja JavaScript-

standardeille on hyva.

Taulukko 6: Acid3 -testin tulokset

Android

2.2

iOS

4.2.1

Symbian

Qt

Symbian

WRT

WebOS

2.1

Windows

Phone 7

Max

Pisteet 93 100 99 91 92 12 100

4.2.3 HTML5-testi

HTML5-testissa syntyi varsin paljon hajontaa eri alustojen valille. Alustakohtaiset tulok-

set on esitelty taulukossa 7.

Parhaiten menestyi hieman yllattaen Symbian viela kehityksessa olevalla Qt Webkit-

alustalla, saavuttaen testista 235 pistetta. Qt kerasi etumatkaa muihin erityisesti semant-

19

Page 20: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Taulukko 7: HTML5-testin tulokset

Testi-

kokonaisuus

Android

2.2

iOS

4.2.1

Symbian

Qt

Symbian

Wrt pr2

WebOS

2.1

Windows

Phone 7

Max

Parsing rules 1 1 1 1 1 1 11

Canvas 20 20 20 20 20 0 20

Video 21 21 21 0 21 0 31

Audio 20 20 20 0 20 0 20

Elements 13 14 30 24 17 12 38

Forms 27 30 37 31 25 3 90

User Interac. 15 15 15 15 10 0 15

Microdata 0 0 0 0 0 0 15

Web app 19 19 15 4 15 0 19

Security 5 5 5 5 0 0 10

HTML5 yht. 141 145 164 100 129 0 269

Geolocation 15 15 15 0 15 0 15

WebGL 0 0 0 0 0 0 15

Communicat. 5 25 25 5 5 0 25

Files 0 0 0 0 0 0 20

Storage 15 15 15 0 15 0 20

Workers 0 0 10 0 0 0 10

Local devices 0 0 0 0 0 0 20

Other 6 6 6 6 6 1 6

Muut yht. 41 61 71 11 41 1 131

Yhteensa 182 206 235 111 170 17 400

Bonus 0 7 13 0 5 0

tisten elementtien ja lomakkeiden tuessa. Tuotantokaytossa olevista alustoista parhaiten

selvisi Applen iOS 206 pisteella. Windows Phonen tulos oli jalleen kertaluokkaa muita

huonompi.

HTML5-testin tulosten perusteella eri ominaisuuksien tuki vaihtelee paljon. Parhaiten

tuettuja HTML5-standardin ominaisuuksia olivat canvas-elementti seka video- ja audio-

toisto. Parhaiten tuettuja muiden liittyvien HTML5-standardien ominaisuuksia olivat

paikannustieto seka offline-tallennus. Tulosten perusteella ennen HTML5-ominaisuuksien

hyodyntamista on syyta tarkastaa juuri halutun ominaisuuden tuki eri alustoilla. Osalla

ominaisuuksista tuki on kiitettava, mutta osan implementointi on viela kesken.

20

Page 21: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

4.3 Alustakohtaiset havainnot

Seuraavassa esittelen tarkemmin testeissa eri mobiilialustoilla tehdyt havainnot. Esittelen

havaintoja kullakin alustalla testeissa esiintyneista ongelmista ja testiohjelmaan mahdol-

lisesti vaadituista alustakohtaisista muutoksista.

4.3.1 Apple iOS

Applen iOS suorituikin kaikista testeista hyvin tai erinomaisesti. Vaikka laite jaikin

testiohjelmalla mitatussa suorituskyvyssa hieman jalkeen nopeimmista, niin kaytannon

kayttokokemus oli testiryhman sulavin. Tahan lienee vaikuttanut se, etta rautakiihdyte-

tyt CSS3-transformaatiot toimivat alustalla hyvin. Acid3-testissa iOS:n standardien tuki

oli joukon paras ja HTML5-testissakin paras tuotantokaytossa olevista alustoista.

Applen iOS:n rajoituksena omia natiiviohjelmia ei saa asennettua laitteisiin ilman mak-

sullista kehittajatunnusta ja sita kautta saatavaa sertifikaattia. Tasta syysta PhoneGap-

paketoinnin testaaminen ei onnistunut. Sen sijaan minka tahansa web-sivuston pystyy

iOS:ssa asettamaan linkiksi paavalikkoon. Sivulle pystyy metatiedoissa maarittelemaan

esimerkiksi ikonin ja kaynnistyskuvan. Lisaksi sivun voi maaritella web-sovellukseksi, jol-

loin selaimen kayttoliittymaa ei nayteta lainkaan. Nain asennettu web-sovellus toimii kay-

tannossa kuten natiivisovellus. Testeissa tama toimi hyvin, eika web-sovelluksia pystynyt

erottamaan natiivisovelluksesta.

Valikkoon asennettu web-sovellus latautuu verkosta jokaisen kaynnistyksen yhteydessa ja

vaatii siten edelleen verkkoyhteyden. Sovelluksen pystyy kuitenkin maarittelemaan offline-

tilassa kaytettavaksi HTML5:n offline cache-ominaisuuden avulla, jolloin sivuun liittyvat

komponentit tallennetaan offline-kayttoa varten. (W3C, 2011b) Testeissa tama ei kuiten-

kaan tuntunut toimivan, vaan maaritellysta manifest-tiedostosta huolimatta ohjelma ei

suostunut kaynnistymaan ilman verkkoyhteytta. Palvelimen logeista kuitenkin naki, etta

kaikki manifest-tiedostossa linkitetyt tiedostot ladataan talteen.

4.3.2 Google Android

Googlen Androidin suoritus kaikissa testeissa oli tasaisen hyva. Testiohjelman kanssa

kayttokokemus oli parhaimpia niin nopeudessa kuin ominaisuuksien tuessakin. PhoneGap-

paketointi toimi ongelmitta ja kaikki sen ominaisuudet olivat tuettuina. Ainoat ongelmat

testiohjelman kanssa havaittiin joissain CSS-transitioissa, jotka eivat nakyneet aivan oi-

kein. Acid3- ja HTML5-testeista Android suoriutui melko hyvilla tuloksilla, mutta pa-

rannettavaakin on viela.

21

Page 22: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

4.3.3 Nokia Symbian

Nokian Symbian-alustalle on voinut kehittaa web-sovelluksia jo pitkaan kayttaen WRT-

widgetteja. Niiden web-standardituki ja suorituskyky on kuitenkin ollut pahasti jaljessa

kehityksesta. Uusi Symbian Anna (PR2) -versio tuo viimein parannusta tilanteeseen.

Paasin testaamaan uutta versiota X7-laitteella etayhdeyden yli. Uudella versiolla WRT:n

standardituki ja suorituskyky nousivat siedettavalle tasolle.

Olin suorittanut testit alunperin vanhalla WRT-versiolla, jolla oli suuria ongelmia kaikissa

testeissa. Testiohjelma ei suostunut edes kunnolla nakymaan, suorituskyky oli todella

hidasta ja mitaan kehittyneempia ominaisuuksia ei tuettu. Acid3-testista vanha WRT sai

vain 47 pistetta ja HTML5-testista 29 pistetta. En suosittele vanhan WRT:n tukemista.

PhoneGap-tuki WRT-alustalle loytyy, mutta tormasin ongelmiin PhoneGap Build-

palvelussa generoitujen widgettien asentamisessa laitteeseen. Ongelmat johtuivat ilmei-

sesti eroista widgetin paketoinnissa. Paketoimalla widgetti uudelleen omalla koneella on-

gelmat ratkesivat. WRT-widgetit ovat yksinkertaisesti zip-paketteja, joiden tiedostopaate

on muutettu, joten niiden tekeminen on erittain helppoa.

Symbianilla web-sovelluksia voi suorittaa myos kehitteilla olevalla Qt Webkit -alustalla,

joka yllatti positiivisesti suorituskyvyllaan ja standardien tuellaan. Testiohjelman kanssa

se oli suorituskyvyltaan hyva, mutta osa ominaisuuksista kuten Googlen karttakompo-

nentti ei toiminut. Acid3-testissa Qt sai lahes taydet 99 pistetta, mika oli joukon toiseksi

paras suoritus. HTML5-testissa Qt sai parhaan tuloksen koko joukosta. Kilpailijoihin ver-

rattuna erityisen hyvin HTML5-ominaisuuksista ovat hallussa semanttiseen merkintaan

ja lomakkeisiin liittyvat ominaisuudet. Qt Webkit vaikuttaa siis hyvin lupaavalta alus-

talta web-sovelluksien suorittamiseen Symbianissa. Qt on tulossa paivityksena Symbian

3-puhelimiin ja vanhempiikin laitteisiin sen voi itse asentaa.

4.3.4 HP WebOS

Entisen Palmin, eli nykyisen HP:n WebOS-kayttojarjestelma perustuu web-teknologioiden

hyodyntamiseen kaikissa sovelluksissa. WebOS-laitteet ovat Suomessa viela varsin tun-

temattomia, joten en saanut kayttooni fyysista testilaitetta. Suoritin testit kayttaen

WebOS-emulaattoria, joka suorittaa oikean laitteen kayttojarjestelman virtuaalikoneessa.

Tama toimi varsin kiitettavasti ja kaikki ohjelmat olivat kaytettavissa.

WebOS:n suorituskyky ja web-standardituki oli korkeista ennakko-odotuksista johtuen

pieni pettymys. Acid3- ja HTML5-testeissa WebOS:n suoritus oli valttava vertailujouk-

koon nahden. Testiohjelman kanssa WebOS tormasi useisiin ongelmiin. Ohjelman pake-

toiminen PhoneGap-alustalle onnistui hyvin, mutta ohjelma ei suostunut aluksi kaynnis-

tymaan lainkaan ja konsoliin tulvi virheilmoituksia tiedostojen lukemisen epaonnistumi-

22

Page 23: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

sesta. Ongelman ratkaisemiseksi piti projektiin linkittaa WebOS:n oma mojo.js-kirjasto

seka tehda pieni muutos koko JQuery Mobile-kirjastoon. Tamankaan jalkeen suoritus ei

ollut vahva, silla sivun ulkoasu ei nakynyt oikein ja edes sivun vierittaminen ei toiminut.

4.3.5 Microsoft Windows Phone

Microsoftin Windows Phone 7 -alusta suoritui lahes kaikista testeista joukon huonoiten.

Testiohjelmasta toimivat vain perusominaisuudet lista ja dialogi. Suorituskykya ei saa-

tu mitattua, silla edes logitusominaisuus ei toiminut. Silmamaaraisesti arvioiden suori-

tuskyky oli kuitenkin heikko. Acid3-testin tulos 12 pistetta on halyttavan huono. Myos

HTML5-testista Windows Phone sai vaatimattomat 17 pistetta. Kayttojarjestelman ny-

kyisen version selain pohjautu Internet Explorerin versioon 7, jonka tuki standardeille on

heikko. Tama tuli todistettua.

Tulevaisuudessa Windows Phonen web-standardituen ja suorituskyvyn pitaisi parautua

huomattavasti. Microsoft on esitellyt uutta Internet Exprorin 9-versioon pohjautuvaa

mobiiliselainta, jonka tuki uusille HTML5-standardeille on parantunut huomattavasti ja

jonka suorituskykya on optimoitu web-sovellusten tarpeisiin. Microsoftin julkaisemassa

videossa testiversio tulevasta selaimesta paihittaa Applen iOS:n ja Androidin uusimmat

versiot suorituskyvyssa. Uuden version pitaisi tulla jakeluun syksylla 2011. (Warren, 2011)

En suosittele Windows Phonen kayttamista web-tekniikoilla ennen uuden version saapu-

mista.

4.3.6 Yhteenveto

Kaikissa testeissa tasaisimmin suoriutuivat Android ja Applen iOS. Niiden tuki Web-

teknologioille on varsin kiitettava. Nokian Symbianin kehitysvaiheessa oleva Qt Webkit

yllatti standardien tuellaan, mutta valitettavasti sen kayttaminen laajemmassa mittakaa-

vassa ei viela ole mahdollista. HP:n WebOS oli pienoinen pettymys, silla web-tekniikoihin

pohjautumisestaan huolimatta se jai kilpailijoistaan jalkeen testeissa. Windows Phonen

tuki web-tekniikoille oli nykytilanteessa selvasti joukon huonoin.

4.4 Web-sovellukset natiiviohjelmien korvaajana

Web-sovellukset haastavat enenevissa maarin natiiviohjelmat. Seuraavassa on eritelty joi-

tain yleisesti miellettyja erottavia tekijoita natiiviohjelmien ja web-sovellusten valilla.

Tarkastelemme mika on naiden erojen nykytilanne taman tutkimuksen testien ja kirjalli-

sen materiaalin perusteella.

23

Page 24: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

4.4.1 Suorituskyky ja ominaisuudet

Natiiviohjelmien suurena etuna on pidetty parempaa suorituskykya ja mahdollisuuksia

mobiilialustan erikoisominaisuuksien hyodyntamiseen. Web-sovelluksien ero natiiviohjel-

miin on kuitenkin pienenemassa niin suorituskyvyssa kuin ominaisuuksien tuessakin.

Uusien JavaScript-moottoreiden myota selaimien suorityskyky on parantunut viime ai-

koina valtavasti. Isot yritykset kuten Apple, Google ja Microsoft kehittavat kilvan JS-

moottoreitaan tehokkaammiksi, joten kehitysta suorituskyvyssa tapahtuu jatkuvasti. Suo-

rituskyvylla on suurin vaikutus grafiikkaintensiivississa sovelluksissa, kuten peleissa. Nor-

maaleissa sovelluksissa web-tekniikoiden suorituskyky on jo riittavalla tasolla ja ero na-

tiiviohjelmiin pieni. (Charland ja Leroux, 2011)

Mikkonen ja Taivalsaari (2011) pitavat suorituskyvyn kehittymisen kannalta erityi-

sen kiinnostavana WebGL-standardia, joka tuo laitteistokiihdytetyn 3D-grafiikan web-

sovelluksiin. He uskovat, etta WebGL tulee murtamaan viimeisen natiiviohjelmistojen

linnakkeen, eli pelit. Myos W3C:n toimitusjohtaja Jaffe (2011) kertoi, etta peleja pysty-

taan jatkossa tekemaan yha paremmin web-tekniikoilla. Han kertoi, etta tulevaisuudessa

web-tekniikoiden suorituskykyyn tullaan kiinnittamaan entista enemman huomiota myos

standardoinnissa. Tata edistamaan on W3C:hen perustettu Web Performance Working

Group. (W3C, 2011d)

HTML5:n ja siihen liittyvien standardien myota myos web-teknologioiden ominaisuudet

ovat parantuneet huomattavasti. Nykyaan web-sovellusten kaytettavissa on suurin osa sa-

moista ominaisuuksista kuin natiiviohjelmilla. Puuttuvia ominaisuuksia lisataan jatkuvas-

ti HTML5-standardeihin ja implementoidaan laitteisiin. Naita odotellessa voi PhoneGap-

paketoinnilla linkittaa puuttuvat API:t web-sovelluksen kaytettavaksi. (Charland ja Le-

roux, 2011)

Web-teknologia lahestyy siis seka suorityskyvyssa etta ominaisuuksissa natiiviohjelmis-

toja. Esimerkiksi Charland ja Leroux (2011) ovatkin varmoja, etta web-teknologioilla

pystyy tulevaisuudessa toteuttamaan kaikki sovellukset ja niita ei pysty erottamaan na-

tiivisovelluksista.

4.4.2 Kayttoliittyma ja kaytettavyys

Eri alustoilla on erilaisia kayttoliittymaparadigmoja, jotka tulee huomioida ohjelmia kehi-

tettaessa. Natiivitekniikoilla nama tulevat huomioitua melko helposti. Web-teknologioilla

taas voidaan helpommin toteuttaa kaikille alustoille yhtenainen kayttoliittyma. Tama ei

kuitenkaan ole aina hyva ratkaisu, silla kayttajat ovat tottuneet eri alustoilla erilaisiin

kayttoliittymaparadigmoihin ja konventioihin. Myos laitteiden fyysiset ominaisuudet on

hyva huomioida. Esimerkiksi Android-puhelimissa on fyysinen back-painike ja konteksti-

24

Page 25: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

valikon painike, kun taas iOS-laitteissa sellaisia ei ole. (Charland ja Leroux, 2011)

Web-sovellukseen kannattaakin implementoida eri alustoille alustan yleisiin konventioi-

hin sopiva kayttoliittyma ja toiminnallisuudet. Tama pystytaan tekemaan varsin helposti

kayttaen alustakohtaisesti mukautuvia tyyleja ja toiminnallisuuksia. Taustalla olevaa toi-

mintalogiikkaa ei kuitenkaan tarvitse kirjoittaa uudelleen, joten mukautuminen usealle

alustalle onnistuu helpommin kuin tekemalla erilliset natiiviohjelmat. (Charland ja Le-

roux, 2011)

Kaytettavyyden ja alustan konventioiden huomioiminen on yhta tarkeaa seka natiivioh-

jelmissa etta web-sovelluksissa. Kummallakin tekniikalla kayttoliittyman suunnitteluun

taytyy panostaa. Sama kayttoliittyma voidaan hyvin toteuttaa seka natiiviohjelmana etta

web-sovelluksena. Kaytannossa web-sovellusten kayttokokemus voi olla heikompi esimer-

kiksi animaatioiden sujuvuudessa, mutta tassakin natiiviohjelmia otetaan hyvaa vauhtia

kiinni. Esimerkiksi iOS:n CSS3-transitiot totesin testeissa niin sujuviksi, etta havaittavaa

eroa natiivisovelluksiin ei ollut. (Charland ja Leroux, 2011)

4.4.3 Ohjelmien jakelu ja ohjelmistokaupat

Natiiviohjelmien etuna on mahdollisuus niiden jakelemiseen alustatoimittajien ohjelmis-

tokauppojen kautta. Ohjelmistokaupoista on muodostunut kanava, jonka kautta monet

kuluttajat loytavat ohjelmansa. Monilla alustoilla, kuten iPhonella ja Windows Phonella

ohjelmistokaupoilla on myos monopoliasema natiiviohjelmistojen jakelussa. Kuten tassa

tyossa olemme todenneet, web-sovelluksen voi monella alustalla paketoida natiiviohjel-

maksi ja siten myos toimittaa ohjelmistokauppoihin. Tassa suhteessa eroa natiiviohjel-

miin ei siis ole.

Toisaalta Mikkonen ja Taivalsaari (2011) ovat sita mielta, etta normaalien web-sovellusten

suuri etu natiiviohjelmiin on juuri se, etta niita ei tarvitse erikseen ladata ja asentaa. He

eivat usko ohjelmien asentamisen laitteeseen olevan tulevaisuudessa relevanttia. Web-

sovellusten etu on myos paivitysten helppous ja automaattisuus. Muutoksia sovellukseen

voi tehda jatkuvasti, ja ne paivittyvat asiakkaille valittomasti.

Ohjelmistokauppojen haittapuolena on vaatimus alustan valmistajan suorittamaan ohjel-

miston hyvaksyntaan ja sertifiointiin. Valmistajalla on talloin mahdollisuus hylata sovel-

lus, jos se katsoo sovelluksen olevan sen omien etujen vastainen. Nain esimerkiksi Apple

on tehnyt App Store-ohjelmistokauppansa kanssa useasti. Valmistaja ottaa myos osuu-

den kaikista kaupan kautta saatavista tuloista. Nama ongelmat valtetaan jakelemalla

web-sovellus muuta kautta.

25

Page 26: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

4.4.4 Liiketoimintanakokulma

Natiiviohjelman tekeminen erikseen joka alustalle on erittain kallista, silla koko ohjelma

joudutaan kaytannossa kirjoittamaan uudelleen. Kuten luvussa 2.2.1 totesin, niin eri mo-

biilialustoja ja niiden variantteja on suuri maara. Kaytannossa ei ole mahdollista tehda

natiiviohjelmaa jokaiselle alustalle. Jopa Google sanoo, ettei se ole niin rikas, etta voi-

si tukea natiivisti kaikkia mobiilialustoja. Googlen mobiilistrategia nojautuukin paljon

web-sovelluksiin. Kohtuullisella budjetilla ei ole mahdollista tehda natiiviohjelmaa kuin

rajatulle maaralle laitteita. (Charland ja Leroux, 2011)

Nykyaan keskitytaankin monesti Applen iPhonen suosion sokaisemina tekemaan natii-

viohjelma vain sille ja kuvitellaan ohjelman tavoittavan suurimman osan potentiaalisis-

ta asiakkaista. Talloin jaa kuitenkin huomioimatta suuri joukko potentiaalisia asiakkai-

ta, silla suuresta nakyvyydesta huolimatta iOS:n markkinaosuus maailman alypuhelin-

markkinoista oli vuonna 2010 edelleen vain 15,7 prosenttia. Toiseksi suurimman alustan

Androidin markkinaosuus on 22,7 prosenttia, joten tuplaamalla kehitysbudjetin ja teke-

malla natiiviohjelman iOS:n lisaksi myos Androidille jaadaan kuitenkin alle 40 prosenttiin

markkinoista. (Gartner, 2011)

Web-tekniikoiden avulla pystytaan vastaamaan liiketoimintatarpeeseen tarjoamalla oh-

jelma suuremman potentiaalisen asiakasjoukon saataville eri mobiilialustoissa. Avoimen

web-pohjaisen ohjelmistoalustan myota myos eri tyyppisten laitteiden konvergenssi lisaan-

tyy ja tulevaisuudessa sama web-sovellus voi toimia mobiilikontekstin lisaksi myos esimer-

kiksi televisioissa ja sulauteutuissa jarjestelmissa. Nain investoinnille web-sovellukseen

saadaan tulevaisuudessa entista suurempi arvo. (Jaffe, 2011)

5 Johtopaatokset

Tyon tavoitteena oli tutkia, voiko web-teknologioilla nykyaan mielekkaasti korvata

normaaleja alustakohtaisia teknologioita mobiiliohjelmistojen kehittamisessa. Mielesta-

ni tyossa saatiin hyvin selvitettya tutkimuskohteen nykytila.

Lahteiden ja kokeellisen tutkimuksen perusteella esitan, etta web-teknologioilla on mah-

dollista korvata natiiveja ohjelmistokehitysteknologioita. Kokeellisessa tutkimuksessa kavi

ilmi, etta web-teknologioiden toimivuus keskeisilla mobiilialustoilla on varsin hyva. Pa-

ras tuki oli iOS ja Android -alustoilla, joilla web-teknologiat ovat jo nykyaan kykenevia

korvaamaan natiiviteknologiat monissa tapauksissa. Muilla alustoilla toimivuus on viela

hieman puutteellista, mutta tulee paranemaan lahitulevaisuudessa.

Web-teknologioilla on monia etuja natiiviteknologioihin verrattuna. Web-teknologiat

mahdollistavat ohjelman tekemisen pienemmilla kustannuksilla useammalle eri alustalle,

26

Page 27: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

jolloin saavutetaan suurempi potentiaalinen asiakaskunta. Web-sovellusten kehittaminen

on myos monesti helpompaa ja nopeampaa kuin natiivisovellusten. Lisaksi web-sovelluksia

on mahdollista jakaa asiakkaille muutenkin kuin alustavalmistajien ohjelmistokaupoissa,

jolloin valtetaan valmistajien rajoitukset ja heidan keraamat provisiot.

Mikali kuitenkin haluaa markkinoida web-sovellusta eri alustojen ohjelmistokaupoissa,

suosittelen sovelluksen paketoimista PhoneGap-ympariston avulla natiivisovellukseksi.

Samalla saadaan kayttoon joitakin HTML5-standardeista viela puuttuvia rajapintoja

laitteen ominaisuuksiin. Nain voidaan saavuttaa kummankin maailman - webin ja na-

tiiviteknologioiden - edut.

Suosittelen, etta web-teknologioita kannattaa hyodyntaa natiiviteknologioiden sijasta eri-

tyisesti Android ja iOS-alustoilla. Grafiikka-intensiivisiin peleihin en web-tekniikoita vie-

la suosittele, mutta niidenkin suhteen kehitysta tapahtuu nopeasti esimerkiksi WebGL-

standardin myota. Web-teknologioiden tulevaisuus nayttaakin valoisalta.

Web-tekniikoiden tuki laitteissa kehittyy jatkuvasti, silla kuluttajien vaatimus tuelle on

suuri ja laitevalmistajien pyrkimykset standardien noudattamiseen kasvavat. Lisaksi we-

bin konvergenssi mahdollistaa todennakoisesti tulevaisuudessa samojen web-sovellusten

kayttamisen entista laajemmalla joukolla erityyppisia paatelaitteita; poytakoneista sulau-

tettuihin jarjestelmiin. Niinpa investoimalla nyt standardeilla web-tekniikoilla kehittami-

seen, on tulevaisuudessa todennakoista saada tehdysta tyosta entista enemman arvoa.

Tulosten soveltuvuutta tarkastellessa on otettava huomioon, etta tulokset kasittelevat

tilannetta tutkimushetkella, kevaalla 2011. Ala on voimakkassa muutoksessa, ja niinpa

tulosten paikkansapitavyys voi muuttua nopeastikin. Muutosta kuitenkin tapahtuu vain

paremman tuen suuntaan, joten tassa tyossa esitettyja tuloksia voidaan jatkossakin pitaa

pohjatasona, josta ollaan sittemmin kehitytty eteenpain.

Jatkotutkimusta aiheesta tarvitaan, silla akateemista tutkimusta aihepiirista ei juuri-

kaan ole. Tulevaisuudessa olisi mielenkiintoista selvittaa tarkemmin esimerkiksi web-

teknologioilla tehdyn sovelluksen kayttajakokemusta. Lisaksi olisi mielenkiintoista tar-

kastella aihepiiria ohjelmistoliiketoiminnan talouden ja liiketoimintamallien kannalta. Jos

kaikki mobiiliohjelmat tehtaisiin avoimilla web-tekniikoilla ja ne toimisivat kaikissa laite-

malleissa, niin miten se muuttaisi alan ekosysteemeja?

27

Page 28: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

Lahteet

Apple. Apple’s App Store Downloads Top 10 Billion, 2011. Saatavissa http://www.

apple.com/pr/library/2011/01/22appstore.html. Viitattu 13.3.2011.

Andre Charland ja Brian Leroux. Mobile application development: web vs. native. Com-

mun. ACM, 54:49–53, May 2011. ISSN 0001-0782. URL http://doi.acm.org/10.

1145/1941487.1941504.

Brian Fling. Mobile Design and Development: Practical Concepts and Techniques for

Creating Mobile Sites and Web Apps. O’Reilly Media, 2009. ISBN 978-0-596-15544-5.

Forum Nokia. Remote device access, 2011. Saatavissa http://www.forum.nokia.com/

Devices/Remote_device_access/. Viitattu 3.5.2011.

Gartner. Gartner Says Worldwide Mobile Device Sales to End Users Reached 1.6 Billion

Units in 2010; Smartphone Sales Grew 72 Percent in 2010, 2011. Saatavissa http:

//www.gartner.com/it/page.jsp?id=1543014. Viitattu 2.5.2011.

Jeffrey Jaffe. Leading the World Wide Web to its Full Potential Using Open Web Plat-

form, 2011. Luento Aalto-yliopistossa 5.4.2011 seminaarissa: Avoin tieto ja World Wide

Web tietoyhteiskunnan palveluksessa.

The jQuery Project. jQuery Mobile: Touch-Optimized Web Framework for Smartphones

and Tablets, 2011. Saatavissa http://jquerymobile.com/. Viitattu 2.5.2011.

Niels Leenheer. The HTML5 test, 2011. Saatavissa http://html5test.com/. Viitattu

13.3.2011.

Tommi Mikkonen ja Antero Taivalsaari. Reports of the death of the web are greatly

exaggerated: Towards real web applications for mobile devices. Computer, PP(99):1,

2011. ISSN 0018-9162. doi: 10.1109/MC.2011.127.

Nitobi. PhoneGap Build, 2011. Saatavissa https://build.phonegap.com/. Viitattu

2.5.2011.

Phonegap. About, 2011. Saatavissa http://www.phonegap.com/about. Viitattu

13.3.2011.

Mark Pilgrim. Dive Into HTML5, 2010. Saatavissa http://diveintohtml5.org/. Vii-

tattu 13.3.2011.

Rick Rogers. Developing portable mobile web applications. Linux Journal, 2010, Sep-

tember 2010. ISSN 1075-3583. URL http://portal.acm.org/citation.cfm?id=

1883519.1883522.

28

Page 29: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

MG Siegler. Facebook’s Focus In 2011: Better Cross-Platform Unification Led By

HTML5, 2011. Saatavissa http://techcrunch.com/2011/01/25/facebook-2011/.

Viitattu 13.3.2011.

A. Taivalsaari, T. Mikkonen, D. Ingalls ja K. Palacz. Web browser as an application

platform. Software Engineering and Advanced Applications, 2008. SEAA ’08. 34th

Euromicro Conference, sivut 293 –302, sept. 2008. doi: 10.1109/SEAA.2008.17.

Sasu Tarkoma ja Eemil Lagerspetz. Arching over the mobile computing chasm: Platforms

and runtimes. Computer, 44:22 – 28, May 2011. ISSN 0018-9162. doi: 10.1109/MC.

2010.272.

The Web Standards Project. The Acid3 test, 2011. Saatavissa http://acid3.

acidtests.org/. Viitattu 13.3.2011.

tinyHippos. What Is Ripple, 2011. Saatavissa http://ripple.tinyhippos.com/about.

Viitattu 2.5.2011.

W3C. DeviceOrientation Event Specification. Editor’s Draft 9 February 2011, 2011a.

Saatavissa http://dev.w3.org/geo/api/spec-source-orientation.html. Viitattu

2.5.2011.

W3C. HTML5 - A vocabulary and associated APIs for HTML and XHTML. W3C

Working Draft 05 April 2011., 2011b. Saatavissa http://www.w3.org/TR/2011/

WD-html5-20110405/. Viitattu 2.5.2011.

W3C. W3C Confirms May 2011 for HTML5 Last Call, Targets 2014 for HTML5 Standard,

2011c. Saatavissa http://www.w3.org/2011/02/htmlwg-pr.html. Viitattu 13.3.2011.

W3C. Web Performance Working Group, 2011d. Saatavissa http://www.w3.org/2010/

webperf/. Viitattu 2.5.2011.

Tom Warren. Microsoft benchmarks Windows Phone browser against iPho-

ne 4 and Android, wins, 2011. Saatavissa http://www.winrumors.com/

microsoft-benchmarks-windows-phone-browser-against-iphone-4-and-android-wins/.

Viitattu 3.5.2011.

Anthony I. Wasserman. Software engineering issues for mobile application development.

Proceedings of the FSE/SDP workshop on Future of software engineering research,

FoSER ’10, sivut 397–400, New York, NY, USA, 2010. ACM. ISBN 978-1-4503-0427-6.

URL http://doi.acm.org/10.1145/1882362.1882443.

WHATWG. FAQ: What is HTML5?, 2011. Saatavissa http://wiki.whatwg.org/wiki/

FAQ#What_is_HTML5.3F. Viitattu 13.3.2011.

29

Page 30: Web-teknologiat mobiililaitteiden ohjelmistokehityksessä (in Finnish)

A Testiohjelma

Testiohjelman lahdekoodi on saatavilla osoitteesta:

https://github.com/vugi/mobile-webapp-test

Online-versio ohjelmasta on kaytettavissa osoitteessa:

http://vugi.github.com/mobile-webapp-test

30