Bỏ qua menu, vào nội dung chính
Mobile Framework Comparison

React Native vs Native (iOS Swift / Android Kotlin)

Verdict ngắn gọn

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 có thể đội chi phí 2x hoặc giảm performance không thể recover. Alodev đã làm cả 2 — chia sẻ kinh nghiệm thực tế dưới đây.

01 · So sánh nhanh

2 lựa chọn đầy đủ pros/cons

Side-by-side comparison. Mỗi option có pros/cons cụ thể + khi nào nên chọn + price range thực tế.

React Native + Expo

Cross-platform — 1 codebase, deploy iOS + Android

Chi phí150 – 800 triệu
Timeline10 – 24 tuần

Ư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)

Build riêng cho iOS (Swift) + Android (Kotlin) — 2 codebase

Chi phí300 triệu – 2 tỷ+
Timeline20 – 52 tuần

Ư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
02 · Bảng so sánh chi tiết

Chi tiết theo từng tiêu chí

4 nhóm tiêu chí · scroll xuống để xem từng category.

Chi phí + Timeline

Tiêu chíReact NativeNative
Chi phí build150-800 triệu300tr-2 tỷ+
Timeline (app tương đương)10-24 tuần20-52 tuần
Chi phí maintenance/năm20-30% giá build40-60% giá build (2 codebase)
Cost mỗi platform thêm~10% (1 codebase share)100% (codebase riêng)

Performance

Tiêu chíReact NativeNative
FPS UI cơ bản55-60fps60fps
Animation phức tạpCần optimizeTự nhiên 60fps
App startup time1.5-3s<1s
Memory usageCao hơn ~20%Optimal

Developer Experience

Tiêu chíReact NativeNative
Hot reload devCó, <1sBuild mất 30s-2 phút
Share code với webCó (Next.js)Không
Dev pool VNLớnTrung bình (Swift ít)
OTA updateCó (Expo EAS Update)Không (phải submit store)

Native features

Tiêu chíReact NativeNative
Camera basicLib có sẵnNative
Camera pro (AR/3D)KhóNative
Push notificationFirebase tốtAPNs/FCM native
Biometric (Face/Touch ID)Lib cóNative
03 · Use cases thực tế

5 kịch bản — chọn cái nào?

Recommendation theo case cụ thể, kèm lý do — dựa kinh nghiệm thực tế Alodev.

01
App đặt hàng F&B chuỗi 5-20 cửa hàng
Khuyên dùng:React Native

UI 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
Khuyên dùng: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)
Khuyên dùng:Native

Camera 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
Khuyên dùng:React Native

UI 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
Khuyên dùng: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.

04 · Alodev nói gì

Quan điểm Alodev

Alodev 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.

Xem dịch vụ phát triển app mobile của Alodev
05 · FAQ

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. Alodev đã làm 1 dự án convert app native iOS sang RN cho fintech.

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.