Starcut mobiiliapplikaatiot

Paras toteuttamistapa vaihtelee

Mobiilisovelluksia tehdään erilaisiin käyttötarkoituksiin, joten myös paras toteuttamistapa vaihtelee sen mukaisesti. Joissain tapauksissa tärkeintä on kehittämisen nopeus, toisissa taas erikoisominaisuudet, runsas animaation käyttö tai jatkokehityksen mahdollisuudet. Myös se, kuinka paljon laitealustan eri ominaisuuksia halutaan sovelluksessa hyödyntää, vaikuttaa asiaan. Sovelluksen kehittämiseen käytössä olevat resurssit vaihtelevat myös paljon. Isommalla yrityksellä on täysin erilainen budjetti sijoitettavanaan sovelluksen kehittämiseen, verrattuna esimerkiksi ensimmäistä sovellustaan tekevään startuppiin.

Sovellusten taso on toisaalta nykyään niin korkea, että käyttäjän ei pitäisi pystyä huomaamaan, käyttääkö hän yrityksen ensimmäistä sovellusta vai isomman firman kymmenettä sovellusta. Käyttäjäkokemuksen (UX) on oltava huipputasoa, jos haluaa sovellukselleen sitoutuneita käyttäjiä. Kun tarjontaa on paljon, käyttäjät valuvat nopeasti sen sovelluksen asiakkaaksi, jossa UX on intuitiivinen, selkeä ja käytännöllinen. Siksi kannattaakin mieluummin panostaa vähempään määrään erilaisia ominaisuuksia, mutta tehdä ne hyvin, kuin lisätä liuta epäolennaisia ominaisuuksia jotka tekevät käytöstä monimutkaista ja jäävät loppupeleissä käyttämättä. Keskittyminen siihen alkuperäiseen ideaan näkyy käyttäjän puolella, ja hyvin toteutettuna palkitsee pitkäikäisillä asiakkailla.

Eri menetelmät

Mobiilisovelluksen kehittämiseen on siis useita tapoja. Ensimmäinen on jokaiselle laitealustalle (iOS, Android, Windows Phone) erikseen rakennettu natiivisovellus. Tämä voi joskus olla hitaampi vaihtoehto, mutta ehdottomana hyötynä näillä on suorituskyky sekä helppo pääsy kaikkiin laitealustan tarjoamiin toimintoihin. Toinen vaihtoehto on tehdä HTML5-sovellus, joka paketoidaan sovelluskehykseen. HTML5-sovellukset toimivat eri alustojen laitteilla, joten kehittäminen on nopeampaa, mutta kaikkia laitteen toimintoja ei ole mahdollista samalla tavalla hyödyntää kuin natiivisovelluksilla.

Kolmas menetelmä on ns. “write once run everywhere” -alustat, kuten hyvin erilaiset React Native, Ionic, Flutter ja Xamarin. Näissä lopputulos on hyvin lähellä natiivisovelluksen käyttökokemusta ja kehittäminen on myös nopeampaa, mutta tietyt erikoisominaisuudet täytyy rakentaa natiivisovelluksen tapaan itse. React Nativella on tehty paljon näyttäviä sovelluksia, esimerkiksi Instagram. Tosiasiassa vain kehittäjät itse tietävät, kuinka paljon kustomointia alustakohtaisesti tarvitaan, jotta käyttäjäkokemus eri alustoilla on saatu nykyiselle tasolle. Täytyy myös muistaa, että Instagram-sovellus on React Nativen kehittäjän Facebookin itse kehittämä sovellus, joten resursseja kehittämiseen on varmasti ollut käytössä runsaasti.

Nämä kehitysalustat ovat myös harvoin lähelläkään 1.0 versiota, esimerkiksi React Native on tätä kirjoittaessa versiossa 0.50. Päivitykset eivät näissä ole välttämättä alaspäin yhteensopivia, ja sovellukset voivan rikkoutua kun käytetty alusta päivitetään. Suorituskyky ei myöskään ole samalla tasolla kuin natiiveilla sovelluksilla. Samaan suorituskykyyn päästäkseen raskaammat animaatiot, laskennat ja datan manipulaatio on Reactin kanssa työskennellessä suositeltavaa tehdä natiivipuolella. Tämä taas vähentää merkittävästi uudelleen käytettävän koodin määrää.

Mikä toimii parhaiten teille?

Kun halutaan tehdä nopeasti yksinkertaisia “kertakäyttösovelluksia” tai yrityksen sisäisessä käytössä olevia sovelluksia, nämä alustat toimivat hyvin. Tiedän muutamia suomalaisia isojen brändien WORE-alustoilla tehtyjä projekteja joissa lopputuloksena oli, että sovellukset olisivat todennäköisesti valmistuneet nopeammin ns. alustojen omilla kehitystyökaluilla. Myös jatkokehitys sekä ylläpito olisi tällä tavalla helpompaa. Tulevaisuudessa on myös mielenkiintoista nähdä, mitä erityisesti Googlen ajama PWA (progressive web apps) tuo tullessaan. Käytännössä kyseessä on web-sovellus, mutta se voi ajaa puhelimen käyttöjärjestelmän tausta-ajossa omaa koodia, mitä perinteinen web-sivu ei voi tehdä. Apple on vihdoin ilmoittanut, että tuki PWA:lle on “under development”, mutta tietoa ei ole, julkaistaanko tuki iOS 12 päivityksen yhteydessä vai myöhemmin.

Tapoja sovelluksien tekemiseen on monia. Natiivi on usein edelleen suositeltavin tapa, mutta meillä Starcutilla arvioimme aina käytettävän teknologian jokaisessa projektissa erikseen.