React Native phù hợp 90% app B2C/B2B Việt Nam - tiết kiệm 40-50% chi phí so với native 2 codebase, dev pool VN dồi dào, performance đủ tốt. Native (Swift + Kotlin) chỉ cần thiết cho app đồ hoạ nặng (game, AR/VR), camera/video pro, hoặc đòi hỏi 60fps cực gắt.
Đây là quyết định kiến trúc quan trọng đầu tiên khi build app mobile. Chọn sai thì chi phí có thể đội lên gấp đôi, hoặc ứng dụng chạy chậm mà không sửa được nếu không viết lại. Phần dưới đối chiếu hai hướng theo chi phí, thời gian và khả năng bảo trì.
Từng lựa chọn.
React Native + Expo
150 - 800 triệu · 10 - 24 tuần
Cross-platform - 1 codebase, deploy iOS + Android
Ưu điểm
- Tiết kiệm 40-50% chi phí so với native 2 codebase
- 1 đội dev cho cả 2 platform - đơn giản hơn
- Dev pool VN lớn - dễ tuyển + chuyển đội bảo trì
- Hot reload - dev velocity nhanh
- Reuse code logic với web (Next.js)
- Expo: OTA update không cần submit store
- Ecosystem libraries phong phú
Nhược điểm
- Performance kém native ~10-20% cho UI phức tạp
- Native module access cần native code (Swift/Kotlin)
- Library upgrade đôi khi breaking - cần test kỹ
- App size lớn hơn native (~10-15MB)
- Animation 60fps phức tạp cần optimize cẩn thận
Chọn khi
- App B2C/B2B với UI standard (list, form, card)
- Ngân sách hạn chế (cần tiết kiệm 40-50%)
- Cần ship nhanh iOS + Android cùng lúc
- Đội dev ít người (1 React Native dev = 2 native dev)
- Đã có web Next.js, muốn share code logic
Native (Swift + Kotlin)
300 triệu - 2 tỷ+ · 20 - 52 tuần
Build riêng cho iOS (Swift) + Android (Kotlin) - 2 codebase
Ưu điểm
- Performance tối ưu - 60fps mượt nhất
- Access full native API + hardware
- UI khớp design system platform (Human Interface vs Material)
- App size nhỏ hơn
- Animation phức tạp dễ hơn
- Camera/video processing chất lượng cao
Nhược điểm
- Chi phí cao 2x - cần 2 đội + 2 codebase
- Timeline dài 1.5-2x
- Maintain 2 codebase - bug fix phải làm 2 lần
- Tuyển dev VN khó hơn (Swift dev ít)
- Update tính năng song song trên 2 platform mệt mỏi
Chọn khi
- App đồ hoạ nặng (game, AR/VR, 3D)
- Camera/video pro (Snapchat, TikTok style)
- App cần performance 60fps cực gắt
- Bank/Fintech với security yêu cầu cao
- App đã có user base lớn, performance critical
Chi tiết theo tiêu chí.
Chi phí + Tiến độ
| Tiêu chí | React Native | Native |
|---|---|---|
| Chi phí build | 150-800 triệu | 300tr-2 tỷ+ |
| Timeline (app tương đương) | 10-24 tuần | 20-52 tuần |
| Chi phí maintenance/năm | 20-30% giá build | 40-60% giá build (2 codebase) |
| Cost mỗi platform thêm | ~10% (1 codebase share) | 100% (codebase riêng) |
Hiệu năng
| Tiêu chí | React Native | Native |
|---|---|---|
| FPS UI cơ bản | 55-60fps | 60fps |
| Animation phức tạp | Cần optimize | Tự nhiên 60fps |
| App startup time | 1.5-3s | <1s |
| Memory usage | Cao hơn ~20% | Optimal |
Trải nghiệm lập trình
| Tiêu chí | React Native | Native |
|---|---|---|
| Hot reload dev | Có, <1s | Build mất 30s-2 phút |
| Share code với web | Có (Next.js) | Không |
| Dev pool VN | Lớn | Trung bình (Swift ít) |
| OTA update | Có (Expo EAS Update) | Không (phải submit store) |
Tính năng gốc
| Tiêu chí | React Native | Native |
|---|---|---|
| Camera basic | Lib có sẵn | Native |
| Camera pro (AR/3D) | Khó | Native |
| Push notification | Firebase tốt | APNs/FCM native |
| Biometric (Face/Touch ID) | Lib có | Native |
Kịch bản thực tế.
- 01
App đặt hàng F&B chuỗi 5-20 cửa hàng
React NativeUI standard (list món, giỏ hàng, thanh toán, tracking). Không cần hardware đặc biệt. Tiết kiệm 40% chi phí so với native.
- 02
App banking / fintech với KYC + biometric
Native (hoặc RN với native module)Security yêu cầu cao, biometric API ổn định, certification PCI-DSS dễ hơn với native. Có thể RN nhưng modules nhạy cảm viết native.
- 03
App truyền thông xã hội với camera + filter (TikTok-like)
NativeCamera processing realtime + AR filter cần 60fps. RN không đủ performance cho use case này.
- 04
App enterprise nội bộ - sale CRM cho 50 nhân viên
React NativeUI form-heavy, không cần performance cao. Cần ship nhanh iOS + Android. RN là choice tự nhiên.
- 05
App game / AR / VR
Native (hoặc Unity/Unreal)Game cần OpenGL/Metal trực tiếp. AR/VR cần ARKit/ARCore. RN không phù hợp.
Quan điểm Alodev
Xem dịch vụ phát triển app mobile của AlodevAlodev recommend React Native cho 90% dự án. Native chỉ khi app có yêu cầu performance/hardware đặc biệt (game, AR, camera pro). Hybrid approach: build app RN nhưng modules nhạy cảm (biometric, encryption) viết native code, expose qua bridge. Tiết kiệm 40% chi phí + giữ performance critical paths.
Câu hỏi thường gặp.
React Native vs Flutter - chọn cái nào?
RN: ecosystem lớn hơn (npm 2M+ packages), dev pool VN dồi dào, share code với web Next.js. Flutter: performance tốt hơn ~10%, UI nhất quán hơn, hot reload nhanh hơn. Trade-off: Flutter dev VN ít hơn. Cho 90% dự án VN, RN là choice an toàn hơn.
App native sẽ chết khi RN tốt hơn?
Không. Native vẫn là gold standard cho performance + hardware access. Apple/Google đầu tư mạnh native APIs mỗi năm. RN tốt cho 80-90% app phổ thông, nhưng game/AR/camera/banking vẫn cần native. Cả 2 sẽ coexist lâu dài.
Expo vs bare React Native - khác gì?
Expo: managed workflow, dễ dev, có EAS Build + OTA Update built-in, hạn chế native module. Bare RN: full control, có thể eject Expo khi cần. Alodev khuyên bắt đầu Expo cho 95% dự án - chỉ eject khi thực sự cần native module không có sẵn.
Convert app native sang React Native được không?
Có, nhưng = build lại từ đầu. Chỉ logic nghiệp vụ + design có thể reuse. Code native (Swift/Kotlin) không thể convert. Effort tương đương build mới, khoảng 70% so với từ scratch.
App RN có vượt được Apple/Google review không?
Có, không khác native. Apple/Google không phân biệt RN với native - chỉ check guidelines (privacy, content, performance basic). RN apps duyệt như app native, không có rule riêng. Tip: App size lớn hơn ~10MB do RN runtime, nhưng không bị reject.
Chưa rõ trường hợp này
nên chọn hướng nào?
Mô tả bài toán, ALODEV tư vấn đúng nghiệp vụ, miễn phí.