React Native – Tehokkaampaa mobiilikehitystä

20.6.2018 12:00

Mikä React Native oikein on?

Perinteisesti mobiilisovellusten kehitys ja toteutus on jouduttu jakamaan erikseen iOS- ja Android-alustoille. Tämä tarkoittaa käytännössä sitä, että sovellus joudutaan toteuttamaan kahdesti ja sovelluskehitykseen kuluva aika sekä kehityskustannukset nousevat huomattavasti. Ei kuulosta kovin tehokkaalta ainakaan minun mielestäni. Miksi kirjoittaa koodi toistamiseen, jos sen voi kirjoittaa vain kerran?

React Native on Facebookin kehittämä ja ylläpitämä viitekehys eli niin sanottu framework, jonka avulla on mahdollista kehittää mobiilisovelluksia iOS- ja Android-alustoille samasta lähdekoodista. Sovelluksen lähdekoodi täytyy siis kirjoittaa vain kerran, jonka jälkeen se eriytetään iOS- ja Android-alustoille. Tähän kuluu huomattavasti vähemmän aikaa kuin ohjelmakoodien kirjoittamiseen erikseen molemmille alustoille. Sovellusta ei siis tarvitse enää kirjoittaa kahta kertaa. React Nativella toteutettu mobiilisovellus laskee kehitykseen kuluvaa aikaa huomattavasti ja täten laskee projektien kokonaiskustannuksia aidosti natiiveja mobiilisovelluksia tuotettaessa. Natiivi mobiilisovellus tarkoittaa siis sovellusta, joka on kehitetty käyttäen alustakohtaisia kehitystyökaluja ja ohjelmointikieliä (Androidille Java ja Applelle Objective C tai Swift).

React Nativea käyttävät muun muassa Facebook, Instagram, Tesla, Uber, Skype, Wix sekä monet muut yritysjättiläiset. Pelkästään tämä kertoo, että teknologia on todettu toimivaksi laajoihin ja vaativiin sovellusprojekteihin, joissa ei ole varaa virheisiin tai heikkoon suorituskykyyn.


Miksi React Native on hyvä alusta mobiilikehitykselle?

React Nativen suurin hyöty lieneekin sen tuomat säästöt ajassa ja kustannuksissa aidosti natiivia mobiilisovellusta kehitettäessä. Tämän vuoksi se on hyvä ellei jopa erinomainen alusta, kun halutaan tehostaa mobiilisovellusten tuotantoa. Sovelluskehitys voidaan toteuttaa lähes kokonaan käyttäen yhtä ohjelmointikieltä (Javascript), eikä sovelluskehitykseen tarvita erikseen iOS- ja Android-kehittäjiä.

React Native taipuu lähes kaikkiin käyttötapauksiin ja se on miltein yhtä tehokas kuin erillisten mobiilialustojen omilla kehitystyökaluilla toteutetut sovellukset. Frameworkin käyttö ei rajoita sovelluskehitystä, sillä se mahdollistaa samojen ominaisuuksien implementoinnin kuin alustakohtaiset kehitystyökalut. React Nativella tehdyllä sovelluksella on mahdollista lähettää esimerkiksi push-notifikaatioita tai käyttää kameraa ja sijaintipalveluita aivan kuten Apple- tai Android-laitteille eksklusiivisesti kehitetyillä mobiilisovelluksilla. Tietyt monimutkaisemmat natiiviominaisuudet saattavat olla hankalia toteuttaa, mutta React Native mahdollistaa myös alustakohtaisen lähdekoodin implementoinnin monimutkaisen tai kustomoidun toiminnallisuuden saavuttamiseksi.


Hyödyt ja heikkoudet

Onko tässä viitekehyksessä jotain muutakin hyvää kuin perinteisiä menetelmiä nopeampi sovelluskehitys ja sen mukana tulevat säästöt? Löytyykö React Nativesta sitten mitään negatiivisia puolia, vai onko se täysin virheetön ja ylivertainen muihin teknologioihin ja viitekehyksiin nähden? Seuraaviin kysymyksiin löydät vastaukset alla olevasta listasta React Nativen vahvuuksista ja tietysti muutamista heikkouksista, sillä mikään framework ei voi olla täydellinen.

Hyödyt

  • Nopea sovelluskehitys ja säästöt kustannuksissa.
  • Suurin osa kehityksestä tapahtuu yhdellä ohjelmointikielellä (Javascript).
  • Vaatii vähemmän sovelluskehittäjiä.
  • Yhtenäisyys alustojen välillä, johtuen samasta koodipohjasta ja arkkitehtuurista.
  • Laajasti käytetty ja Facebookin ylläpitämä. Jatkokehitystä ja ylläpitoa tuskin siis lopetetaan ainakaan lähitulevaisuudessa.

Heikkoudet

  • Ei ihan yhtä tehokas kuin iOS:n ja Androidin omilla kehitystyökaluilla kehitetyt natiivisovellukset. Tehokkuuserot ovat kuitenkin niin mitättömiä, ettei niitä tarvitse huomioida tavallista mobiilisovellusta kehittäessä.
  • Tietyt monimutkaisemmat natiiviominaisuudet vaativat alustakohtaisten kehitystyökalujen ja ohjelmointikielten käyttöä.
  • Hyvin monimutkaiset käyttöliittymät vaikeampia toteuttaa kuin alustakohtaisilla kehitystyökaluilla.
  • Vaatii kehittäjiltä hieman iOS- ja Android-osaamista.

Yhteenveto

React Native on oiva alusta mobiilisovellusten kehittämiseen, kun tarkoituksena on luoda nopea, tehokas, yhtenäinen ja aidosti natiivi mobiilisovellus iOS- ja Android-alustoille. React Native laskee myös sovelluskehitykseen kuluvaa aikaa ja täten myös asiakasprojektien kokonaiskustannuksia, mikä tekee siitä erinomaisen alustan mobiilisovellusten kehittämiseen. Henkilökohtainen mielipiteeni on se, että React Native ja vastaavat teknologiat ovat ja tulevat olemaan tulevaisuuden tapa tuottaa natiiveja mobiilisovelluksia.

Lue lisää aiheesta: https://www.hurja.fi/ohjelmistokehitys/mobiilisovellukset