React Nativella nopeutta tuotekehitykseen

Facebookin kehittämä React Native on päässyt puolentoista vuoden ikään. Kyseistä teknologiaa on myös meillä päästy hyvin tekemään, joten ajattelin koota ajatukset yhteen. Hyvät ja huonot puolet sekä miten yrityksen voivat hyötyä React Nativesta. Itse en ole React Native -ammattilainen, mutta onneksi löytyy RN:n hyvin tuntevia kollegoja!

Lyhyesti ja teknisesti, React Native on framework, jonka avulla voidaan kirjoittaa HTML/CSS/JavaScript-stäkillä mobiilisovelluksia, jotka käännetään eri alustoille natiivikomponentteja käyttäviksi sovelluksiksi.

Aloitetaan tämä RN-sarja hyvistä puolista, koska parempi aina katsoa ensin mahdollisuuksia!

Hyöty #1: Kehittämisen nopeus

Ajatellaan, että ollaan tekemässä natiiviapplikaatioita iOS- ja Android-alustoille. Vaihtoehtoina on joko kirjoittaa molemmille natiivi toteutus ( = koodata kahteen kertaan) tai sitten voidaan käyttää mobiilikehitysframeworkia, jossa koodista voidaan hyödyntää suurin osa eri alustoille. Tälläisia ovat mm. Apache Cordova, Xamarin ja React Native.

React Nativen tapauksessa tuetut alustat ovat iOS- ja Android. Tuki Windows UWP:lle on tulossa. Joka tapauksessa, kahteen kertaan koodaaminen on enemmän työtä kuin koodaaminen 1.2 kertaan.

Hyöty #2: Natiivi käyttökokemus

Olemme aikaisemmin tehneet Apache Cordovalla ns. hybridiapplikaatioita. Näissä tapauksissa käyttöliittymä tehdään HTML:n avulla ja sovellus paketoidaan Cordovaa hyödyntäen eri alustoille. Miinuksena on käyttökokemus, joka ei vastaa alustan omaa look&feeliä.

React Nativen pihvi on natiivien komponenttien käyttö, jolloin käyttökokemus on alustan mukainen. React Nativella ei kirjoiteta HTML-koodia, mutta JSX-syntaksi muistuttaa kylläkin HTML:ää. Alustakohtaisesti voidaan määritellä mitä natiivia komponenttia käytetään.

Hyöty #3: Tutut työkalut web-kehittäjille
Otetaan esimerkkinä yritys, joka haluaa kehittää tuotteelleen/palvelulleen verkkosivut ja mobiilisovelluksen. Perinteisesti on käytetty web-kehittäjiä (HTML/CSS/JavaScript) verkkosivujen tekemiseen ja mobiilikehittäjiä (Object-C, Java) mobiilisovelluksen tekoon.

React Nativen näkökulmasta verkkosivut voitaisiin tehdä Reactilla (myös Facebookin kehittämä) ja mobiilisovellus React Nativella. Kehittäjät voivat molemmissa tapauksissa käyttää JavaScriptiä ja jopa käyttää osan koodista uudelleen.

Miten React Nativea voi hyödyntää tuotekehityksessä?

Omasta mielestäni React Native tarjoaa hienon mahdollisuuden kehittää nopeasti kuluttajatason MVP-sovelluksia. Cordovalla olemme päässeet käyttökokemuksessa ns. B2B-tasolle, mutta React Native avaa ovet isommille kuluttajamarkkinoille nimenomaan natiivin käyttökokemuksen ansiosta.

Omat kehittäjämme ovat tehneet React Nativen avulla päivässä protosovelluksia, joilla olemme voineet konkretisoida ajatuksia. Kun vielä proto tehdään ensiksi Android-alustalle, jossa proton asentaminen ja jakelu on paljon iOS:ia helpompaa, niin pääsemme todella kovaan vauhtiin ideoiden validoinnin kanssa.

Ah, loistavia mahdollisuuksia! Entäpä kolikon toinen puoli? Siitä lisää sarjan toisessa osassa.

Jos kiinnostuit React Nativesta ja haluat kuulla lisää, niin ota yhteyttä harri.lammi@leonidasoy.fi.

PÄIVITYS 2.6.2016: React Native for Windows UWP on tulossa: https://blogs.windows.com/buildingapps/2016/04/13/react-native-on-the-universal-windows-platform. Kiitos Janne Koskiselle tiedosta!

Harri Lammi

I’m interested in the possibilities of the modern web. The speed of development and massive opportunities are breathtaking. I enjoy the results every day - great services, tons of free information, connections with other people. It’s fascinating to live in this era of digitalization. On the other hand I see a lot of potential there’s yet to be tapped. Enterprises should streamline their services by bringing together backend systems and great user experience. If there's a business idea that needs to fly or a pain waiting to be cured, let's work together!