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.
RN (2026): JS/TS, renders via native UI components. Fastest hot reload, largest ecosystem (npm), good code-sharing with React on the web. Stack includes Expo, react-navigation, Reanimated 3, RN-Skia. New Architecture is default → performance close to native, 60–120 fps lists. Weaker than native at: heavy custom-render animation, deep integration with brand-new native APIs (App Clips, iOS Live Activities), and build size.
Flutter (2026): Dart, renders via Skia/Impeller — does not call native UI, paints pixels itself. UI is identical across platforms; animation performance is the best in cross-platform. Weaker at: larger app size (~7 MB baseline), smaller ecosystem than npm, accessibility not yet on par with RN.
Native (Swift/Kotlin): best performance, best access to new platform features, fewest store rejections. Cost: two codebases, team split, features ship ~2x slower.
2026 decision:
- Existing JS team, web/mobile code-sharing, fast MVP → RN + Expo.
- Pixel-perfect brand UI, heavy animation → Flutter.
- App leans on platform features (AR, fresh ML, system extensions) → Native.
- Hybrid: native shell with RN modules for fast-changing features.