RN (2026): dùng JS/TS, render qua native UI components. Hot reload nhanh nhất, hệ sinh thái npm lớn nhất, share code với web React thuận lợi. Ecosystem có Expo, react-navigation, Reanimated 3, RN-Skia. New Architecture default → performance gần native với danh sách 60–120fps. Yếu hơn native ở: animation phức tạp custom render, integration sâu native API mới (App Clips, Live Activities iOS), build size.
Flutter (2026): dùng Dart, render qua Skia/Impeller engine — không gọi native UI mà tự vẽ pixel. UI identical trên cả hai platform; performance animation tốt nhất trong cross-platform. Kém hơn ở: file size lớn (~7MB baseline), Dart hệ sinh thái nhỏ hơn npm, accessibility chưa bằng RN.
Native (Swift/Kotlin): performance tốt nhất, integration tốt nhất với platform features mới, App Store/Play Store reject ít nhất. Nhược điểm: viết hai codebase, team chia đôi, ship feature chậm hơn 2x.
Quyết định 2026:
- Team JS có sẵn, web/mobile share code, MVP nhanh → RN + Expo.
- Cần UI brand đồng nhất pixel-perfect, animation phức tạp → Flutter.
- App nặng platform feature (AR, ML mới, system extension) → Native.
- Hybrid: native shell + RN module trong cho feature thay đổi nhanh.