Skip to main content
29. júní 2018

Appvæðing er native react málið ?

AgustValgeirssonFlest hugbúnaðarfyrirtæki hafa fundið þann þrýsting sem notendur ýmissa kerfa gera í dag um að það sé „app“ með þeim hugbúnaði sem verið er að nota og telja það vera forsenda þess að viðkomandi kerfi sé vel nothæft.  Sú tæknilega leið sem æ fleiri eru að nýta sér er React Native frá Facebook.

Valkostir í „app“ forritun hafa aðallega fram til þessa verið „native“ forrit, þar sem forrita þarf sérlausn fyrir hvert stýrikerfi, en í dag eru tvö ráðandi Android og iOS.  Til að forrita native fyrir Android er nauðsynlegt að kunna góð skil a Java eða Kotlin, en í iOS er það Objective-C eða Swift sem eru ráðandi. Þekking á Android forritun nýtist lítið í iOS forritun og öfugt.  Annað sem native forritun kemur er sú staðreynd að það þarf í raun að forrita sama kerfið tvisvar, með tilheyrandi kostnaði og flækjustigi í viðhaldi og þróun.

React Native kom fram fyrir ca. 3 árum og er lausn sem leyfir að búa til eina lausn sem keyrir bæði á iOS og Android.  Byggir aðallega á JavaScript og því þarf ekki að sökkva sér í sérþekkingu á hvernig iOS eða Android nýta sér viðmót eða aðra staðlaða þætti sem þarf í flestum öppum.  Þetta hljómar eins og draumalausn fyrir þá sem þurfa að búa til öpp fyrir sínar vörur. En hver er þá munurinn á að nýta sér React Native eða forrita beint á móti hverju stýrikerfi fyrir sig.

Helstu kostir „native“ forritunar:

  • Hefur fullan aðgang að API lagi stýrikerfisins, sem býður upp að nýta sér til fulls séreiginleika hvers stýrikerfis að fullu. Android er með möguleika sem iOS er ekki með og öfugt, og því leyfir þessi aðgangur að API að nýta sér til hins ýtrasta kosti og möguleika hvers stýrikerfis, til að hámarka notendaupplifun.
  • Þar sem þetta er unnið í hefðbundnum forritunarmálum þá er kóðinn oftast með meiri strúktur og villugreining er oft auðveldari
  • Mikið úrval af allskyns lausnum („third party solutions“) sem eru víða notuð og einfalda til muna ýmsa virkni í appinu
  • Aðgangur að allri viðmótsvirkni ss. aðgangsmálum, „transitions“ á milli skjáa eða kerfa
  • Hægt að þróa sérlausnir fyrir hvert stýrikerfi í sjálfstæðu ferli

Gallar „native“ forritunar eru líka til staðar:

  • Kallar á mjög sérhæfða þekking á hverju stýrikerfi fyrir sig
  • Í raun tvöfalt umfang í þróun og rekstri og því dýrara

En hvað með React Native hvað eru kostir þar:

  • Einn kóði fyrir bæði stýrikerfin
  • Einfalt fyrir forritara sem hafa unnið javascript hugbúnaðargerð að færa sig yfir í React Native
  • Er open source lausn þannig að hægt er að skoða grunnkóðann til að skilja betur hvernig virkni er gerð
  • Einfaldari viðmótsgerð en í „native“ forriti
  • Einföld útgáfu og prófunarferli

Og helstu gallar eru:

  • Native React er í hraðri þróun og það getur valdið vandamálum ef ný útgáfa styður ekki lengur eitthvað úr fyrri útgáfum
  • Keyrir hægar en „native“ öpp og notar oft meiri auðlindir í snjalltækinu
  • Ef þörf er á flóknum aðgerðum sem byggja á innbyggðum öppum, þá getur það kallað á forritun á sér iOS einingum og sér Android einingum, sem geta kallað á mikla sérþekkingu á þeim stýrikerfum

Í nýlegri grein á codeburst.io ( https://codeburst.io/react-native-vs-real-native-apps-ad890986f1f) var gerður samanburður á afköstum á appi forritað í React Native og Swift sem er með fjórar aðgerðir:

  • Auðkenning með Facebook
  • Kort (maps)
  • Listi (to do list)
  • Síðusýn (page view controller)

Helstu niðurstöður voru þessar:

CPU notkun:

Mesti munur er í Page view og Maps, en þar nýtir Swift sér sinn aðgang að API símans á meðan React Native þarf að gera fleiri aðgerðir til að framkalla virknina.  Þetta er almennt í React Native að samskipti við innbyggð öpp taka fleiri CPU aðgerðir.

GPU notkun:

GPU notkun er mjög svipuð, Swift betra í sumu en React Native í öðru, hér skín í gegn hvað React Native hefur lagt áherslu á að gera vel.

Minnisnotkun:

Minnisnotkun er mjög svipuð nema í Maps en þar er React Native með mun minni notkun. Almennt mun Swift nota meira minni en React Native, en ef appið vex í flækjustigi mun þessi munur minnka.

Niðurstaðan virðist almennt vera sú að ef þú þarft ekki að gera mjög flókið app þá er React Native betra val, fljótara og einfaldara. Ef þú þarf að gera app sem á að nýta sér til fulls alla möguleika stýrikerfisins og að notendaupplifun verði næstum eins og í þeim öppum sem eru hluti af stýrikerfinu þá er líklega betra að nota „native“ app.

Höf: Ágúst Valgeirsson, forstöðumaður rafrænna viðskipta hjá Advania

Skoðað: 1722 sinnum

Blaðið Tölvumál

Forsíða Tölvumála

Leita í vefútgáfu Tölvumála

Um Tölvumál

Tölvumál - tímarit Skýrslutæknifélags Íslands er óháð tímarit um tölvutækni og hefur verið gefið út frá árinu 1976.

Vefútgáfa Tölvumála birtir vikulega nýja grein á vef Ský og árlega er gefið út veglegt prentað tímarit undir nafninu "Tölvumál" þar sem fjallað er um tölvutækni frá ýmsum sjónarhornum og er þema blaðsins jafnan valið snemma árs og útgáfa að hausti.

Ritnefnd Ský sér um að afla efni í Tölvumál og geta allir sem áhuga hafa sent inn efni.

Um ritnefnd Tölvumála