Posts

React Native Architecture အကြောင်း

Image
React Native ကို၂၀၁၅ တုန်းက အောက်ပါ architecture idea နဲ့ အစပြုခဲ့ပါတယ်။ React ဆိုတာက UI တည်ဆောက်ဖို့အတွက် library ဖြစ်ပါတယ်။  Metro ဆိုတာက JavaScript နဲ့ရေးထားတဲ့ ဖိုင်တွေ (JavaScript modules) မှန်သမျှကို စုပေါင်းပြီး ဖိုင် တစ်ခုဖြစ်အောင် စုပေါင်းပေးတဲ့ bundler ဖြစ်ပါတယ်။ သူကနေ JS Bundle တစ်ခု ထွက်လာပါတယ်။  JS Thread မှာတော့ React Native ရဲ့ JavaScript Engine ဖြစ်တဲ့ JavaScriptCore က JS Bundle ကို run လိုက်ပါတယ်။ Run လိုက်တဲ့အခါမှာ JSON message တွေ ပို့ပေးပါတယ်။ Bridge ဆိုတာက C++ နဲ့ ရေးထားတဲ့ module တစ်ခုဖြစ်ပါတယ်။ async quene ကို အခြေခံပြီး တည်ဆောက်ထားတာဖြစ်ပါတယ်။ သူ့က JS Thread ကလာတဲ့ JSON message တွေကို နားထောင်တာ၊ ပြန်ပို့တာရယ်၊ UI Thread (a.k.a. Main Thread) ကလာတဲ့ JSON message တွေကို နားထောင်တာ၊ ပြန်ပို့တာတွေလုပ်ပေးပါတယ်။ Two way communication ဖြစ်ပါတယ်။  Native UI မှာ native platform က UI widget တွေ ပါပါတယ်။ Native Modules မှာတော့ native platform က API တွေ ပါပါတယ်။​ Bridge ကလာတဲ့ JSON message တွေအခြေခံပြီး C++ နဲ့ ရေးထားတဲ့ Yoga Layout Engine က Screen ပေါ်မှာ ပုံဖော်ပေးပါတယ်။