Expo Go giúp bạn mở một dự án React Native nhanh. Nhưng khi thêm một SDK cần native code, “chạy được JavaScript” không còn đủ để khẳng định tính năng chạy trong ứng dụng của bạn.
Đây là bài đánh giá dựa trên tài liệu Expo, cập nhật ngày 21/10/2026. Bài không đưa số liệu benchmark hoặc tuyên bố đã thử trên mọi thiết bị. Mục tiêu là giúp bạn chọn môi trường phát triển phù hợp với giai đoạn dự án.
1. Khác biệt nằm ở ứng dụng native đang chạy
Expo Go là một ứng dụng có sẵn. JavaScript của dự án chạy trong môi trường native mà ứng dụng đó đã đóng gói. Development build là bản ứng dụng phát triển dành cho chính dự án, có thể chứa native library và cấu hình native mà dự án cần. Expo giải thích khác biệt này trong tài liệu development builds.
Vì vậy, thêm một package bằng npm không tự đưa phần native của package vào Expo Go. Trước khi cài thư viện, hãy kiểm tra nó có dùng native code hay chỉ là JavaScript, và môi trường bạn định chạy có chứa phần cần thiết hay chưa.
2. So sánh theo nhu cầu của một team nhỏ
| Tiêu chí | Expo Go | Development build |
|---|---|---|
| Bắt đầu học component và bố cục | Ít bước thiết lập | Cần tạo và cài bản build riêng |
| Thêm native library theo dự án | Bị giới hạn bởi binary có sẵn | Có thể đóng gói thư viện cần dùng |
| Kiểm tra cấu hình native riêng | Không đại diện đầy đủ cho app riêng | Phù hợp hơn với cấu hình dự án |
| Chia sẻ JavaScript trong team | Thuận tiện khi cùng môi trường hỗ trợ | Cần quản lý cả bản build tương thích |
| Thay đổi native dependency | Không tự thay đổi binary Expo Go | Thường cần build lại binary |
Các nhận định về độ thuận tiện là đánh giá theo số bước vận hành, không phải kết quả đo tốc độ. Development build vẫn là môi trường phát triển; bạn còn cần kiểm tra bản release trước khi phát hành. Đối chiếu giới hạn thư viện của Expo Go trong Expo FAQ.
3. Khi nào nên tiếp tục với Expo Go?
Nếu bạn đang học props, state, layout hoặc làm một mẫu UI dùng các khả năng đã có, Expo Go giúp giảm số việc phải xử lý cùng lúc. Một buổi học về form không nhất thiết phải bắt đầu bằng bài toán signing và phân phối bản build.
Hãy đặt một tiêu chí dừng rõ ràng: “Mẫu này chỉ để kiểm tra luồng màn hình, chưa xác nhận SDK thanh toán, push notification hoặc hành vi nền”. Khi trình bày demo, ghi rõ phạm vi đã kiểm tra để team không hiểu nhầm thành mức độ sẵn sàng phát hành.
4. Dấu hiệu nên chuyển sang development build
Bạn nên đánh giá việc chuyển khi có một trong các nhu cầu sau:
- Thêm thư viện native không nằm trong Expo Go.
- Kiểm tra icon, scheme, cấu hình plugin hoặc hành vi cần cấu hình ứng dụng riêng.
- Cần môi trường dùng chung cho QA với bộ native dependency của dự án.
- Chuẩn bị một sản phẩm có kế hoạch phát hành, thay vì mẫu học tập ngắn hạn.
Ví dụ, team đã chọn SDK quét mã có yêu cầu native. Hãy đưa việc tạo development build vào thử nghiệm SDK ngay đầu đợt tích hợp. Nếu chỉ kiểm tra màn hình giả bằng Expo Go rồi chờ cuối sprint mới build native, rủi ro tương thích bị đẩy về cuối quá trình.
5. Một lộ trình chuyển đổi nhỏ, dễ kiểm tra
Với dự án Expo đã có, một luồng build local được tài liệu hướng dẫn là:
npx expo install expo-dev-client
npx expo run:android
Máy cần Android toolchain phù hợp. Với iOS local, cần macOS và Xcode; đọc phần nền tảng tương ứng trong hướng dẫn build của Expo. Dự án React Native chưa cấu hình Expo cần thêm các bước tích hợp, không nên coi hai lệnh trên là đầy đủ cho mọi repository.
Sau khi cài build, mở ứng dụng riêng của dự án và kết nối development server theo hướng dẫn sử dụng development build. Ghi lại phiên bản build, commit và danh sách thay đổi native. Khi chỉ sửa JavaScript tương thích với binary hiện có, vòng lặp sửa mã vẫn khác với việc thay bộ native dependency rồi build lại.
Checklist đánh giá sau khi chuyển
Chọn ba luồng thật: khởi động ứng dụng, sử dụng native module vừa thêm và mở lại ứng dụng sau khi đóng. Chạy trên các nền tảng dự án hỗ trợ. Tiếp đó, để một thành viên khác cài đúng bản build và làm lại quy trình, không dựa vào cấu hình ngầm trên máy người đầu tiên.
Nếu gặp lỗi không tìm thấy native module, hãy xác nhận bạn đang mở đúng ứng dụng và binary đã được build sau khi thêm thư viện. Khởi động lại Metro không tự thay mã native bên trong một ứng dụng đã cài.
Kết luận
Expo Go phù hợp để bắt đầu nhanh trong phạm vi mà nó hỗ trợ. Development build có thêm công việc quản lý binary nhưng giúp kiểm tra những phần thuộc về ứng dụng riêng của bạn. Chọn theo tính năng cần chứng minh, không chỉ theo số lệnh khởi động.
Đọc thêm quy trình tích hợp SDK trong React Native để chuẩn bị bước kiểm tra và release sau khi đổi môi trường.



