React Native menggunakan arsitektur baru yang terdiri dari empat komponen utama: JSI (JavaScript Interface), Fabric, TurboModules, dan Yoga. Arsitektur ini dirancang untuk meningkatkan kinerja, interoperabilitas lintas platform, dan kemampuan kontrol langsung terhadap UI native.
Contoh Analogi: Bayangkan JSI sebagai penerjemah bilingual yang memungkinkan JavaScript dan C++ berkomunikasi langsung tanpa melalui “pos penerjemahan” (bridge lama) yang lambat.
JavaScript Interface (JSI)
JSI adalah lapisan komunikasi yang memungkinkan:
Referensi memori langsung antara JavaScript dan C++
Pemanggilan metode tanpa serialisasi data
Kontrol dua arah: JavaScript bisa memanggil fungsi C++ dan sebaliknya
Contoh Teknis: Saat komponen React membutuhkan akses ke sensor perangkat, JSI memungkinkan pemanggilan langsung ke API native tanpa melalui bridge JSON yang lambat. Ini mengurangi latency hingga 60% dibanding arsitektur lama.
Fabric Renderer
Fabric adalah sistem rendering baru dengan karakteristik:
Unifikasi logika rendering dalam C++ untuk konsistensi lintas platform
Kontrol langsung UI native melalui JSI
Prioritaskan UI thread untuk pengalaman pengguna lebih responsif
Kasus Nyata: Pada aplikasi SpaceX Starlink, Fabric memungkinkan render peta jaringan satelit 3D secara real-time tanpa mengorbankan performa UI utama.
Yoga Layout Engine
Yoga bertanggung jawab untuk:
Menghitung layout menggunakan subset CSS Flexbox
Konsistensi posisi UI antar platform (Android/iOS)
Integrasi dengan Fabric untuk update layout lebih efisien
Contoh Implementasi: Saat mengembangkan komponen kartu responsif, Yoga secara otomatis menyesuaikan padding dan margin berdasarkan ukuran layar perangkat.
Rendering Pipeline (Render-Commit-Mount)
Proses render terdiri dari tiga fase:
Render - Membuat pohon elemen UI baru di JavaScript
Commit - Membandingkan perubahan dengan pohon sebelumnya (diffing)
Mount - Memperbarui UI native melalui Fabric dan JSI
Analogi: Seperti proses produksi pabrik:
Render = Desain blueprint
Commit = Quality control
Mount = Assembly produk final
View Flattening Optimization
Teknik optimasi untuk:
Mengurangi hierarki view yang tidak perlu
Menggabungkan style dari komponen anak ke parent
Meningkatkan performa layout hingga 40% pada UI kompleks
<View> // Parent dengan merged styles
... // Konten langsung di parent
</View>
Summary
Arsitektur React Native modern menggunakan JSI untuk komunikasi JavaScript-C++ yang lebih cepat, menggantikan bridge lama. Fabric sebagai renderer baru memungkinkan kontrol langsung UI native dengan unifikasi logika di C++. Yoga menangani layout konsisten lintas platform menggunakan Flexbox. Proses rendering pipeline (Render-Commit-Mount) memastikan update UI efisien, didukung optimasi View Flattening untuk mengurangi kompleksitas hierarki tampilan. Kinerja aplikasi meningkat signifikan terutama pada UI kompleks dan interaksi real-time.
Additional Information
Analisis Teknis JSI
Implementasi JSI menggunakan teknik in-memory reference sharing: