Mục lục
Mobile App: React Native vs Flutter
Cách đây 3 năm, tôi nhận được một project từ một startup F&B ở Hà Nội. Họ đã dùng React Native được 18 tháng, có khoảng 50k dòng code, nhưng app chậm chạp trên Android, animation giật lag, dev team mất 40% thời gian fix bug liên quan đến native. Lúc đó Flutter vừa release phiên bản 1.20 với performance khá ấn tượng. Tôi đề xuất xem xét Flutter, nhưng CTO nghe xong chỉ cười: "Lại một framework mới? Chúng tôi cần ổn định, không cần chuyển hướng nữa."
Câu chuyện đó khiến tôi nhận ra rằng tranh luận React Native vs Flutter không phải là về con số hay benchmark—nó là về trưởng thành, hệ sinh thái, và mức độ chịu đựng được của team.
Hai thế giới khác nhau
React Native đã 9 tuổi rồi. Nó giống một ngôi nhà cũ mà bạn thừa hưởng từ ông bà—nó có chỗ thích, nhưng cũng có nhiều đường ống chạy ngầm bạn không hiểu tại sao lại tồn tại. Meta (Facebook) phát hành nó năm 2015, lúc đó chưa ai biết mobile app là gì ngoài iOS và Android. Kết quả là React Native ngay từ đầu đã phải xây dựng một cầu nối phức tạp giữa JavaScript runtime và native code, rồi cứ vá bản patch rồi vá tiếp.
Flutter thì khác. Google release nó năm 2018, khi mà kinh tế mobile development đã ổn định. Flutter từ đầu được thiết kế với một triết lý rõ ràng: everything is a widget, rendering engine riêng biệt, không phụ thuộc vào native UI components của iOS/Android. Nó giống như bạn vẽ một bức tranh từ đầu thay vì dùng những khung sẵn có.
Hiệu suất: Con số nói lên mọi điều
Mình đã qua một vài dự án so sánh trực tiếp. Trên một app danh sách 2000 items với animation scroll, Flutter chạy stable 60fps trên Snapdragon 888 (2020), React Native chỉ đạt 45-55fps. Lý do? React Native phải chuyển dữ liệu qua cầu JS-Native liên tục, mỗi frame có một chút latency tích tụ.
Nhưng đừng hiểu nhầm—điều này chỉ quan trọng nếu bạn chạy danh sách 2000 items. Nếu app của bạn là một cửa hàng trực tuyến với danh sách 50 sản phẩm, hay một ứng dụng chat, thì chênh lệch 10-15fps này không ai nhận ra. Mình thấy rất nhiều startup phiên phức tạp lên về performance khi thực sự bottleneck của họ là API chậm hoặc UI logic xấu, chứ không phải framework.
Chia sẻ bài viết


