Juha Riippi

Juha Riippi

TwitterLinkedIn

Mobiilipalvelu voidaan toteuttaa useilla eri tavoilla. Karkea jako voidaan tehdä sen perusteella, käytetäänkö alustan omia sovelluskehitystyökaluja vai valitaanko toteutustavaksi HTML5-pohjainen teknologia. Lisämausteen soppaan antavat hybridisovellukset, jotka ovat yhdistelmä kahdesta edellämainitusta. Yleispäteviä sääntöjä HTML5 vs. natiivi -keskusteluun ei voi tehdä, vaan valinta täytyy arvioida erikseen jokaiselle projektille.

HTML5 mobiilisivusto

HTML5-pohjainen mobiilisivusto tarkoittaa mobiililaitteille optimoitua verkkosivustoa. Mobiiliverkkosivu voidaan toteuttaa joko responsiivisella suunnittelulla tai rakentamalla erikseen mobiililaitteille optimoitu verkkosivu. Responsiivinen suunnittelu tarkoittaa sivun toteuttamista siten, että se toimii sekä työpöytäselaimilla että mobiiliselaimilla.

  • Mobiilisivusto tavoittaa 100% älypuhelinkäyttäjistä

    • Hyvin tehty mobiilisivusto toimii käytännössä kaikissa uusissa mobiililaitteissa. Kuten aina web-kehityksessä, joudutaan tekemään rajanvetoja siitä, kuinka vanhoja selaimia halutaan tukea. Vanhempien selainten tukeminen aiheuttaa lisätyötä, jolloin kustannukset nousevat.

  • Kehityskustannukset

    • Karkeasti jakaen yhden mobiilisivuston hinnalla toteuttaa yhden natiivisovelluksen. Mutta yksi mobiilisivusto voi palvella kerralla vaikka kaikkia alustoja. Sen sijaan usean alustan tukeminen natiivisovelluksina edellyttää jokaiselle alustalle oman sovelluksen tekemistä, joka nostaa kustannuksia.

  • Käyttöliittymän kompromissit

    • Jos mobiilisivustolla lähdetään tavoittelemaan natiivisovelluksen tapaista käyttöliittymää, mennään metsään. Sivustosta tulee helposti todella raskas ja tahmea käyttää jopa uusimmilla mobiililaitteilla nopeidenkin verkkoyhteyksien takaa. Hyvällä responsiivisella suunnittelulla ja mahdollisesti mobiililaitteille optimoiduilla sivulatauksilla päästään paljon parempiin tuloksiin.

  • Kaikki alustan ominaisuudet eivät käytössä

    • Tuki mobiililaitteen ominaisuuksien hyödyntämiseen HTML5 avulla paranee koko ajan, mutta silti kaikkea ei voida mobiilisivuston puolelta tehdä (esimerkiksi push-notifikaatiot).

  • Välitön päivitettävyys

    • Päivityksien tekeminen mobiilisivustolle on helppoa ja päivitykset tulevat välittömästi käyttöön kaikille mobiilisivuston käyttäjille.

Natiivisovellus

Natiivisovellus tarkoittaa alustan omalla kehitysympäristöllä ja ohjelmointikielellä toteutettua sovellusta. Esimerkkinä Objective-C:llä tehty Applen kehitysympäristöä käyttävä sovellus iPhonelle.

  • Kaikki alustan tarjoamat ominaisuudet käytössä

    • Natiivikoodissa on helppoa ottaa käyttöön kaikki hienoudet, joihin alusta pystyy. Tärkeimpinä Push notifikaatiot, puhelimen kontaktien hyödyntäminen ja 3D-kiihdytetty grafiikka.

  • Käyttöliittymän sujuvuus

    • Sujuvin ja viiveettömin käyttöliittymä saadaan natiivilla koodilla. Lisäksi alustan omia käyttöliittymäkomponentteja käyttämällä sovellus on heti käyttäjälleen tutun näköinen.

  • Offline

    • Natiivisovellus ei lähtökohtaisesti vaadi verkkoyhteyttä. Tietoa voidaan tallentaa tarvittaessa sovelluksen välimuistiin tai paikalliseen tietokantaan, jolloin tavallisesti verkkoyhteyden päässä oleva tieto on käytettävissä sovelluksessa.

  • Kehityskustannukset

    • Tällä hetkellä maailmalla on kaksi alustaa ylitse muiden: Android ja iOS. Jos siis haluat natiivisovelluksesi tavoittavan suuren osan käyttäjistä, joudut toteuttamaan sovelluksen ainakin näille alustoille. Suomen markkinoiden erikoisuus on Windows Phone laitteiden suhteellisen suuri määrä. Mikäli Suomessa haluaa tavoittaa lähes 100% älypuhelimen käyttäjistä, joutuu natiivisovelluksen toteuttamaan myös kolmannelle alustalle. Natiivitoteutuksessa on viisainta lähteä liikkeelle yhdellä alustalla, jonka toteutuksen aikana opitut asiat voidaan hyödyntää muiden versioiden kanssa.

  • Sisällön myyminen

    • Mobiilikaupoissa on suora kanava palvelun kaupallistamiseen. Sovelluksia voi myydä käyttäjille ja sovellusten sisälle on helppo rakentaa rahalla ostettavaa lisäsisältöä.

Hybridisovellus

Hybridisovellus tarkoittaa HTML5-lähdekoodin ja natiivikoodin yhdistelmää. Useimmiten tämä toteutetaan siten, että käyttöliittymä tai osia siitä tehdään HTML5-tekniikalla. Käytännössä sovelluksen sisälle luodaan oma selain, eli nk. webview, jossa HTML5-sisältö näytetään. Sisältö voi olla joko paikallista tai verkon yli ladattavaa HTML5-koodia. Koodin paketoimiseen sovelluksen sisälle on tarjolla myös tehtävää helpottavia työkaluja. Näistä tunnetuin lienee PhoneGap.

Hyvin toteutettu hybridisovellus voi parhaimmillaan olla yhdistelmä natiivisovelluksen ja mobiilisivuston hyvistä puolista. Tällöin kehityskustannukset per alusta painuvat pienemmiksi kuin natiivisovelluksissa, ja sovellus mahdollistaa silti pääsyn alustan hienouksiin sekä tarjoaa hyvän käyttäjäkokemuksen. Valitettavasti hybridisovellusten maine on kärsinyt lukuisista puolivillaisesti toteutetuista sovelluksista, joissa käyttöliittymä on tahmea, dataliikennettä ei ole optimoitu, sovellus on täynnä viiveitä eikä hyödynnä hybridin tarjoamia mahdollisuuksia alustan ominaisuuksien hyödyntämiseen.

Hybridisovellusta toteutettaessa onkin tarkkaan mietittävä mitkä osat käyttöliittymästä kannattaa toteuttaa HTML5-tekniikalla, ja ennen kaikkea mitä etuja saavutetaan toteuttamalla osa sovelluksesta natiivisti. Aivan liian usein syyksi mainitaan vain sovelluksen saaminen alustan omaan sovelluskauppaan, eikä pysähdytä miettimään mitä uutta hybridisovellus tarjoaa nykyisiin webbisivuihin nähden.

Onko neuvoja?

Jos itse lähtisin toteuttamaan palveluni mobiiliversiota, aloittaisin pohtimalla mitä lisäarvoa käytettävyys mobiililaitteilla tuo käyttäjilleni. Jos vastaus on, että haluan verkossa olevan toiminnallisuuden olevan siistissä ja käytettävässä muodossa mobiilikäyttäjille, paras valinta on varmasti mobiilisivusto. Mikäli listalle nousee selkeästi käyttäjälle lisäarvoa tuovia ideoita, joiden toteuttaminen on mobiilisivustolla vaikeaa tai käytettävyys kärsisi webissä liikaa, harkitsisin joko natiivi- tai hybridisovelluksen toteuttamista. Lisäksi kustannuksia laskiessa kannattaa ottaa huomioon nykyisen palvelun rajoitukset; esimerkiksi tarjoaako nykyinen backend tarvittavat rajapinnat mobiilisovellukselle, vai joudutaanko ne rakentamaan?

Vincitillä olemme usein toteuttaneet asiakkaalle kohdemarkkinan näkökulmasta tärkeimmälle alustalle natiivisovelluksen, ja muita alustoja on palveltu hyvin toteutetulla mobiilisivustolla.

Tykkäsitkö artikkelista?

Anna pienet aplodit!

Kommentit

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *