Artikel ini ditulis berkat kolaborasi dengan Andrea FerrandoVitalii Topoliuk, Software Engineer di Meta, dan Sean Keegan, Developer Advocate di Meta.
Untuk wawancara hari ini, kami menghadirkan Vitalii Topoliuk, Software Engineer untuk tim Aplikasi Desktop Messenger di Meta. Tim Vitalii menggarap Messenger versi desktop, yang memungkinkan Anda untuk mengirim pesan teks, menelepon, dan tetap terhubung–langsung dari komputer Anda.
Nama saya Vitalii Topoliuk dan saya seorang Software Engineer untuk tim Aplikasi Desktop Messenger. Kami telah mengembangkan versi Windows dan macOS dari Aplikasi Messenger selama tiga tahun terakhir–dua tahun terakhir kami menggunakan React Native.
Aplikasi kami didukung oleh kerangka kerja React Native.
Desktop Messenger dan proyek turunan: Work Chat untuk Desktop, Workroom untuk Desktop.
Aplikasi kami dibuat di atas kerangka kerja Electron yang memberi kami dorongan awal yang sangat baik. Sayangnya, kami mencapai kapasitas Electron cukup cepat dan harus berinvestasi banyak untuk memenuhi persyaratan Kinerja, Keandalan, dan Efisiensi (PRE). Selain itu, fitur aplikasi kami dibatasi oleh Electron.
Dengan bertransisi ke React Native, kami memecahkan beberapa masalah PRE dan meningkatkan pengalaman developer secara signifikan. React Native memungkinkan kami menggunakan kembali 80% basis kode kami dan meningkatkan banyak metrik PRE. Di bawah ini adalah beberapa peningkatan yang kami capai hanya dengan berpindah ke React Native untuk aplikasi, tanpa investasi tambahan apa pun di PRE versus aplikasi Electron yang sudah ada yang kami fokuskan pada peningkatan PRE selama tiga bulan:
Jangkauan Crash: -60%
Tingkat Keberhasilan Cold Start: 97% (88% untuk Electron)
Latensi Cold Start P90: -50%
Ukuran Biner: -80%
Jangkauan Crash: -59%
Tingkat Keberhasilan Cold Start: 99% (95% untuk Electron)
Latensi Cold Start P90: -60%
Ukuran Biner: -70%
Ya, di Meta, kami mendapat kesempatan untuk menunjukkan kepada komunitas bahwa React Native dapat digunakan untuk membuat aplikasi lintas platform untuk Desktop.
Saya berharap React Native akan menggantikan Electron di masa mendatang–tetapi agar ini berfungsi, kerangka kerjanya harus ditingkatkan untuk menyertakan lebih banyak fitur produksi end-to-end. Contoh: Electron bukan hanya merupakan shell untuk aplikasi berbasis web, melainkan juga berisi fitur untuk membuat penginstal, pembaruan otomatis, pelaporan crash, dll.
Kami mengucapkan terima kasih kepada Vitalii yang telah meluangkan waktu untuk melakukan wawancara ini. Sungguh menakjubkan mempelajari bagaimana React digunakan untuk meningkatkan aplikasi utama, dan bagaimana kami belajar dari hal-hal yang kami buat di sini di Meta, dan menyumbangkan pengetahuan itu kembali ke komunitas React. Kami harap wawancara ini bermanfaat bagi Anda dan memberi Anda insight tentang bagaimana dan di mana React digunakan di Meta. Nantikan lebih banyak blog wawancara tempat kami bertemu dengan para insinyur Meta dan mendengarkan pendapat mereka tentang topik ini.
React adalah salah satu proyek sumber terbuka paling populer dan secara konsisten mendapat peringkat sebagai salah satu kerangka kerja web “paling dicintai” selama beberapa tahun terakhir. Kami di Meta percaya bahwa React adalah pustaka luar biasa yang membantu developer membangun antarmuka pengguna dengan mudah dan dalam skala besar. Digunakan oleh jutaan developer di seluruh dunia, untuk segala hal mulai dari situs web sederhana hingga aplikasi perusahaan, React adalah pustaka sumber terbuka dengan tempat bagi semua orang.
Blog ini adalah bagian dari serial Temui para Developer kami, tempat kami mengundang para insinyur Meta yang menggunakan React secara teratur untuk membagikan pengalaman mereka dan memberi tahu kami tentang produk luar biasa yang mereka buat. Nantikan lebih banyak blog wawancara tempat kami bertemu dengan insinyur lain dan mendengarkan pendapat mereka tentang topik ini.
Untuk mempelajari selengkapnya tentang Meta Open Source, kunjungi situs sumber terbuka kami, silakan berlangganan saluran YouTube kami, atau ikuti kami di Twitter, Facebook, dan LinkedIn.