2021 yilinda React Native dunyasinda neler olacak ?

Tayfun YUGRUK
Kod42 Akademi
Published in
3 min readJan 24, 2021

Merhaba arkadaslar, 2021 yili buyuk bir aksilik olmazsa React Native icin onemli bir yil olacak ! Alt yapisal olarak buyuk degisimler gorecek ve daha performansli calisacak. Heyecanli bir yil olacak dogrusu ve baygin 2020 yilindan sonra hak etmistik bunu !

Onden bilgilendireyim bu yazidaki anlatimlarimi video olarak da bulabilirsiniz kanalimda :

Peki neler olacak ? Once anahtar kelimelere bakalim sonra detaylarina girelim

  • JSI
  • Fabric rendering alt yapisi
  • Turbo Modules
  • Hermes JS Engine

JSI

Su anda bir React Native uygulamasinda Javascript tarafindan native tarafina bridge uzerinden gonderilen veriler JSON string olarak gonderiliyor. Cok buyuk verileri gondermek istersek, Javascript tarafindan native tarafa JSON string gondermek ve bu JSON string’in native tarafta parse edilmesi uzun surdugu icin performans sorunlari olusuyor.

React Native uygulamasi derinlemesine yapisi

JSI ile Javascript kodlarimizdan direkt olarak native taraftaki kodlari execute edebilecegiz. Yani JSON string gonderip native tarafin parse edip islem yapmasi seklinde olusan yuk ortadan kalkacak ! JSI sayesinde cok buyuk verileri gondermemize gerek kalmayacak ( Fabric alt yapisi bu degisimden yararlaniyor )
JSI daha cok kutuphane gelistiricileri icin faydali olacak ve daha performansli kutuphaneler gelistirilebilecek.

Fabric rendering alt yapisi

Su anki yapida render su sira ile gerceklesiyor :

  • React -> React Shadow Tree -> Native UI

Fabric yapisinda su sekilde gerceklesecek :

  • React -> Native -> Shadow Tree (C++) -> Native UI

FabricShadow Tree” yani UI degisen view parcalarinin takibini yapan yapiyi C++ kullanarak native tarafa tasiyor. ( Tabi bunu desteklemek icin React 17 concurrent rendering ozelligi kullaniliyor )
Render agirlikli kararlarin C++ tarafina tasinmasi sayesinde daha akici bir rendering gerceklesecek ve uygulamalarimiz daha performansli hale gelecekler.

Turbo Modules

Native moduller su anki yapida acilista register ediliyor ve init ediliyorlar yani app acilirken kullanilmasalar bile init ediliyorlar.
Turbo Modules ile Javascript tarafinda gerektigi zaman load edilip init edilecekler. Bu sayede acilista en temel init islemleri gerceklesecek ve app’in acilisini 1 kac saniye geciktirebilen modul init islemleri app acilisi sonrasina kaydirilmis olacak ve dogal olarak acilis daha hizli gerceklesecek 1sn bile bir app’in begenilirligini kat kat arttirabilmektedir gunumuzde !
Bonus olarak hic kullanilmayan ozelliklere ait moduller kullanilmadigi surece yuklenmeyecegi icin memory acisindan kazanc saglamis olacagiz.

Hermes Javascript Motoru

Hermes Javascript Motoru zaten Android tarafinda aktif sekilde kullanilmakta ve aslinda 2021 yili icin bir yenilik degil fakat Aralik ayi icinde bir surpriz yapti ve iOS tarafinda da calisabilecegi aciklandi yani artik uygulamalarimiz hem iOS hem de Android tarafinda ayni Hermes Javascript motoru ile calisabilecek ! Bu temel olarak gelistirme yapis seklimize etki eden bir durum degil fakat Javascript motoru tarafinda React/React Native kendisinin ihtiyac duydugu optimizasyonlara erisebilecek ve daha performansli React Native uygulamalari yazmamiz gundeme gelecek !

Herkese bol performansli bir 2021 yili dilerim !

--

--