~/VibeHandbook
PDF miễn phí

Ứng dụng / Di động

expo.dev

Expo

Nó là gì

Expo là một (khung phát triển) và nền tảng mã nguồn mở được xây dựng trên nền React Native, giúp việc xây dựng, chạy thử và phát hành ứng dụng di động trở nên dễ dàng hơn nhiều. Nó đóng gói sẵn một bộ module gốc (native modules) được tuyển chọn kỹ, một công cụ dòng lệnh, và các dịch vụ đám mây (EAS — Expo Application Services) để build và nộp ứng dụng mà bạn không cần tự quản lý Xcode hay Android Studio. Ứng dụng Expo Go cho phép bạn xem trước dự án ngay trên thiết bị thật, chỉ bằng cách quét mã QR (Quick Response) — loại mã vạch hình vuông mà bạn đưa camera điện thoại vào để quét.

Điểm mạnh

  • Loại bỏ hầu hết các rắc rối khi build ứng dụng gốc — không cần đụng đến Xcode/Gradle trong các trường hợp thông thường.
  • Một thư viện lớn các (Application Programming Interfaces — Giao diện Lập trình Ứng dụng, tức các khối chức năng dựng sẵn) gốc có sẵn, phục vụ cho các tính năng như camera, thông báo, và định vị.
  • EAS Build và EAS Submit lo phần build trên đám mây và nộp lên cửa hàng ứng dụng.
  • Cập nhật qua mạng (Over-the-air updates) cho phép bạn đẩy các bản sửa lỗi JavaScript mà không cần trải qua quy trình duyệt lại toàn bộ trên cửa hàng.
  • Định tuyến dựa trên file (Expo Router) và hỗ trợ TypeScript rất tốt.

Đánh đổi

  • Bạn bị ràng buộc vào lịch phát hành của Expo và tập hợp module gốc mà nó hỗ trợ.
  • Mã gốc (native code) tùy biến sâu có thể cần đến bước "prebuild" và nhiều cấu hình hơn.
  • Kích thước ứng dụng có thể lớn hơn, và một số tích hợp gốc nâng cao cần thêm công sức.
  • Các dịch vụ build trên đám mây có giới hạn sử dụng ở gói miễn phí.

Phù hợp nhất cho

Expo là lựa chọn mặc định đúng đắn cho phần lớn các dự án React Native — đặc biệt là các đội nhỏ và lập trình viên đơn lẻ muốn phát hành lên cả hai cửa hàng ứng dụng nhanh chóng mà không cần trở thành chuyên gia build ứng dụng gốc.

Mức độ phù hợp với vibe coding

Expo rất phù hợp để xây dựng ứng dụng với sự hỗ trợ của AI: (Command-Line Interface — Giao diện Dòng lệnh, công cụ bạn điều khiển bằng cách gõ lệnh) dựng sẵn một ứng dụng hoạt động được chỉ bằng một lệnh, Expo Go cho phép xem trước ngay trên thiết bị, và các API đóng gói sẵn nghĩa là trợ lý AI hiếm khi phải tự đấu nối mã gốc dễ vỡ. Hãy yêu cầu mô hình sử dụng Expo Router để điều hướng, TypeScript để đảm bảo an toàn kiểu dữ liệu, và các module riêng của Expo (ví dụ expo-camera) trước khi dùng các gói gốc của bên thứ ba. Hãy nói rõ cửa hàng ứng dụng mục tiêu của bạn để nó cấu hình EAS cho đúng.

npx create-expo-app@latest my-app
cd my-app
npx expo start          # scan the QR with Expo Go
npx eas build --platform all   # cloud-build for both stores