React Native 0.78 phát hành cuối tháng 1/2026 đánh dấu một cột mốc lớn: New Architecture (Fabric + TurboModules + Bridgeless) trở thành mặc định cho dự án mới. Điều này đã được chuẩn bị 5 năm — và giờ là lúc các team production cần nghiêm túc nghĩ về roadmap nâng cấp.
Tại Nocalab Mobile Lab, chúng tôi đã nâng cấp 4 ứng dụng production lên 0.78 trong 6 tuần qua. Bài viết này tổng hợp những gì hoạt động, những gì gãy, và checklist thực tế cho team đang chuẩn bị migration.
Vì sao New Architecture quan trọng?
Old Architecture của RN dựa trên "bridge" — một message passing layer JSON giữa JavaScript và native. Bridge là single-threaded, async-only, và là nguyên nhân của hầu hết các vấn đề performance kinh điển: lag khi animate, jank khi scroll list dài, freeze khi gọi nhiều native API.
New Architecture thay thế bridge bằng JSI (JavaScript Interface) — JS có thể gọi C++ method synchronous, không qua serialization. Kết quả thực đo trên ứng dụng của Nocalab:
- Cold start time giảm 18–24% trên Android tầm trung.
- Time-to-interactive list view 1000 items giảm 40%.
- Memory footprint giảm 12–15% nhờ shadow tree mới.
- Frame drop khi animation phức tạp giảm gần như về 0 trên iOS.
Ba thay đổi lớn trong 0.78
Bridgeless mode mặc định: ứng dụng mới tạo bằng `npx @react-native-community/cli init` đã enable bridgeless. Dự án cũ vẫn chạy old architecture cho đến khi opt-in.
React 19 hỗ trợ chính thức: kéo theo concurrent features (useTransition, useDeferredValue) hoạt động đúng trên RN. useActionState và useOptimistic dùng được như trên web.
Hermes precompiled bytecode trên Android: APK ship sẵn bytecode thay vì compile khi cài, giảm thời gian install lần đầu 30–40% trên thiết bị tầm thấp.
Checklist nâng cấp dự án production
Lộ trình Nocalab áp dụng cho dự án từ 0.74 lên 0.78. Tổng thời gian: 2–4 tuần tuỳ độ phức tạp:
Trước khi bắt đầu
- Audit native dependency: dùng react-native-directory.com check từng package có hỗ trợ New Architecture chưa. Đây thường là blocker lớn nhất.
- Dọn dẹp deprecated API: PropTypes, ImageBackground props cũ, AsyncStorage core (đã tách thành package riêng từ 0.60).
- Setup CI để test trên cả old và new architecture trong giai đoạn chuyển đổi.
- Backup metro.config.js, babel.config.js — sẽ phải sửa.
Trong quá trình nâng cấp
- Dùng react-native-upgrade-helper để xem diff template — đặc biệt quan trọng với android/ và ios/ folder.
- Nâng cấp từng minor version một (0.74 → 0.75 → 0.76 → 0.78), không nhảy thẳng.
- Test trên thiết bị thật, không chỉ simulator. Một số bug New Architecture chỉ xuất hiện trên Android <8.
- Nếu có custom native module: chuyển sang TurboModule spec — codegen tự động sinh boilerplate.
- Animated API: kiểm tra mọi useNativeDriver: true vẫn hoạt động đúng. Một số edge case bị thay đổi.
Bốn vấn đề thường gặp và cách xử lý
Vấn đề 1 — Library không hỗ trợ New Architecture: lựa chọn (a) tìm fork đã update, (b) tự maintain patch qua patch-package, (c) tạm rollback library và tìm thay thế. Trong 4 dự án Nocalab nâng cấp, trung bình 2–3 library cần xử lý.
Vấn đề 2 — Layout khác biệt nhỏ trên iOS: Fabric tính layout chính xác hơn old architecture. Một số UI có "hack" margin/padding sẽ lệch. Cách sửa: refactor về flexbox đúng chuẩn, đừng cố giữ workaround cũ.
Vấn đề 3 — Bundle size tăng nhẹ: Hermes bytecode + JSI runtime làm APK/IPA tăng 2–4MB. Bù lại bằng enable Proguard/R8 aggressive cho Android, asset optimization cho cả hai platform.
Vấn đề 4 — Crash khi reload trong development: thường do metro cache cũ. `npx react-native start --reset-cache` giải quyết 90% trường hợp.
Khi nào KHÔNG nên upgrade ngay?
Không phải mọi dự án đều nên rush lên 0.78. Lý do hợp lý để hoãn 6–12 tháng:
- Ứng dụng phụ thuộc nhiều native module ít người maintain — chờ ecosystem chín hơn.
- Team chỉ có 1–2 dev RN và đang trong giai đoạn release tính năng quan trọng — rủi ro không xứng đáng.
- Dự án sắp end-of-life trong 12 tháng — đầu tư không có ROI.
- Đang maintain cả old và new architecture cho phase transition của library bạn maintain — chờ đến khi chỉ cần support new.
Kết luận
React Native 0.78 không phải release mang tính cách mạng — nó là release "hoàn thiện" nhiều năm công sức của team Meta và cộng đồng. Đây là phiên bản đầu tiên mà New Architecture thực sự sẵn sàng cho production ở quy mô lớn.
Khuyến nghị của Nocalab: nếu dự án đang ở 0.74+ và team có ít nhất 2 dev RN có kinh nghiệm, hãy lên kế hoạch upgrade trong Q2/2026. Lợi ích về performance và developer experience xứng đáng. Còn nếu đang ở 0.6x hoặc 0.7x sớm, hãy nâng cấp dần qua các phiên bản trung gian — đừng nhảy 5 version một lần.