---
title: "Làm app điện thoại: nên chọn Swift/Kotlin, Flutter hay React Native?"
url: https://phatdev.net/vi/blog/app-native-or-cross-platform
lang: vi
updated: 2026-10-21
alternate:
  en: https://phatdev.net/en/blog/app-native-or-cross-platform
markdown: https://phatdev.net/vi/blog/app-native-or-cross-platform.md
---

# Làm app điện thoại: nên chọn Swift/Kotlin, Flutter hay React Native?

> Cách chọn giữa app riêng cho từng hệ điều hành, Flutter và React Native theo ngân sách, thời gian, đội ngũ và tính năng, kèm tình trạng các công nghệ này năm 2026.

Chuyên mục: Ứng dụng di động | Đăng: 2026-10-21 | Cấp độ: Cơ bản | 7 phút đọc

Tags: mobile, native, flutter, react-native, kotlin-multiplatform, cross-platform

Bạn nhận hai báo giá làm app: một cho iPhone, một cho Android, cộng lại gần gấp đôi. Giá đó có thể hợp lý hoặc không, tuỳ cách bên làm chọn công nghệ. Chọn công nghệ làm app là quyết định đầu tiên và khó sửa nhất, nên đáng bỏ nửa tiếng hiểu trước khi ký hợp đồng.

Bài này giải thích ba hướng đi phổ biến bằng lời thường, rồi đưa ra cách chọn theo ngân sách, thời gian, đội ngũ và tính năng. Thông tin phiên bản mình kiểm trên tài liệu chính thức ngày 21/10/2026.

![Ba hướng đi: hai app riêng cho hai hệ điều hành, hoặc một bộ code dùng chung](https://phatdev.net/uploads/blog/app-native-or-cross-platform/paths-1920.webp)

## Ba hướng đi, nói bằng lời thường

Hãy hình dung bạn mở một quán cà phê có hai chi nhánh ở hai quốc gia khác nhau. Mỗi nước một luật, một ổ điện khác nhau.

Hướng thứ nhất là **làm riêng cho từng hệ điều hành** (gọi là native). iPhone dùng ngôn ngữ Swift và công cụ Xcode của Apple. Android dùng Kotlin và Android Studio của Google. Giống như thuê hai đội thợ, mỗi đội xây một quán theo đúng chuẩn nước đó. Quán nào cũng đẹp và hợp địa phương, nhưng bạn trả tiền hai lần và hai quán phải sửa riêng.

Hướng thứ hai là **dùng một bộ code chạy trên cả hai máy** (gọi là cross-platform). Hai cái tên bạn sẽ nghe nhiều nhất là Flutter của Google, viết bằng ngôn ngữ Dart, và React Native của Meta, viết bằng JavaScript hoặc TypeScript. Giống như một đội thợ xây theo một bản vẽ, rồi lắp ráp cho hai nước. Một lần xây, một lần sửa, nhưng thỉnh thoảng gặp chỗ phải nhờ thợ địa phương xử lý riêng.

Hướng thứ ba nằm giữa hai cái trên: dùng chung phần "bộ não" của app (quy tắc tính tiền, gọi máy chủ), còn giao diện vẫn làm riêng. Cái này tên là Kotlin Multiplatform. Trang tài liệu Android của Google hiện ghi đây là công nghệ ổn định và dùng được cho sản phẩm thật, cho phép chia sẻ từ một phần nhỏ logic đến cả app.

## Tình trạng năm 2026

Mình kiểm ba nguồn gốc, ghi lại để bạn tự mở xem.

Flutter: trang docs.flutter.dev đang ghi phiên bản 3.47. Bảng nền tảng hỗ trợ ghi Android từ cấp 24 đến 37 (tức Android 7 trở lên) và iOS 15 đến 27. Ngoài điện thoại, nó còn chạy được web và máy tính để bàn.

React Native: bản mới nhất trên blog reactnative.dev là 0.88, ngày 19/10/2026. "Kiến trúc mới" (New Architecture) đã là mặc định từ bản 0.76 năm 2024, và bản 0.82 là bản đầu tiên chạy hoàn toàn trên kiến trúc này. Trang hướng dẫn cài đặt khuyên người mới nên dùng một "framework", ví dụ Expo, thay vì tự ráp từ đầu.

Native: Apple hiện giới thiệu Xcode 27, Android Studio bản ổn định đang là 2026.2.1 (tên Rabbit 1). Cả hai hãng cập nhật công cụ mỗi năm, và app mới nào cũng phải theo SDK mới mới được đưa lên cửa hàng. Chi tiết mình viết ở bài [Đưa app lên App Store và Google Play: danh sách việc cần chuẩn bị (2026)](https://phatdev.net/vi/blog/app-store-google-play-checklist).

Mình không đưa bảng điểm tốc độ so sánh vì không có nguồn chính thức đo công bằng. Với phần lớn app bán hàng, đặt lịch, tin tức, hiệu năng của cả ba hướng đều dư dùng. Cảm giác mượt khác nhau thường do cách làm, ít khi do tên công nghệ.

## Chọn theo ngân sách và thời gian

![Cán cân giữa tiền, thời gian và số tính năng](https://phatdev.net/uploads/blog/app-native-or-cross-platform/budget-1920.webp)

Nếu ngân sách hạn chế và cần ra mắt sớm trên cả hai hệ điều hành, một bộ code dùng chung thường rẻ và nhanh hơn rõ. Bạn không trả đôi cho cùng một màn hình đăng nhập, cùng một giỏ hàng. Khi cần sửa lỗi hay thêm tính năng, bạn cũng chỉ sửa một lần.

Nếu chỉ cần một hệ điều hành trước, ví dụ khách của bạn chủ yếu dùng iPhone, làm native cho một bên đôi khi lại gọn nhất. Sau này mở rộng sang bên kia vẫn được.

Ngân sách không chỉ là tiền làm lần đầu. App cần cập nhật mỗi khi Apple và Google ra phiên bản hệ điều hành mới, và mỗi năm đều có yêu cầu mới. Với hai app native, bạn gánh việc này hai lần. Mình nói thêm về chuyện duy trì ở bài [Bảo trì website hằng tháng gồm những gì, và vì sao bỏ bê thì tốn hơn](https://phatdev.net/vi/blog/website-maintenance-monthly), phần lớn lý lẽ cũng đúng với app.

## Chọn theo đội ngũ

Câu hỏi thực tế nhất là: ai sẽ sửa app sau khi bàn giao? Nếu công ty bạn đã có người giỏi JavaScript hoặc TypeScript, React Native cho họ đi nhanh hơn. Nếu chỉ thuê ngoài một lần rồi tự quản lý, hãy chọn công nghệ mà bạn dễ tìm người làm tiếp ở địa phương. Một app đẹp mà không ai dám sửa là rủi ro lớn.

Một điều dễ xảy ra: bên làm app thường chọn công nghệ họ quen nhất, không phải công nghệ hợp nhất với bạn. Hãy hỏi thẳng họ vì sao chọn, và ai sẽ sửa lỗi khi họ bận.

## Chọn theo tính năng

Phần lớn app chỉ cần màn hình, danh sách, form, đăng nhập, gọi máy chủ. Cả ba hướng làm tốt phần này. Chỗ cần cân nhắc là ba nhóm tính năng sau.

![Ba tính năng hay quyết định hướng đi: camera, thanh toán, chạy nền](https://phatdev.net/uploads/blog/app-native-or-cross-platform/features-1920.webp)

Camera và cảm biến. Quét mã, chụp giấy tờ, thực tế tăng cường: cả Flutter và React Native đều có thư viện, nhưng càng đặc thù thì càng hay phải viết thêm đoạn code native để nối vào. Nếu camera là trái tim của app, native thường ít rắc rối hơn.

Thanh toán. Bán hàng vật lý (quần áo, laptop) có thể dùng cổng thanh toán thường. Bán nội dung số hay gói đăng ký trong app thì Apple yêu cầu dùng thanh toán trong ứng dụng của họ, theo mục 3.1.1 của App Review Guidelines. Điều này không phụ thuộc bạn dùng công nghệ nào, nên hãy xác định từ đầu.

Chạy nền. Nhắc việc đúng giờ, theo dõi vị trí, đồng bộ khi tắt màn hình: hệ điều hành giới hạn khá chặt, và cách xử lý khác nhau giữa iOS và Android. Đây là chỗ native và cross-platform đều phải làm cẩn thận, nhưng native dễ tiếp cận các lựa chọn mới nhất của hệ điều hành hơn.

## Một cách chọn nhanh

Nếu bạn là chủ doanh nghiệp nhỏ, cần app cho cả hai máy, tính năng phổ thông, ngân sách vừa phải: bắt đầu với Flutter hoặc React Native (kèm Expo), tuỳ đội của bạn quen gì. Nếu app xoay quanh camera, đồ hoạ, hoặc tính năng sâu của một hệ điều hành: native. Nếu đã có app native và muốn bớt trùng lặp: Kotlin Multiplatform đáng tìm hiểu. Nếu chỉ cần một công cụ nội bộ hay trang bán hàng có thể cài lên màn hình, hãy xem trước bài [Web app cài được (PWA) có thay thế được app điện thoại không?](https://phatdev.net/vi/blog/pwa-or-native-app), vì có khi bạn chưa cần một app đúng nghĩa.

## Lỗi hay gặp

Chuyện hay gặp là làm app xong mới phát hiện cần thêm website quản trị để nhân viên nhập hàng. Tiền làm app chỉ là một nửa, phần máy chủ và giao diện quản trị mới là nửa còn lại. Hãy tính cả hai, và chuẩn bị tài liệu mô tả rõ như trong bài [Chuẩn bị gì trước khi thuê người làm web hay phần mềm (kèm mẫu brief để chép)](https://phatdev.net/vi/blog/brief-before-hiring-developer).

Một lỗi khác là chọn công nghệ vì nó đang hot. Công nghệ nào cũng đổi phiên bản đều đặn, nên điều cần là đội làm còn theo dõi và nâng cấp được.

## Làm gì tiếp theo

Viết ra ba thứ: app cần chạy trên hệ điều hành nào, ba tính năng quan trọng nhất, và ai sẽ duy trì sau khi ra mắt. Với ba dòng đó, bạn đã đủ để hỏi báo giá đúng và so sánh công bằng. Nếu cần người cùng xem xét, bạn có thể nhắn mình qua trang liên hệ.

## Nguồn tham khảo

- [Flutter docs (3.47)](https://docs.flutter.dev/)
- [Flutter supported platforms](https://docs.flutter.dev/reference/supported-platforms)
- [React Native blog (0.88)](https://reactnative.dev/blog)
- [React Native: set up your environment (framework recommendation)](https://reactnative.dev/docs/environment-setup)
- [Android Developers: Kotlin Multiplatform](https://developer.android.com/kotlin/multiplatform)
- [Android Studio releases](https://developer.android.com/studio/releases)
- [Apple Xcode](https://developer.apple.com/xcode/)
- [App Review Guidelines](https://developer.apple.com/app-store/review/guidelines/)

## Bài liên quan

- [Đưa app lên App Store và Google Play: danh sách việc cần chuẩn bị (2026)](https://phatdev.net/vi/blog/app-store-google-play-checklist.md)
- [Web app cài được (PWA) có thay thế được app điện thoại không?](https://phatdev.net/vi/blog/pwa-or-native-app.md)
