Câu hỏi này đội ALODEV nghe gần như mỗi tuần, và nó thường được đặt sai ngay từ đầu. Lựa chọn không phải là hai, giữa web và app, mà là bốn. Chọn đúng trong bốn phương án đó quyết định chi phí trong ba năm tới nhiều hơn bất kỳ quyết định kỹ thuật nào khác.
Bốn phương án, không phải hai
- Web đáp ứng đa thiết bị. Mở bằng đường liên kết, không cài đặt, cập nhật tức thì cho mọi người dùng.
- Ứng dụng web tiến bộ (PWA). Vẫn là web, nhưng thêm được vào màn hình chính, chạy toàn màn hình, dùng được một phần khi mất mạng.
- Mini app trên Zalo. Chạy bên trong Zalo, không cài đặt, dùng luôn danh tính người dùng Zalo.
- Ứng dụng cài đặt từ kho ứng dụng, viết thuần native hoặc bằng nền tảng đa nền tảng.
Ba trường hợp thực sự cần ứng dụng cài đặt
- Cần truy cập phần cứng ở mức sâu và liên tục: định vị chạy nền suốt hành trình, quét NFC, kết nối thiết bị Bluetooth, camera xử lý theo khung hình, hoặc lưu trữ ngoại tuyến dung lượng lớn. Trình duyệt trên di động hoặc không cho phép, hoặc bị hệ điều hành cắt khi ứng dụng chạy nền.
- Người dùng mở nhiều lần mỗi ngày. Khi tần suất cao, mỗi giây tiết kiệm được nhờ biểu tượng ngoài màn hình chính đều có giá trị. Ngưỡng thực dụng là khoảng vài lần mỗi ngày, không phải vài lần mỗi tuần.
- Thông báo đẩy là phần lõi của sản phẩm chứ không phải tính năng phụ: nhắn tin, giao vận, theo dõi đơn hàng theo thời gian thực.
Không rơi vào ba trường hợp trên thì gần như chắc chắn web hoặc mini app là lựa chọn đúng, và số tiền chênh lệch nên dồn vào việc làm trang web nhanh hơn.
Giới hạn thật của PWA, đặc biệt trên iOS
PWA hay được giới thiệu như giải pháp có mọi ưu điểm của app mà không tốn kém. Điều đó đúng một nửa, và nửa còn lại cần biết trước khi cam kết với khách hàng:
- Thông báo đẩy trên iOS chỉ hoạt động từ iOS 16.4 trở lên, và chỉ khi người dùng đã tự tay thêm trang vào màn hình chính. Không thêm thì không có thông báo, bất kể mã nguồn viết đúng thế nào.
- Trên iOS không có hộp thoại gợi ý cài đặt do hệ thống hiển thị như trên Android. Người dùng phải mở menu chia sẻ rồi chọn thêm vào màn hình chính. Đây là một chuỗi thao tác mà phần lớn người dùng phổ thông không tự làm, nên phải hướng dẫn ngay trong giao diện.
- Dữ liệu lưu cục bộ có thể bị hệ điều hành thu hồi nếu người dùng không mở lại trong thời gian dài. Không xem bộ nhớ trình duyệt là nơi lưu trữ đáng tin cho dữ liệu chưa đồng bộ.
- Không có mặt trên kho ứng dụng. Với sản phẩm bán cho người tiêu dùng, việc không tìm thấy trên App Store đôi khi bị hiểu là công ty không đáng tin, dù về mặt kỹ thuật không liên quan.
Zalo Mini App: phương án hay bị bỏ qua ở Việt Nam
Với sản phẩm phục vụ người dùng phổ thông trong nước, mini app trên Zalo giải quyết được đúng rào cản lớn nhất của app truyền thống là việc phải thuyết phục người dùng cài đặt. Người dùng đã có Zalo, mở mini app là mở luôn, không tải, không chiếm dung lượng máy.
Điểm mạnh cụ thể: dùng được danh tính sẵn có nên bỏ được toàn bộ luồng đăng ký và xác thực số điện thoại, vốn là chỗ rơi rụng nhiều người dùng nhất; gắn được với official account để chăm sóc khách hàng ngay trong cùng ứng dụng; và chia sẻ qua tin nhắn tự nhiên hơn nhiều so với chia sẻ một đường liên kết tải app.
Điểm phải cân nhắc trước khi chọn: chỉ tiếp cận được người dùng Zalo, không có mặt ngoài hệ sinh thái đó; khả năng truy cập phần cứng bị giới hạn so với app cài đặt; sản phẩm phải qua kiểm duyệt của nền tảng và phải tuân theo quy định nội dung của họ; và thông báo gửi qua dịch vụ tin nhắn của Zalo phải dùng mẫu đã đăng ký duyệt trước, không gửi được nội dung tự do. Điểm cuối này hay làm vỡ tiến độ vì đội thường phát hiện ở tuần cuối, khi mọi kịch bản thông báo đã viết xong nhưng chưa mẫu nào được duyệt.
Chi phí thật của ứng dụng cài đặt, phần ít được nói tới
Chi phí phát triển ban đầu chỉ là một phần. Những khoản thường không có trong báo giá:
- Phí tài khoản nhà phát triển: Apple Developer Program 99 đô la mỗi năm và phải gia hạn đều, ngưng gia hạn là ứng dụng bị gỡ khỏi App Store. Google Play Developer 25 đô la trả một lần.
- Tài khoản Apple đứng tên tổ chức cần mã số D-U-N-S của doanh nghiệp. Xin mã này mất thời gian và nên bắt đầu ngay từ đầu dự án, không phải trước ngày phát hành một tuần.
- Mỗi bản cập nhật đều phải qua kiểm duyệt của App Store. Một lỗi nghiêm trọng phát hiện lúc 9 giờ sáng không thể vá xong lúc 10 giờ như với web. Riêng điều này đã thay đổi cách lập kế hoạch phát hành.
- Chi phí duy trì tương thích. Mỗi năm iOS và Android ra phiên bản mới kèm yêu cầu mới về quyền riêng tư và về phiên bản SDK tối thiểu. Ứng dụng không được cập nhật vài năm sẽ bị từ chối khi nộp bản mới, và việc nâng cấp dồn một lần luôn đắt hơn cập nhật đều.
Nếu đã quyết làm app: chọn cách viết nào
- Đã có sẵn ứng dụng web hoàn chỉnh và chỉ cần đóng gói cùng vài quyền thiết bị: Capacitor là đường ngắn nhất, dùng lại gần như toàn bộ mã nguồn web.
- Cần trải nghiệm gần native với một đội đã mạnh về React: React Native, đổi lại phải chấp nhận thỉnh thoảng viết mã native cho phần cầu nối.
- Cần giao diện đồng nhất tuyệt đối trên hai nền tảng và nhiều hiệu ứng chuyển động: Flutter, đổi lại thị trường tuyển dụng hẹp hơn React Native tại Việt Nam.
- Native thuần cho cả hai nền tảng: chỉ khi phần cứng hoặc hiệu năng đồ họa là yêu cầu cốt lõi. Đây là hai mã nguồn, tức là gần gấp đôi chi phí bảo trì lâu dài.
Sai lầm hay gặp: làm app cho nhân viên nội bộ dùng
Một doanh nghiệp ba mươi người muốn có app chấm công, app duyệt đơn, app xem báo cáo. Ở quy mô này, web đáp ứng đa thiết bị cộng thêm cấu hình PWA gần như luôn thắng: triển khai bản sửa lỗi trong vài phút thay vì chờ duyệt, không phải hỗ trợ người dùng cài đặt và cập nhật, không phải xử lý tình huống nhân viên dùng máy đời cũ không cài được.
Ngoại lệ duy nhất đáng làm app nội bộ là khi công việc diễn ra ngoài hiện trường và mất sóng thường xuyên: nhân viên giao hàng, kỹ thuật viên bảo trì, giám sát công trình. Khi đó khả năng làm việc ngoại tuyến và đồng bộ lại khi có mạng là yêu cầu thật, không phải mong muốn.
Quyết định trong 60 giây
- Người dùng mở dưới ba lần mỗi tuần: web là đủ, không cần bàn thêm.
- Không cần định vị chạy nền, NFC, Bluetooth hay làm việc ngoại tuyến: web hoặc PWA là đủ.
- Khách hàng là người tiêu dùng Việt Nam, dùng lặp lại, cần thông báo: cân nhắc mini app Zalo trước khi cân nhắc app cài đặt.
- Chỉ nhân viên nội bộ dùng, làm việc trong văn phòng: web đáp ứng đa thiết bị, không tranh cãi.
- Ngân sách hạn chế: làm một sản phẩm web tốt trọn vẹn có giá trị hơn một app cài đặt làm dở dang trên hai nền tảng.
Tổng kết
Câu hỏi đúng không phải là web hay app, mà là người dùng của bạn mở sản phẩm này bao nhiêu lần một tuần, và có cần thứ gì mà trình duyệt không làm được không. Trả lời hai câu đó trung thực thì phần lớn doanh nghiệp vừa và nhỏ sẽ thấy mình thuộc nhóm không cần ứng dụng cài đặt, ít nhất là ở giai đoạn hiện tại.
Nếu bạn đang phân vân giữa mini app và app cài đặt cho một sản phẩm cụ thể, đội ALODEV có thể cùng bạn dựng bảng so sánh chi phí ba năm cho từng phương án trước khi quyết.