Mobiilisovellusta kehittäessä teknologian valinta on yksi oleellisimmista kysymyksistä joka tulee ratkaista heti kun sovellukselle asetetut tavoitteet ja tarpeet ovat tiedossa. Teknologian valinta vaikuttaa muun muassa projektin kokoon, kehittämiseen ja ylläpitoon tarvittaviin resursseihin sekä sovelluksen käyttäjäkokemukseen. Kyseessä on siis valinta jolla on vaikutuksia pitkälle koko applikaation elinkaareen.
Natiivisovelluksen ja PWA:n eli progressiivisen web-applikaation eroja käsittelimme edellisessä blogiartikkelissa. Perinteinen natiivisovelluskehitys tunnetaan melko työläänä tapana kehittää sovelluksia, sillä jokainen käyttöalusta vaatii oman natiivikoodinsa. Toisaalta vaikka PWA on monesti näppärä ja kevyt vaihtoehto natiiville, ei se tarjoa kaikkia natiivisovelluksen tarjoamia ominaisuuksia ja mahdollisuuksia.
Näiden kahden vaihtoehdon rinnalle on viime vuosina noussut vahvaksi vaihtoehdoksi sovellusten kehittäminen React Native -teknologialla. Meillä Sangrella React Native on lähtökohtaisesti aina teknologiavalinta silloin, kun tehdään natiivisovelluksia.
Miksi siis kannattaa valita juuri React Native mobiilisovelluksen teknologiaksi?
Mikä React Native tarkalleen ottaen on?
React Native on Facebookin kehittämä open-source viitekehys mobiilisovelluskehitykseen. React Native on Javascript-kirjaston natiiviversio joka pohjautuu React.js-viitekehykseen, mutta eroaa siinä, että sitä ohjelmoidaan web-ohjelmoinnin sijaan natiivisti. Viitekehys julkaistiin ensimmäisen kerran vuonna 2015, ja jo muutamassa vuodessa se on kerännyt laajan kehittäjäyhteisön ja markkinaosuuden. Lista React Nativella toteutetuista sovelluksista on pitkä, niistä tunnetuimpina mainittakoon tässä mm. Facebook, Instagram, Pinterest, Uber. Tänä päivänä React Native on yksi suosituimmista mobiilisovelluskehitykseen käytetyistä teknologioista ja se onkin monissa paikoissa korvannut perinteisen täysnatiiviohjelmoinnin lähes täysin.
Miksi valita React Native?
1. Helpompi ja nopeampi kehittäminen tarkoittaa enemmän arvoa projekti-investoinnille
Lähes poikkeuksetta mobiilisovellukset tulee toteuttaa kahdelle yleisimmälle mobiilialustalle: iOS ja Android. Perinteisessä natiiviohjelmoinnissa kummallekin alustalle täytyy kehittää oma sovelluksensa. React Native mahdollistaa sen, että sekä iOS- että Android-versiot sovelluksesta voidaan kehittää käyttäen pitkälti samaa JavaScript-codebasea. Kun voidaan rakentaa yksi sovellus kahden sijaan, ei tarvita erillisiä iOS- ja Android-tiimejä. React Nativella tehty sovellus vaatii vähemmän resursseja sekä kehittämiseen että ylläpitämiseen.
Vaikka React Native mahdollistaa lähestulkoon kaikki yleisimmät ominaisuudet, ei se ihan täysin korvaa natiivisovellusten tehoa. Jos sovelluksen ominaisuudet sitä vaativat, React Native mahdollistaa myös natiivikoodin upottamisen. On kuitenkin huomattavasti nopeampaa ohjelmoida ainoastaan tarvittavat osat täysin natiivina, kuin koko sovellus.
React Nativella kehittäminen on perinteiseen täysnatiiviin verrattuna helpompi ja nopeampi tapa kehittää mobiilisovelluksia ilman, että joudutaan tekemään kompromisseja suorituskyvystä. Nopeampi kehittäminen tietenkin tarkoittaa enemmän arvoa rahalle mitä tulee projekti-investointiin.
2. Sujuva käyttäjäkokemus sitouttaa käyttäjät sovellukseen
Käyttäjälle olennaista on se, että valmis mobiilisovellus toimii nopeasti ja virheettömästi. React Nativella toteutetut sovellukset toimivat käytännössä yhtä saumattomasti kuin täysnatiivisovellukset. Toteutuksessa se tarkoittaa sitä, että sovelluksen suorituskyky ei aseta tarpeettomia rajoitteita suunnittelulle. Käyttäjille se tarkoittaa erinomaista käytettävyyttä: nopeaa latautumista, saumattomia scrollausefektejä, toimivia näppäintoimintoja ja animaatiota.
Hyvä käyttökokemus on olennaista jotta käyttäjät sitoutuvat sovellukseen ja brändiin joka sen tarjoaa, ja jotta sovelluksen käytöstä tulee tapa. Siten hyvä käyttäjäkokemus luo arvoa liiketoiminnalle.
3. Laaja kehittäjäyhteisön tuki pienentää riskiä teknologian vanhenemisesta
Teknologiavalintaa tehdessä on olennaista arvioida teknologian jatkuvuutta ja hallita riskiä siitä, että teknologia jossain vaiheessa vanhentuu. React Native on Facebookin kehittämä ja ylläpitämä teknologia. Vaikka toki on olemassa se riski että React Nativen tuki jossain vaiheessa loppuisi, on se hyvin epätodennäköistä, sillä Facebook ja kehittäjäyhteisö parantavat teknologiaa jatkuvasti.
React Native pohjautuu React.js:ään eli JavaScript-ohjelmointikieleen, joka on yksi laajimmiten käytetyistä ohjelmointikielistä maailmassa. Kehittäjälle jolla on JavaScript-ohjelmointikokemusta React Native on helppo oppia. Koska se on myös miellyttävä ja nopea koodata, React Native -kehittäjäyhteisö on alati laajenemassa.
Laajasta kehittäjäyhteisöstä on helppo löytää React Native -osaajia ja ongelmatilanteisiin myös löytyy muilta kehittäjiltä helposti osaavaa tukea. Tämä yhdistettynä kasvavaan markkinaosuuteen tarkoittaa sitä, että tuskin näemme React Nativen voittokulun loppua lähivuosina.