Web app, Mobile app, PWA, Native — phân biệt 4 loại ứng dụng

Web app là 'quán mở 24/7 ai cũng vào', Mobile native là 'cửa hàng riêng phải cài', PWA là lai giữa hai. Hiểu 4 loại app để biết loại nào phù hợp dự án — tiết kiệm 50-70% chi phí dev khi chọn đúng.

10 phút đọcCập nhật 2026-05-19
Đang tải audio...
Mục lục bài viết(23)
Smartphone hiển thị app Instagram — minh hoạ ứng dụng mobile native

Mobile app native như Instagram — cài từ App Store, có icon trên màn home. Bên cạnh đó, người dùng cũng có thể vào instagram.com qua trình duyệt (web app), hoặc "add to home screen" để biến thành PWA. Một thương hiệu có thể tồn tại ở cả 3 dạng cùng lúc. Nguồn: Wikimedia Commons (CC BY-SA 4.0).

Hiểu đơn giản nhất

Có 4 loại app mà user gặp hàng ngày, khác nhau ở cách phân phối + công nghệ build:

LoạiLà gìAnalogy
Web appApp chạy trong trình duyệt, gõ URL là vàoQuán mở 24/7 ai cũng vào, không cần cài gì
Mobile Native appNative (chạy thẳng trên hệ điều hành — iOS Swift, Android Kotlin). App cài từ App Store / Play StoreCửa hàng riêng phải đăng ký mới mua được
PWA (Progressive Web App — web có thể cài như app)Web app có thể "add to home screen"Cửa hàng kiosk — vừa pop-up, vừa có biển hiệu
Hybrid (web đóng gói thành app) / Cross-platform (1 code chạy nhiều platform)App native dùng 1 codebase cho cả iOS + AndroidChuỗi cửa hàng nhiều địa điểm, cùng layout

Cùng một app như Shopee tồn tại ở cả 4 dạng: shopee.vn (web app) + Shopee iOS/Android (native, viết bằng React Native — cross-platform), và bạn có thể "add to home screen" web shopee.vn để có icon (PWA).

Tại sao bạn cần biết

  • Tiết kiệm 50-70% chi phí dev. Build web app riêng + iOS riêng + Android riêng = $300k+. Build cross-platform (React Native, Flutter) hoặc web + PWA = $80-150k.
  • Time-to-market. Web app deploy 1 ngày. Native app xét duyệt 1-7 ngày (iOS) + chuẩn bị App Store 1-2 tuần. Test ý tưởng cần web trước.
  • Hiểu báo giá agency. Hỏi agency "build app" — phải đào sâu họ định nghĩa "app" là gì. Native iOS+Android = đắt nhất. Web + PWA = rẻ nhất.
  • SEO mang user. SEO (Search Engine Optimization — tối ưu công cụ tìm kiếm). Native app không xuất hiện trên Google. Web app có SEO = lượt traffic miễn phí. Mỗi user mobile app cost $5-50 acquisition; web app SEO cost $0.

So sánh chi tiết 4 loại

Tiêu chíWeb appPWACross-platform (RN/Flutter)Native (Swift/Kotlin)
Cài đặtKhông cần"Add to home" 1 chạmApp Store / Play StoreApp Store / Play Store
Cập nhậtTự động khi reloadTự độngUser phải update từ storeUser phải update từ store
SEO✅ Có✅ Có❌ Không❌ Không
Offline❌ Không✅ Có (Service Worker)✅ Có✅ Có
Camera, GPS, BluetoothHạn chếHạn chế (iOS yếu)✅ Đầy đủ✅ Đầy đủ + tốc độ tối đa
Push notificationHạn chế✅ Có (iOS 16.4+)✅ Có✅ Có
PerformanceTrung bìnhKháKhá-TốtTốt nhất
App Store fee$0$0$124/năm (cả 2)$124/năm (cả 2)
Time to market1 ngày deploy1 ngày1-2 tuần review1-2 tuần review
Phí dev (web đã có)$0$5-15k$30-80k$60-200k (riêng 2 platform)
Maintain (yearly)ThấpThấpTrung bìnhCao
User cài cao✅ Truy cập tự nhiênHạn chế (iOS không quảng bá)✅ Có icon✅ Có icon

Web app — quán mở 24/7

Web app chạy trong trình duyệt — không cần cài. Truy cập bằng URL hoặc Google search.

Ví dụ web app trong cuộc sống

  • Notion, Linear, ClickUp (productivity)
  • Google Docs, Sheets, Slides (office)
  • Canva, Figma (design)
  • Vercel, Cloudflare, GitHub (dev)
  • Shopee Web, Tiki Web, Lazada Web (e-commerce)

Tất cả đều có version web đầy đủ tính năng, đa số có cả mobile native riêng nhưng web là "primary".

Khi nào chọn web app

  • MVP (Minimum Viable Product — sản phẩm tối thiểu khả dụng) test ý tưởng — deploy (triển khai — đưa code lên server chạy) nhanh, sửa nhanh, không cần xét duyệt
  • B2B SaaS, internal tool — user dùng máy tính, không cần offline
  • Content + marketing site — SEO là main source of traffic
  • App ít engagement — user dùng 1 lần/tuần, không cần icon trên màn home

Mobile Native — cửa hàng riêng

App native được code riêng cho từng platform:

PlatformNgôn ngữIDEPhí cài đặt
iOSSwift (hiện đại) hoặc Objective-C (cũ)Xcode trên MacApple Developer $99/năm
AndroidKotlin (hiện đại) hoặc Java (cũ)Android StudioGoogle Play $25/lần

Khi nào chọn native

  • Game cần GPU performance cao
  • Camera/AR/3D (TikTok hiệu ứng, Snapchat filter)
  • Bluetooth, NFC, Push siêu engagement (Spotify, Strava, banking)
  • App độc đáo platform (Apple Watch app, Android Auto)
  • Có budget + team chuyên ($60-200k dự án trung bình)

PWA — kiosk lai giữa web + app

PWA là web app cộng thêm 3 tính năng:

  1. Service Workercache để chạy offline
  2. Web App Manifest — file manifest.json cho phép "add to home screen"
  3. HTTPS bắt buộc (Let's Encrypt free)

User vào web → trình duyệt nhận biết là PWA → hỏi "Add to Home Screen?". Sau khi add, app xuất hiện như icon native, mở fullscreen không có thanh URL.

PWA mạnh ở đâu

  • 1 codebase cho cả web + "app" → không cần build iOS/Android riêng
  • Update tự động — không cần user cài lại
  • SEO — vẫn là web nên Google index được
  • Không cần App Store — phân phối qua URL, KHÔNG bị Apple/Google ăn 30%

PWA yếu ở đâu

  • iOS hạn chế — Apple cố tình không quảng bá "Add to Home" để bảo vệ App Store
  • Performance ~30% kém hơn native — không truy cập GPU trực tiếp
  • Tính năng phần cứng hạn chế — không có Bluetooth, AR, các API native

Khi nào chọn PWA

  • Web đã có sẵn, muốn upgrade cho user power
  • Content app (Twitter, Pinterest đều có PWA tốt)
  • E-commerce không cần performance đỉnh (Aliexpress, Alibaba có PWA rất tốt)

Cross-platform — chuỗi cửa hàng

Frameworks cho phép 1 code chạy cả iOS + Android:

FrameworkTạo bởiNgôn ngữTỷ lệ share code
React NativeFacebook (2015)TypeScript/JS70-90%
FlutterGoogle (2017)Dart95-100%
Capacitor / IonicIonic teamWeb (HTML/CSS/JS)95-100%
Tauri (Mobile)Tauri team (2024)Web + Rust90-100%
.NET MAUIMicrosoft (2022)C#80-90%

React Native trong thực tế

// Code 1 lần
import { Text, View, Button } from 'react-native';
 
export default function HomeScreen() {
  return (
    <View style={{ padding: 20 }}>
      <Text>Chào mừng đến VietCodex</Text>
      <Button title="Bắt đầu" onPress={() => navigate('/services')} />
    </View>
  );
}

Cùng code → build ra app iOS (.ipa) + Android (.apk). 70-90% code share, 10-30% còn lại là native module (camera, push, payment) viết riêng.

Khi nào chọn cross-platform

  • Team biết React/JS sẵn → React Native, 1 ngôn ngữ
  • Cần UI đẹp + animation phức tạp → Flutter
  • App business logic không tối ưu performance gắt → bất kỳ cross-platform nào
  • Budget hạn chế — gấp đôi iOS/Android native nhưng vẫn rẻ hơn build 2 platform riêng

Ví dụ thực tế: VietCodex tư vấn cho 3 dự án

Dự án 1: SaaS quản lý phòng khám nha khoa

  • User: Bác sĩ + nhân viên lễ tân, dùng trên máy tính desktop
  • Yêu cầu: Quản lý lịch hẹn, hồ sơ bệnh nhân, đơn thuốc, billing
  • Chọn: Web app thuần (Next.js + Tailwind + Supabase)
  • Lý do: User trên máy tính, ít có nhu cầu mobile, SEO không quan trọng vì B2B
  • Cost: $40k, 2 tháng

Dự án 2: App giao đồ ăn cho khu vực nhỏ

  • User: Khách hàng order trên mobile + chủ quán quản đơn
  • Yêu cầu: Push notification realtime, GPS shipper, payment integration
  • Chọn: React Native + web admin riêng
  • Lý do: Cần push + GPS + có cả iOS lẫn Android, budget hạn chế
  • Cost: $80k, 3 tháng

Dự án 3: App ngân hàng

  • User: Mọi loại khách hàng, sensitive transactions
  • Yêu cầu: Bảo mật cao, FaceID, NFC payment, performance tối đa
  • Chọn: Native iOS (Swift) + Native Android (Kotlin) riêng
  • Lý do: Bảo mật + tính năng phần cứng + UX phải perfect, budget cho phép
  • Cost: $200k+, 6-12 tháng

Khi nào chọn gì — quy tắc nhanh

Bắt đầu MVP?
├─ User chủ yếu trên desktop → Web app thuần
├─ User chủ yếu trên mobile → Web responsive + PWA
└─ Có > 10.000 user retention tốt? → Build mobile native

Mobile native?
├─ Cần Bluetooth/AR/GPU heavy → Native Swift + Kotlin
├─ Logic business chính + UI thường → Cross-platform (RN/Flutter)
└─ Web đã có, muốn "app feel" → PWA + nâng cấp dần

Cost + time tổng quan

LoạiTime (MVP)Cost (MVP)Maintain/nămApp Store fee
Web app1-3 tháng$10-50k$5-15k$0
PWA+2 tuần (sau web)+$5-15k+$2-5k$0
Cross-platform2-4 tháng$40-100k$15-30k$124
Native (1 platform)3-5 tháng$50-150k$20-40k$99 hoặc $25
Native (2 platforms)5-8 tháng$100-300k$40-80k$124

Tóm tắt 1 dòng

Web app = quán mở 24/7 (rẻ, nhanh, SEO). PWA = web có icon (free upgrade). Cross-platform (React Native/Flutter) = 1 code cho cả iOS + Android. Native = đỉnh performance + bảo mật, đắt nhất. Quy tắc: MVP startup nên bắt đầu web → có user → cân nhắc PWA → có scale → React Native + giữ web.

Đọc tiếp

Câu hỏi thường gặp

Tôi nên build web hay mobile app trước cho startup?
Web trước, 9/10 trường hợp. Lý do: (1) Test ý tưởng nhanh hơn — deploy 1 ngày, không cần xét duyệt App Store 1-2 tuần; (2) Rẻ hơn 3-5x — không phải code iOS + Android riêng; (3) SEO mang user tự nhiên — mobile app không có; (4) Update không cần user cài lại. Có data 10k+ user dùng + retention OK rồi build mobile native. Trừ khi: app cần camera/GPS/notification chuyên sâu, hoặc target user 50+ tuổi (ít dùng web).
PWA có thật là 'app native' không?
Gần như, không hoàn toàn. PWA (Progressive Web App) = web app có thể 'add to home screen' như app native. Có offline support, push notification, icon trên màn home. NHƯNG: iOS hạn chế nhiều tính năng (push notification chỉ có từ iOS 16.4+ 2023), không có app store, performance kém hơn native ~30%. Phù hợp cho: web app đã có, muốn thêm trải nghiệm 'app' nhẹ. Không phù hợp: game, app cần camera/Bluetooth nhiều.
React Native và Flutter — chọn cái nào?
React Native: nếu team đã biết React + web — chuyển sang mobile nhanh nhất, share 70-80% code giữa web và mobile. Flutter (Google, Dart): nếu cần UI custom đẹp + animation phức tạp, performance gần native. Thị phần 2026: React Native 42%, Flutter 38%, Native iOS/Android riêng 20%. VN agency thường dùng React Native vì hệ sinh thái dev sẵn.
App native iOS + Android khác nhau thế nào?
iOS dùng Swift (Apple, 2014) + Xcode + máy Mac. Android dùng Kotlin (Google, 2017) + Android Studio + máy nào cũng được. Mỗi platform có design guidelines riêng (Human Interface vs Material Design). Phí: iOS Developer $99/năm, Google Play $25 1 lần. Time-to-approve: iOS 1-7 ngày xét duyệt, Android < 24 giờ. Build app riêng 2 platform = chi phí gấp đôi vs cross-platform (RN/Flutter).
Sao Facebook, Shopee có cả web và mobile app — sao không chỉ 1 loại?
Mỗi loại có chỗ riêng: (1) Web — SEO mang user mới, dùng trên máy tính làm việc, share link dễ; (2) Mobile app — retention cao hơn 3-5x (icon trên màn home), push notification engagement, dùng offline. Lý tưởng: web cho discovery + onboarding, mobile app cho user thường xuyên. Cost: $1M+ để duy trì cả 3 (web + iOS + Android), nhưng ROI lớn ở scale Shopee.
Build web app có thể chuyển thành mobile app không?
Có 3 cách: (1) Wrap với Capacitor/Cordova — đóng gói web view thành app, upload App Store. Rẻ nhất nhưng UX không tốt; (2) Build PWA — không phải app thật, dùng được như app; (3) Rewrite với React Native — share component logic nhưng UI viết lại. Pattern phổ biến: bắt đầu web responsive → PWA → khi user đông đủ chuyển React Native + giữ web song song.
App store có bắt buộc cho mobile app không?
iOS: BẮT BUỘC Apple App Store. Không có cách phân phối khác (trừ Enterprise Distribution rất hạn chế). Android: có thể distribute APK trực tiếp qua web nhưng user phải bật 'install from unknown sources'. Google Play Store + Galaxy Store + Huawei AppGallery là 3 store phổ biến VN. Apk độc lập: 60% user không cài vì thấy 'unknown source' nguy hiểm.
App có dùng offline được không?
Tùy loại: Native app: có. Có thể lưu local DB (SQLite, Realm), sync khi online. PWA: có (Service Worker cache). Web app thuần: không (cần Internet để load). Pattern app tốt: offline-first — UI hoạt động ngay với data local, sync background khi có mạng. Notion, Linear, Spotify đều làm vậy.