Khoá học AI miễn phí

25 Tháng Bảy, 2026

Khoá học làm app điện thoại bằng Claude Code: từ số 0 tới App Store

Khoá thứ ba trong loạt khoá học AI miễn phí của MONA, và là khoá “đã tay” nhất từ đầu tới giờ: anh chị sẽ tự làm ra một ứng dụng điện thoại **chạy thật trên máy thật**, có đăng nhập, có dữ liệu lưu trên mây, có cả tính năng AI bên trong, rồi đi trọn con đường nộp lên App Store và Play Store. Không cần từng viết một dòng code, không cần biết trước bất kỳ khái niệm lập trình di động nào; điều kiện duy nhất là đã học khoá Claude Code cơ bản (hoặc đã biết mở Claude Code và ra lệnh bằng tiếng người). Như thường lệ của loạt bài: viết cho người làm kinh doanh, mọi bước đều là thao tác thật, và cuối khoá có góc nhìn riêng cho doanh nghiệp Việt: khi nào doanh nghiệp nên có app, app đó nên làm kiểu gì cho khỏi phí tiền.

Mục lục khoá học

  1. Phần 1: Ba con đường làm app, và vì sao khoá này chọn Expo + React Native
  2. Phần 2: Thiết kế app cho ra hồn: khung năm tầng trước khi viết bất kỳ dòng lệnh nào
  3. Phần 3: Xây app hoàn chỉnh đầu tiên, và nghề “nắn app” qua từng lượt góp ý
  4. Phần 4: Nối “não sau” cho app: cơ sở dữ liệu và đăng nhập người dùng
  5. Phần 5: Nhét AI vào trong app: từ app “ghi chép” thành app “biết nghĩ”
  6. Phần 6: App thứ hai, thứ ba: lúc hệ thống bắt đầu trả lãi
  7. Phần 7: Vòng kiểm bảo mật trước khi mời khách vào nhà
  8. Phần 8: Đường lên App Store và Play Store: chặng giấy tờ mà máy gánh giùm anh chị 80%
  9. Phần 9: Góc nhìn MONA: doanh nghiệp Việt nên làm gì với năng lực này

Phần 1: Ba con đường làm app, và vì sao khoá này chọn Expo + React Native

Trước khi đụng tay, cần vẽ nhanh bản đồ để anh chị biết mình đang đi đường nào. Giới làm app hiện có ba con đường chính, và may cho người mới: chỉ cần hiểu đại ý từng đường, còn việc đi thì máy lo.

Đường 1: Expo + React Native (đường của khoá này). Viết ứng dụng bằng một bộ mã duy nhất, rồi từ đó xuất ra cả ba nơi: app iPhone, app Android, và cả bản web chạy trong trình duyệt. Kèm theo là một hệ sinh thái dịch vụ tên Expo lo giùm những khâu xưa nay khó nhằn: chạy thử trực tiếp trên điện thoại thật trong lúc đang dựng, đóng gói bản chính thức, nộp lên chợ ứng dụng. Một mã nguồn, ba đầu ra, đồ nghề trợ giúp đầy đủ: đúng khẩu vị người muốn ra sản phẩm nhanh.

Trang chủ Expo cho phát triển app
Trang chủ thật của expo.dev: hệ sinh thái gánh các khâu khó của nghề app, từ chạy thử trên máy thật tới đóng gói nộp chợ.

Đường 2: Flutter + Firebase (đường của hệ Google). Dùng ngôn ngữ riêng do Google phát triển, kèm bộ giao diện “đậm chất Google”: nút bấm, hộp thoại đều theo khuôn sẵn rất chỉn chu. Ưu điểm là ráp nhanh vì mọi thứ có khuôn; nhược điểm là app của anh chị dễ mang gương mặt na ná mọi app khác, muốn thẩm mỹ riêng phải gồng. Hợp với đội đã quen hệ Google, không phải lựa chọn dễ nhất cho người mới đi cùng AI.

Đường 3: Capacitor (đường “web đội lốt app”). Làm một trang web rồi bọc thêm lớp vỏ để nộp lên chợ ứng dụng. Dễ nhất nếu anh chị đã có sẵn web, nhưng học làm app mà đi đường này thì học được ít nhất, và các tính năng chạm sâu vào điện thoại (rung, thông báo đẩy, camera) phải đi qua tầng trung gian.

Khoá này đi đường 1, và có một lý do sâu hơn sự tiện: với Expo, quy trình dựng app gần như trùng khớp quy trình dựng web anh chị đã học ở khoá cơ bản. Vẫn là ra đề bằng lời, máy dựng, mình xem và góp ý; chỉ khác đích đến cuối cùng là màn hình điện thoại. Kiến thức cũ dùng lại được trọn vẹn.

Ba con đường làm app điện thoại
Ba đường lên cùng một đỉnh. Expo + React Native: một bộ mã ra cả iPhone, Android lẫn web, đồ nghề trợ giúp đủ bộ, hợp người muốn ra sản phẩm nhanh.

Dựng môi trường và chạy app đầu tiên trên máy thật trong 15 phút

Nếu anh chị đã học các khoá trước thì môi trường có sẵn một nửa: Claude Code (gói Pro trở lên) chạy trong terminal hoặc trong IDE (Antigravity, VS Code với tiện ích Claude Code chính chủ có dấu tick). Phần còn lại chỉ thêm hai thứ:

  1. Tạo thư mục dự án mới, mở Claude Code tại đó, ra lệnh đúng một câu: “làm app điện thoại bằng Expo và React Native, dựng workspace cho việc đó.” Máy tự biết bộ khung Expo cần những file gì và tự dựng trọn, không cần anh chị tải mẫu ở đâu hết.
  2. Cài Expo Go trên điện thoại (có sẵn trên App Store lẫn Play Store, miễn phí, tạo một tài khoản Expo). Đây là ứng dụng “khung xem thử”: app anh chị đang dựng trên máy tính sẽ hiện ra bên trong nó.
Expo Go trên App Store
Expo Go thật trên App Store: khung xem thử miễn phí, cài vào điện thoại rồi quét mã QR là thấy app mình đang dựng.

Rồi thử liền cho nóng máy: “tạo một app demo theo dõi thói quen đơn giản, xong khởi động máy chủ Expo trong một cửa sổ terminal mới để hiện mã QR.” Chi tiết “cửa sổ terminal mới” là mẹo xương máu: để máy chạy trong khung chat thì mã QR không hiện tử tế. Vài phút sau terminal hiện một mã QR to đùng; mở camera điện thoại quét, bấm mở bằng Expo Go, và app anh chị vừa mô tả bằng miệng đang chạy trên chính điện thoại của mình. Cảm giác lần đầu chứng kiến, nói thật, không khác gì lần đầu thấy máy dựng web ở khoá một: không tin nổi nó dễ vậy.

Một câu hỏi hay gặp ở bước này, trả lời luôn cho yên tâm: “app của tôi có bị Expo giữ làm con tin không?” Không. Expo Go chỉ là khung xem thử lúc đang dựng; mã nguồn app nằm nguyên trong thư mục dự án của anh chị (và trên GitHub của anh chị từ phần 3 trở đi). Tới lúc phát hành, bản chính thức là app độc lập cài thẳng lên máy người dùng, không dính gì tới Expo Go nữa. Expo là giàn giáo, không phải móng nhà.

Hai ghi chú trước khi qua phần thiết kế. Một, trong lúc dựng, máy sẽ có lúc chìa hướng dẫn bắt anh chị tự gõ lệnh; nhớ bài cũ: “làm giùm luôn đi” là nó tự làm, đừng ngoan ngoãn đi gõ tay. Hai, chạy thử có lúc báo lỗi đỏ dưới màn hình (kiểu thư viện không tương thích phiên bản); đừng hoảng, chép nguyên văn lỗi dán vào Claude Code, nó tự bắt bệnh và tự thay phiên bản thư viện phù hợp. Xử lý lỗi bằng cách dán lỗi: kỹ năng nghe thô sơ mà gánh nửa nghề làm app cùng AI.

Quét mã QR chạy app trên điện thoại thật
Vòng chạy thử: máy dựng trên máy tính, hiện mã QR, điện thoại quét là thấy app. Sửa tới đâu điện thoại cập nhật tới đó, không phải cài đi cài lại.

Tự tay làm: dựng workspace Expo, tạo app demo bất kỳ, chạy được nó trên điện thoại của chính mình qua Expo Go. Chưa cần đẹp, cần cảm giác “nó chạy thật trên máy mình”.

Phần 2: Thiết kế app cho ra hồn: khung năm tầng trước khi viết bất kỳ dòng lệnh nào

Máy dựng được mọi thứ anh chị mô tả. Vấn đề của thời này vì vậy không còn là “làm nổi không” mà là “nên làm cái gì”. Đây là phần đáng tiền cho người làm kinh doanh: khung thiết kế năm tầng mà dân làm app tử tế đi qua trước khi viết dòng lệnh nào. Nắm nó, anh chị nhìn mọi app trên đời (kể cả app đối thủ) bằng con mắt khác.

Trước khi điền khung, sàng ý tưởng qua ba câu hỏi cho đỡ tốn công vào ý tưởng chết non. Một: người dùng gặp việc này bao nhiêu lần một tuần? Việc gặp hằng ngày (ghi chép, theo dõi, nhắc nhở) nuôi app sống; việc mỗi năm gặp một lần thì làm trang web đủ rồi. Hai: app có gì mà bản web hoặc Zalo không làm được? Câu trả lời đáng giá thường nằm ở ba thứ chỉ app có: thông báo đẩy, camera, và chạy mượt không cần mạng. Không dùng tới thứ nào trong ba thứ đó, cân nhắc lại việc làm app. Ba: mình có chạm được nhóm người dùng đầu tiên không? App cho khách ruột của chuỗi mình là chạm được ngay; app cho “mọi người ăn kiêng trên đời” là cuộc chiến khác hẳn. Ba câu đều xuôi thì điền khung năm tầng.

Tầng 1: chức năng lõi (core function). Câu hỏi: gỡ sạch mọi thứ trang trí, app này còn lại đúng một việc gì? App theo dõi thói quen: tạo thói quen và chạm để ghi nhận. App đếm calo: chụp món ăn và ra con số. Trả lời không gọn được câu này nghĩa là chưa nên làm app.

Tầng 2: vòng lặp lõi (core loop). Hành động của người dùng phải được nối với một phần thưởng, và cả vòng gói dưới 30 giây: chạm ghi nhận thói quen → tiếng chuông vui tai + máy rung nhẹ + hoạt ảnh nở ra + xong chuỗi thì pháo giấy rơi. Người là sinh vật ưa phản hồi tức thì; app thiếu vòng thưởng là app bị mở một lần rồi quên. Các app đắt khách còn chơi tầng cao hơn: viên ngọc mỗi ngày một lộng lẫy theo chuỗi ngày giữ thói quen, cái cây lớn dần theo phút tập trung. Phần thưởng thị giác là ngôn ngữ chung của mọi app giữ được người dùng.

Tầng 3: tính năng vệ tinh (accessory features). Những thứ bọc quanh vòng lõi và làm nó dày thêm, không thay thế nó: lịch sử và biểu đồ chuỗi ngày, nhiều kiểu thói quen (loại làm-một-lần và loại đếm-số-lần như uống đủ tám ly nước), có thể thêm tính năng rủ người quen cùng theo dõi. Nguyên tắc: vệ tinh phục vụ hành tinh, không mọc thành hành tinh mới.

Tầng 4: soát diện tích bề mặt (surface area check). Bệnh kinh niên của người mới: hào hứng quá nhét mười chức năng lõi, trăm màn hình. Người dùng mở app rối là xoá. Luật gọn: năm tới bảy màn hình là kịch trần, và người dùng phải tự hiểu cách xài ngay lượt mở đầu tiên, không cần ai giảng.

Tầng 5: móc quay lại (retention hook). Lý do để người dùng mở app lần nữa: thử thách 3 ngày liên tục ngay sau khi cài (muốn xong thử thách thì phải quay lại ba lần), thông báo đẩy hỏi thăm đúng giờ đã hẹn. App không có móc quay lại là app cài hôm nay xoá tuần sau; mọi app sống khoẻ trên chợ đều được thiết kế có chủ đích để kéo người quay lại, và mình học điều đó một cách đàng hoàng: nhắc đúng thứ người dùng tự muốn làm.

Khung năm tầng thiết kế app
Chức năng lõi, vòng lặp thưởng dưới 30 giây, tính năng vệ tinh, trần 5-7 màn hình, và móc quay lại. Đủ năm tầng là có bản mô tả sản phẩm tử tế để giao cho máy.

Điền thử khung này cho một app sát sườn doanh nghiệp Việt để anh chị thấy nó dễ áp cỡ nào: app khách quen cho chuỗi spa. Tầng 1, chức năng lõi: đặt lịch hẹn trong ba chạm. Tầng 2, vòng lặp lõi: đặt xong lịch là thấy ngay xác nhận đẹp mắt kèm điểm thưởng cộng vào, có tiếng “ting” và hoạt ảnh; tổng vòng dưới 15 giây. Tầng 3, vệ tinh: lịch sử liệu trình kèm ảnh da qua từng buổi (chính là cái khách spa mê nhất, như câu chuyện chị chủ chuỗi 22 chi nhánh tụi em từng kể trong loạt bài trước), hạng thành viên theo điểm, ví voucher. Tầng 4, soát bề mặt: năm màn hình là kịch: trang chủ đặt lịch, lịch sử, ưu đãi, hồ sơ, và màn xác nhận. Tầng 5, móc quay lại: nhắc lịch tái hẹn đúng chu kỳ liệu trình, voucher sinh nhật, và thông báo “da của chị đã qua 5 buổi, xem ảnh so sánh”. Mười lăm phút điền khung, và anh chị đã có bản mô tả mà nhiều phòng sản phẩm họp ba buổi chưa chốt được.

Điều đẹp nhất của khung này: điền xong năm tầng là anh chị có luôn bản đề bài hoàn chỉnh giao cho Claude Code. Cách giao cũng học từ khoá trước: xả một tràng bằng giọng nói. Nói rõ từng tầng: “chức năng lõi của app này là X; vòng lặp lõi là mỗi lần người dùng làm Y thì thưởng bằng âm thanh, rung, hoạt ảnh; tính năng vệ tinh gồm A, B, C; giữ tối đa sáu màn hình; móc quay lại là thử thách 3 ngày kèm thông báo đẩy mỗi ngày một lần.” Một tràng nói đó đáng giá hơn trăm câu lệnh vụn, vì máy nhìn thấy toàn cảnh ý đồ thay vì đoán mò từng mẩu.

Tự tay làm: chọn một ý tưởng app (gợi ý: lấy ngay nghiệp vụ công ty mình), điền khung năm tầng ra giấy. Chưa dựng vội; phần 3 sẽ dựng.

Phần 3: Xây app hoàn chỉnh đầu tiên, và nghề “nắn app” qua từng lượt góp ý

Giờ ráp mọi thứ: lấy bản khung năm tầng của app theo dõi thói quen, xả vào Claude Code, và đi trọn con đường từ bản thô tới bản mượt. Phần này dài vì nó chính là cái nghề: dựng thì máy dựng, còn nắn cho ra sản phẩm xài được là tay nghề của người cầm.

Nhịp 0: dọn bàn trước buổi làm. Nghe hơi thừa mà tiết kiệm cả buổi: trước mỗi phiên làm app, gõ /clear cho bộ nhớ sạch (bài khoá một: việc mới phiên mới), mở sẵn ba cửa sổ: Claude Code, trình duyệt cho bản thử, và điện thoại có Expo Go. Ba màn hình đó là bàn làm việc chuẩn của nghề này; thiếu cái nào là buổi làm cà giật cái đó.

Nhịp 1: dặn nền trước khi xây. Vào thư mục dự án, chạy /init cho máy tự viết CLAUDE.md (bài cũ của khoá một: bản nén bối cảnh giúp mọi phiên sau khởi động nhẹ và khôn). Rồi mới xả tràng đề bài năm tầng. Máy sẽ trình kế hoạch chia đợt kiểu “tôi làm phase 1 trước nhé”; nếu anh chị muốn trọn gói thì nói thẳng: “làm hết từ phase 1 tới 4 luôn, xong mở trong Chrome để thử.” Máy có thói quen tiết kiệm sức và token, giao việc phải nói rõ khẩu phần.

Nhịp 2: thử trên máy tính trước cho dễ soi. Bản đầu mở ra sẽ vừa đẹp vừa lỗi: chữ trùng màu nền thành tàng hình, thống kê tính sai (làm 1 ngày mà hiện 3%), chữ dài tràn dòng, nút đặt giờ nhắc không bấm được. Bình thường tuyệt đối. Nghề nằm ở cách góp ý: đi từng màn hình, tả từng lỗi bằng lời thường, gom thành một tràng dài rồi gửi một thể. Một tràng góp ý thật trong khoá trông như vầy: “màn hình quản lý: chữ tên thói quen trùng màu nền, sửa toàn cục vì lỗi này lặp nhiều chỗ; thống kê đang tính theo 30 ngày nhưng nhãn ghi 7 ngày, kiểm tra lại công thức; phần đặt giờ nhắc phải cho từng thói quen một giờ riêng chứ không phải một giờ chung; và thêm một màn hình cuối trong phần chào mừng giải thích cách app hoạt động.” Tràng nào cũng chốt bằng: “đó là 80/20 của đợt này, sửa xong mở tab mới để thử tiếp.” Ba tới bốn lượt như vậy là app vào nếp; mỗi lượt máy sửa trong vài phút.

Một điều nữa nên chuẩn bị tinh thần từ sớm cho đỡ nản: màn hình lỗi đỏ là đồng nghiệp, không phải án tử. Làm app kiểu gì cũng sẽ có lúc mở lên thấy nguyên màn đỏ chữ trắng khó hiểu. Nhịp xử chuẩn chỉ có ba bước: bình tĩnh, chép nguyên văn (hoặc chụp màn hình), dán cho máy kèm câu “app đang báo lỗi này, xử giùm”. Chín phần mười máy tự bắt bệnh tự vá trong một lượt; phần còn lại nó sẽ hỏi thêm một hai câu. Người mới khác người cứng ở đúng chỗ này: người mới thấy màn đỏ là đóng máy, người cứng thấy màn đỏ là dán nó cho máy rồi đi rót nước.

Nhịp 3: đòi chế độ thử cho người dựng. Mẹo ít người biết mà tiết kiệm khối thời gian: bắt máy làm khu vực dành cho người phát triển ngay trong app: nút giả lập “coi như đã xong thử thách 3 ngày”, nút xoá sạch dữ liệu làm lại từ đầu, nút chạy thử màn pháo giấy. Không có khu này, muốn xem màn chúc mừng chuỗi 3 ngày thật sự phải… chờ 3 ngày. Câu lệnh: “thêm khu developer trong phần cài đặt: giả lập hoàn thành thử thách, xoá dữ liệu, kích hoạt thử các hoạt ảnh thưởng.”

Vòng nắn app qua từng lượt góp ý
Bản đầu 80%, mỗi tràng góp ý gom lỗi theo màn hình đẩy thêm một nấc. Ba bốn lượt là vào nếp. Tay nghề nằm ở tràng góp ý, không nằm ở câu lệnh đầu.

Nhịp 3b: mượn gu thẩm mỹ cho nhanh đẹp. App bản đầu của máy thường “sạch nhưng nhạt”. Cách lên đời nhanh nhất học từ bài dựng web khoá một: tìm một app có gu mà anh chị mê (trong chính điện thoại mình, hoặc các trang trưng bày thiết kế app), chụp vài màn hình, đưa máy kèm câu: “mượn cái gu này: khoảng đệm, bo góc, cỡ chữ, cách dùng màu; nội dung giữ nguyên của mình; xong tự chụp màn hình so với mẫu và chỉnh tới khi cùng đẳng cấp.” Vòng lặp tự soi gương chạy vài lượt là app khoác bộ đồ mới. Nhắc ranh giới cũ: mượn cái khung thẩm mỹ, không sao chép nội dung hay nhận diện của người ta.

Nhịp 4: lên điện thoại thật, nơi lộ những thứ máy tính giấu. Xong bản máy tính, khởi động Expo, quét QR, và cầm điện thoại soi bằng ngón tay cái. Đây là bước không bỏ được, vì có cả một họ lỗi chỉ hiện trên máy thật: icon bị cắt cụt nửa đầu; đồng hồ hệ thống đè lên chữ vì quên chừa khoảng đệm cho tai thỏ iPhone; nút quan trọng nằm ngoài tầm với của ngón cái khi cầm một tay; cuộn trang giật; và những thứ máy tính không có: tiếng chuông nghe ra sao qua loa thật, máy rung có đúng nhịp không, thông báo đẩy có hiện đúng lúc không. Ghi chú từng thứ (xả giọng nói cho lẹ), về gửi máy sửa một tràng. Kinh nghiệm đúc lại: cứ cộng thêm 10-15 phút thử máy thật cho mỗi đợt sửa lớn, coi như thuế chất lượng, đóng đều thì app mượt.

Nhịp 5: chốt phiên bản, cất kho. App tới bản ưng ý thì làm hai việc học từ khoá trước, giờ thành phản xạ: cập nhật CLAUDE.md (app không còn là bản demo, mô tả mới phải theo kịp) và đẩy code lên GitHub: “tạo kho GitHub cho dự án này kèm file giới thiệu rồi đẩy lên.” Từ nay mọi thay đổi đều có bản lưu, máy có lỡ sửa hỏng gì cũng quay lại được bản trước trong một câu lệnh. Làm app mà không có lưới này, một lần “lỡ tay” của máy là mất trắng buổi làm việc.

Kiểm tra trên điện thoại thật
Máy tính không có ngón cái, không có loa rung, không có tai thỏ. Họ lỗi chỉ lộ trên máy thật là lý do bước thử này không bỏ được.

Tự tay làm: dựng app theo khung năm tầng đã điền ở phần 2, đi đủ năm nhịp: dặn nền, thử máy tính 2-3 tràng góp ý, đòi khu developer, thử máy thật, đẩy GitHub.

Phần 4: Nối “não sau” cho app: cơ sở dữ liệu và đăng nhập người dùng

App của anh chị đang chạy ngon, nhưng có một giới hạn chí mạng: toàn bộ dữ liệu đang nằm trên chính chiếc máy chạy app. Đưa app cho người khác cài, họ bắt đầu từ con số không; anh chị đổi điện thoại, dữ liệu ở lại máy cũ. Muốn app thành sản phẩm thật cho nhiều người dùng, phải nối nó với một “não sau” trên mây: cơ sở dữ liệu, kèm cánh cổng đăng nhập để não đó biết dữ liệu nào của ai.

Trước khi nối, một lời khuyên ngược dòng nghe cho kỹ: đừng vội nối database nếu chưa cần. App chạy cục bộ (dữ liệu nằm trên máy người dùng) có cái sướng của nó: không tốn đồng nào cho máy chủ, không lo bảo mật dữ liệu tập trung, không cần màn đăng nhập làm phiền người dùng. App công cụ cá nhân, app thử ý tưởng, app demo cho khách xem: cứ cục bộ mà chạy. Chỉ nối não sau khi câu trả lời là “có” cho ít nhất một trong ba: cần dùng trên nhiều máy, cần nhiều người dùng nhìn dữ liệu của nhau, hoặc cần dữ liệu sống sót khi người dùng đổi điện thoại. Nối sớm là gánh sớm chi phí và trách nhiệm chưa cần gánh.

Kiến trúc chuẩn vẽ ra chỉ có ba khối, và anh chị nên thuộc nó vì mọi app trên đời đều chung khung này: app ↔ thiết bị ↔ cơ sở dữ liệu. App nói chuyện với bộ nhớ trên thiết bị trước (để mọi thao tác hiện ra tức thì, không phải chờ mạng), rồi thiết bị đồng bộ với cơ sở dữ liệu trên mây theo nhịp nền. Dân trong nghề gọi là “local-first caching”: người dùng thấy app nhanh như đồ chạy máy, dữ liệu vẫn an toàn trên mây. Khi ra đề cho máy, anh chị chỉ cần nói đúng ý đó bằng tiếng người: “thêm cơ sở dữ liệu cho app, dùng Supabase, giữ lớp đệm cục bộ cho trải nghiệm mượt, và thêm đăng nhập bằng email mật khẩu.”

Dịch vụ dùng trong khoá là Supabase, gương mặt quen từ các khoá trước: có gói miễn phí, lo trọn cả cơ sở dữ liệu lẫn hệ đăng nhập, và cả làng vibe coding đang xài nên máy rất thuộc đường. Nói cho sòng phẳng như người dạy gốc của khoá nguồn cũng thừa nhận: đây là lựa chọn “quen tay” hơn là chân lý duy nhất; đội đã có hệ khác cứ việc dùng hệ đó, khung ba khối không đổi.

Trang chủ Supabase
Trang chủ thật của supabase.com: não sau trọn gói gồm cơ sở dữ liệu lẫn hệ đăng nhập, gói miễn phí đủ cho app mới.

Quy trình nối, đúng trình tự đã chạy thật:

  1. Tạo dự án trên Supabase: đặt tên, cho nó tự sinh mật khẩu database, chọn vùng máy chủ gần người dùng của anh chị (người dùng Việt thì chọn Singapore, đừng chọn Mỹ, mỗi cú bấm đỡ vài trăm mili giây độ trễ), và tick bật automatic RLS, cái nút bảo mật sống còn đã học ở khoá nâng cao: thiếu nó, một người dùng bất kỳ đọc được dữ liệu của mọi người dùng.
  2. Một quyết định nhỏ đáng làm cho đúng ngay từ đầu: sao lưu. Trong phần cài đặt dự án Supabase có mục sao lưu tự động; gói miễn phí giữ bản lưu vài ngày, gói trả phí giữ dài hơn. App còn thử nghiệm thì gói miễn phí ổn; ngày app bắt đầu có dữ liệu khách thật, nâng cấp mục này trước khi nâng bất kỳ thứ gì khác, vì dữ liệu là thứ duy nhất không dựng lại được bằng một câu lệnh.
  1. Đưa chìa khoá cho máy: chép URL dự án, khoá công khai, chuỗi kết nối từ trang Supabase dán vào Claude Code. Nó tự cài đặt, tự viết schema: bộ bảng dữ liệu của app. Với app thói quen, máy tự luận ra bốn bảng: hồ sơ người dùng, thói quen, lượt hoàn thành, thử thách, khoá với nhau bằng mã người dùng. Khâu này ngày xưa là vài tuần đánh vật của người mới; giờ là vài chục giây, và anh chị chỉ cần đọc lướt xem các bảng có khớp logic nghiệp vụ không.
  2. Tắt bước xác nhận email trong phần cài đặt đăng nhập của Supabase (cho người dùng đỡ một bước lằng nhằng lúc mới cài; sau này app lớn muốn siết thì bật lại), và nếu máy cần đăng nhập tài khoản Supabase thì mở terminal mới chạy lệnh đăng nhập nó đưa.

Xong ba bước, mở app: giờ có màn đăng ký tài khoản đàng hoàng bọc ngoài, và đây là khúc nên tự thưởng một phút sướng: mở trang quản trị Supabase, vào mục bảng dữ liệu, nhìn dữ liệu chạy sống: tạo thói quen trên app là thấy dòng mới hiện trong bảng; xoá trên app là dòng biến mất; sửa số liệu thẳng trong bảng, quay lại app thấy đổi theo. Trang quản trị đó cũng chính là bàn điều khiển của anh chị sau này: tạo tài khoản giùm khách bị kẹt, xem app có bao nhiêu người dùng, dữ liệu tăng kiểu gì. Anh chị vừa sở hữu thứ mà một đội phần mềm chục năm trước phải dựng cả tháng.

Kiến trúc app, thiết bị và cơ sở dữ liệu
Khung ba khối của mọi app: app nói chuyện với thiết bị cho nhanh, thiết bị đồng bộ với não sau trên mây. Đăng nhập là cánh cổng cho não biết dữ liệu nào của ai.
Dữ liệu chạy sống trên bảng Supabase
Thao tác trên app, dòng dữ liệu đổi ngay trên bảng. Trang quản trị này về sau là bàn điều khiển vận hành: quản người dùng, soi dữ liệu, cứu khách bị kẹt tài khoản.

Hiểu schema bằng một hình ảnh đời thường cho khỏi ngợp: cơ sở dữ liệu là tủ hồ sơ của công ty, mỗi bảng là một ngăn kéo có nhãn, mỗi dòng là một tờ phiếu. Ngăn “người dùng” chứa phiếu của từng khách; ngăn “thói quen” chứa phiếu từng thói quen, trên phiếu có ghi mã khách để biết của ai; ngăn “lượt hoàn thành” ghi lại từng lần khách chạm nút kèm ngày giờ. Máy giỏi ở chỗ tự luận ra cần mấy ngăn, nhãn gì, phiếu ghi trường nào, từ chính mô tả nghiệp vụ của anh chị. Việc của anh chị là đọc lướt danh sách ngăn kéo và tự hỏi: có ngăn nào thiếu không (app bán hàng mà thiếu ngăn “đơn hàng” là báo động), có trường nào thừa thãi nhạy cảm không (không có lý do gì ngăn hồ sơ phải lưu ngày sinh nếu app không dùng tới, nhớ nguyên tắc “không cần giữ thì đừng giữ” của bài bảo mật).

Trang quản trị Supabase cũng đáng luyện một thao tác “cứu hoả” mà đội chăm sóc khách nào cũng sẽ cần: khách nhắn “em ơi chị không tạo được tài khoản”. Vào mục người dùng, bấm tạo tài khoản tay, điền email của khách, đặt mật khẩu tạm, tick tự xác nhận, gửi khách kèm lời dặn đổi mật khẩu. Ba mươi giây, khách được cứu, không cần gọi ai kỹ thuật. Quyền vào trang quản trị này, dĩ nhiên, giữ như giữ két: nó nhìn thấy toàn bộ dữ liệu app.

Nhớ kiểm lại tam giác thử: máy tính, Expo, máy thật, vì thêm tầng mạng là thêm chỗ phát sinh lỗi mới (thư viện không hợp phiên bản là ca kinh điển; dán nguyên văn lỗi cho máy tự xử như đã học).

Tự tay làm: nối app của anh chị với Supabase đủ ba bước, tạo hai tài khoản thử, mở trang quản trị xem dữ liệu hai tài khoản tách bạch nhau, và thử sửa một ô dữ liệu từ phía bảng xem app đổi theo.

Phần 5: Nhét AI vào trong app: từ app “ghi chép” thành app “biết nghĩ”

Tới nấc phân biệt app thường với app thời nay: cho AI sống bên trong app. Với app thói quen, khoá dựng hai tính năng mà anh chị thấy ngay giá trị: huấn luyện viên thông minh (định kỳ đọc dữ liệu chuỗi ngày của người dùng rồi đẩy thông báo cá nhân hoá: “14 ngày ngủ đúng giờ, nể thật. Nhưng mục uống nước đang đuối, thử để chai nước ngay bàn làm việc xem”) và bản tổng kết tuần (AI viết báo cáo riêng cho từng người: mục nào bền nhất, mục nào rớt giữa tuần, tuần sau nên chỉnh gì).

Kiến trúc của mọi tính năng AI-trong-app đều chung một dòng chảy, nắm nó là anh chị tự vẽ được tính năng cho app của mình:

App (trên điện thoại) → hàm chạy thoáng qua trên mây → đọc cơ sở dữ liệu → gói dữ liệu gửi model AI kèm đề bài → nhận kết quả → ghi ngược vào cơ sở dữ liệu → đẩy thông báo về điện thoại.

Hai khái niệm mới, giải bằng tiếng người:

  • Hàm chạy thoáng qua (edge function / serverless): thay vì nuôi một máy chủ chạy 24/7 chỉ để mỗi ngày làm việc vài giây, mình dùng loại “máy chủ chớp nhoáng”: bật lên đúng lúc cần, chạy một giây, tắt. Rẻ hơn cả trăm lần cho quy mô app mới, và Supabase có sẵn món này, máy tự đọc tài liệu tự dựng.
  • Gọi model AI qua API: app gửi dữ liệu kèm một đề bài viết sẵn (“đây là dữ liệu thói quen của một người dùng, viết một lời nhắn huấn luyện viên: ấm áp, cụ thể, dưới 40 chữ”) tới Claude qua API, trả tiền theo lượt gọi. Cần một khoá API riêng cho app lấy từ trang của Anthropic; và áp dụng ngay bài bảo mật khoá 2: khoá này sống trong file cấu hình bí mật phía máy chủ, tuyệt đối không nằm trong app (app là thứ nằm trên máy người lạ, giấu gì trong đó cũng bị moi ra được).

Cách ra đề thực tế: vẽ (hoặc chụp lại) sơ đồ dòng chảy ở trên, dán kèm tràng mô tả: “làm hai tính năng này, backend dùng Claude qua Supabase edge function, model dùng loại vừa tiền, cập nhật cơ sở dữ liệu cho khớp.” Máy tự đọc tài liệu edge function, tự dựng bảng mới, tự viết đề bài con cho model. Việc của anh chị là duyệt giọng của lời nhắn (đây là chỗ khẩu vị thương hiệu của anh chị lên tiếng: lời nhắn của app spa phải khác app tập gym) và chốt nhịp (mỗi ngày một lần là đủ; nhắn dày quá là người dùng tắt thông báo, mất luôn cái móc quay lại).

Để anh chị hình dung “đề bài con cho model” cụ thể tới mức nào, đây là bản mẫu dùng được ngay cho tính năng huấn luyện viên, chỉnh giọng theo thương hiệu của mình: “Nhận vào: dữ liệu 14 ngày gần nhất của một người dùng gồm danh sách thói quen, chuỗi ngày liên tục, tỷ lệ hoàn thành từng mục. Viết MỘT lời nhắn ngắn dưới 40 chữ, giọng ấm và cụ thể như huấn luyện viên quen: khen đúng một điểm sáng có số liệu, chỉ đúng một điểm đang đuối, gợi một mẹo nhỏ làm được ngay hôm nay. Cấm chung chung kiểu cố lên nhé, cấm liệt kê, cấm quá một câu cảm thán.” Đề bài tổng kết tuần cùng khuôn nhưng dài hơn: cho phép 5-7 câu, bắt buộc có ba con số, kết bằng một câu hỏi mở cho tuần sau. Anh chị để ý: viết đề bài cho model giống hệt viết bản mô tả công việc cho một nhân viên chăm khách, và ai viết mô tả công việc giỏi sẽ viết đề bài giỏi. Đó là lợi thế của người làm kinh doanh mà dân thuần kỹ thuật không có.

Bài thực hành CalTracker đáng tả thêm vài dòng vì nó là khuôn cho cả họ “app chụp-ảnh-ra-kết-quả”: người dùng chụp món ăn, app nén ảnh rồi gửi qua hàm chớp nhoáng, hàm chuyển ảnh cho model kèm đề bài “nhận diện món ăn trong ảnh, ước lượng khẩu phần, trả về tên món, calo, đạm, béo, bột đường ở dạng có cấu trúc”, kết quả ghi vào ngăn “bữa ăn” của tủ hồ sơ, app hiện đẹp đẽ kèm tổng ngày. Cùng bộ xương đó, thay đề bài là ra app khác: chụp danh thiếp ra danh bạ khách, chụp hoá đơn ra sổ chi, chụp kệ hàng ra phiếu kiểm kho. Anh chị đọc tới đây chắc đã tự thấy: họ app này với doanh nghiệp Việt là cả một mỏ.

Một góc nhìn tiền bạc đáng dừng lại từ trải nghiệm dựng thật: tính năng AI kiểu này ngốn vài chục nghìn token lúc dựng và vài đồng lẻ mỗi lượt chạy. Nghĩa là anh chị đang đổi token lấy tính năng mà xưa kia là đặc quyền của app triệu đô. App đếm calo bằng cách chụp ảnh món ăn, mô hình từng được mua lại với giá năm chục tới trăm triệu đô, giờ là bài thực hành giữa khoá: cùng dòng chảy trên, chỉ thay “đọc dữ liệu thói quen” bằng “gửi tấm ảnh món ăn” và thay đề bài thành “nhận diện món, ước lượng calo và các chất chính”. Cánh cửa đã mở cho mọi người; khác biệt còn lại nằm ở chỗ ai chọn đúng bài toán và nuôi được người dùng.

Kiến trúc tính năng AI trong app
Một dòng chảy dùng cho mọi tính năng AI-trong-app: hàm chớp nhoáng đọc dữ liệu, gửi model kèm đề bài, ghi kết quả, đẩy thông báo. Thay ruột đề bài là ra tính năng mới.

Tự tay làm: dựng tính năng huấn luyện viên thông minh cho app của anh chị theo dòng chảy trên; tự viết đề bài con cho model bằng giọng thương hiệu của mình; thử trên máy thật xem thông báo đẩy tới đúng nhịp không.

Phần 6: App thứ hai, thứ ba: lúc hệ thống bắt đầu trả lãi

Khoá nguồn không dừng ở một app, và lý do rất đáng học: app đầu tiên là học phí, từ app thứ hai mới thấy lãi. Hai app tiếp theo được dựng trong khoá: CalTracker (chụp món ăn, AI đếm calo, đúng mô hình app triệu đô kể trên) và một app Pomodoro rừng cây (bấm giờ tập trung 25 phút, mỗi phiên xong mọc một cái cây trong khu rừng của mình, đủ loại cây từ thông tới anh đào tới cây pha lê, cây héo nếu bỏ bê, chạm vào cây thấy rung nhẹ và lắc lư như thật).

Ba bài học rút ra từ vòng lặp lại này, bài nào cũng đáng tiền:

Một, lần sau nhanh hơn hẳn lần trước, nếu anh chị có tích luỹ. App một mất trọn quy trình mò mẫm; app hai đi nhanh gấp rưỡi vì CLAUDE.md toàn máy đã dày lên bộ khẩu vị, các vết vấp đã thành luật; app ba gần như trượt băng. Đỉnh của tích luỹ là bước cuối khoá nguồn làm: viết hẳn một CLAUDE.md khuôn dựng app: máy chủ động hỏi ngược một loạt câu (app làm gì, cho ai, năm tầng thiết kế điền sao, phong cách thẩm mỹ nào), nhận đủ đáp án là tự chạy trọn quy trình: dựng, tự thử trên Chrome, dựng database theo nếp chuẩn, chạy audit bảo mật, rồi mới mời anh chị vào thử máy thật. Nghe quen đúng không: chính là tư duy “đóng quy trình thành skill” của khoá một, áp lên chính nghề làm app.

Bộ câu hỏi trong CLAUDE.md khuôn của tụi em, anh chị chép về sửa: (1) app này giải cái đau gì, cho ai; (2) chức năng lõi gói trong một câu là gì; (3) vòng lặp lõi thưởng người dùng bằng gì, bao nhiêu giây; (4) kể tối đa năm tính năng vệ tinh, xếp theo độ quan trọng; (5) mấy màn hình, kể tên từng màn; (6) móc quay lại là gì, thông báo đẩy nhịp nào; (7) mỏ neo thẩm mỹ là app hay trang web nào, đưa ảnh chụp; (8) có cần đăng nhập và dữ liệu trên mây không, hay bản đầu chạy cục bộ; (9) có tính năng AI nào không, mô tả dòng chảy; (10) ai là người thử bản đầu, bao nhiêu người. Máy hỏi lần lượt, anh chị trả lời bằng giọng nói, đáp xong câu 10 là nó chạy trọn quy trình. Cả buổi thiết kế app co lại thành một cuộc phỏng vấn 15 phút mà người phỏng vấn không bao giờ quên hỏi câu nào.

Hai, thẩm mỹ có mẹo riêng cho app. Muốn app đẹp mà không thuê designer: chụp màn hình app có gu (khoá nguồn mượn gu thiết kế của Apple) đưa máy làm mỏ neo thẩm mỹ, y hệt bài “đưa ảnh mẫu” khi dựng web ở khoá một: mượn cái khung bo góc, khoảng đệm, cỡ chữ, còn nội dung là của mình. Riêng đồ hoạ trong app (bộ cây cối, icon, huy hiệu): sinh bằng AI tạo ảnh, nhưng nhớ vết vấp đã trả giá giùm anh chị: sinh từng tấm một, nền trong suốt, đừng bắt sinh cả lưới nhân vật trong một tấm rồi cắt, cắt kiểu gì cũng cụt đầu cụt chân.

Bài học phụ nhưng đáng tiền từ app rừng cây: app nặng hình phải có bước ép cân. Bộ cây cối sinh bằng AI đẹp lung linh nhưng mỗi tấm nặng cả MB; nhét nguyên vào app là app phình, máy yếu tải khựng, người dùng mạng chậm chờ dài cổ. Trước khi chốt bản, thêm một lệnh thành nếp: “rà toàn bộ ảnh trong app, nén về đúng kích cỡ hiển thị, báo cáo dung lượng trước sau.” App nhẹ đi vài lần chỉ nhờ một câu. Nguyên tắc chung cho mọi app nhiều hình: hình hiển thị cỡ nào, lưu cỡ đó, đừng bắt điện thoại người ta gánh ảnh 4K để hiện khung 200 điểm ảnh.

Ba, càng về sau, phần việc của người càng dồn về thử và duyệt. Nhìn lại nhật ký dựng ba app sẽ thấy tỷ lệ thời gian đổi hẳn: lần đầu người bận rộn cả buổi; lần ba, máy làm phần lớn, người chủ yếu cầm điện thoại soi, xả tràng góp ý, duyệt bảo mật. Đó là đúng quỹ đạo “vai người trượt lên tầng ra đề và chịu trách nhiệm” mà khoá nâng cao đã vẽ; nghề mới của anh chị là giám đốc sản phẩm, không phải thợ gõ.

Làm app thứ hai nhanh hơn nhờ hệ thống tích luỹ
App một là học phí, app hai bắt đầu lãi, app ba trượt băng. Của để dành nằm trong CLAUDE.md khuôn: máy hỏi ngược đủ ý rồi tự chạy trọn quy trình dựng.

Tự tay làm: dựng app thứ hai khác hẳn app đầu (gợi ý dễ: Pomodoro rừng cây, hoặc app chấm điểm bữa ăn), đo xem nhanh hơn lần đầu bao nhiêu; xong nhờ máy đúc trọn quy trình thành CLAUDE.md khuôn hỏi-ngược để lần ba chỉ việc trả lời câu hỏi.

Phần 7: Vòng kiểm bảo mật trước khi mời khách vào nhà

App sắp có người lạ dùng thật, nghĩa là tới lượt bài học nghiêm túc nhất của loạt khoá này quay lại: kiểm bảo mật bằng phiên sạch. Anh chị đã học nguyên lý ở khoá nâng cao; phần này là bản áp riêng cho app di động, kèm mấy chỗ khác biệt đáng chú ý.

Quy trình chuẩn, chạy đúng nhịp đã học: mở một phiên Claude Code mới toanh, không dính bối cảnh lúc dựng (gõ /clear cho chắc), dán prompt audit bảo mật (bộ khung đã cho ở khoá nâng cao, phần 8), cho máy quét trọn dự án và trả bảng phát hiện xếp theo độ nguy hiểm. Đọc bảng, cho vá từ trên xuống, rồi chạy lại lượt hai bằng một phiên sạch khác. Lượt hai không phải làm màu: kinh nghiệm dựng thật cho thấy chính các bản vá của lượt một thỉnh thoảng đẻ ra lỗi mới (ca có thật trong khoá nguồn: sửa cách lấy thông tin đăng nhập xong thì một chỗ khác đang xanh chuyển đỏ). Bảo mật là vòng lặp, không phải cái checkbox.

Bốn chỗ app di động cần soi kỹ hơn web:

  1. Khoá API tuyệt đối không nằm trong app. Nhắc lần ba vì nó đáng nhắc ba lần: app được cài lên máy của người lạ, mọi thứ đóng gói trong đó coi như công khai với người biết moi. Khoá gọi AI, chuỗi kết nối database quyền cao: tất cả sống ở phía máy chủ (edge function), app chỉ được cầm khoá công khai quyền thấp.
  2. RLS phải bật và phải thử. Không tin vào cái tick lúc tạo dự án; thử bằng tay: tạo hai tài khoản, đăng nhập tài khoản B, xác nhận không đọc được dữ liệu của A. Ba phút thử này chặn đúng cái lỗ đã khiến không ít app đình đám lộ sạch dữ liệu người dùng.
  3. Thông báo đẩy đừng chứa chuyện riêng. Nội dung thông báo hiện trên màn hình khoá, người ngồi cạnh đọc được. Lời nhắn AI coach nên viết kiểu “có bản tổng kết tuần mới cho anh chị nè” thay vì phơi số liệu nhạy cảm ra màn khoá.
  4. Quyền hệ thống xin đúng lúc, đúng lý do. App xin camera, thông báo, vị trí ngay màn hình đầu khi chưa rõ để làm gì là app bị nghi ngờ, cả bởi người dùng lẫn đội duyệt chợ ứng dụng. Nguyên tắc: cần tới đâu xin tới đó, kèm một câu giải thích tại sao (bài học nhỏ từ khoá nguồn: app chỉ hỏi quyền thông báo đúng lúc người dùng bấm đặt giờ nhắc đầu tiên, mượt và tự nhiên).

Một góc nhìn giúp đỡ ấm ức khi làm giấy tờ ở phần sau: bản thân quy trình duyệt của App Store cũng là một lớp kiểm bảo mật miễn phí. Apple và Google soi app của anh chị bằng máy lẫn người: quyền hệ thống xin lố bị hỏi, mô tả nói quá bị trả, app sập lúc thử bị loại. Khó chịu thật, nhưng chính lớp soi đó là lý do người dùng dám cài app lạ từ chợ. Mình làm kỹ vòng audit trước ở nhà thì lớp soi của họ thành trạm xác nhận, không phải cửa ải.

Vòng audit bảo mật trước khi phát hành
Phiên sạch quét, vá từ trên xuống, phiên sạch khác quét lại. Với app di động thêm bốn điểm soi riêng: khoá trong app, RLS thử tay, thông báo màn khoá, quyền xin đúng lúc.

Tự tay làm: chạy trọn hai lượt audit cho app của anh chị; tự tay làm bài thử hai-tài-khoản; rà lại nội dung mọi thông báo đẩy bằng con mắt “người ngồi cạnh đọc được gì”.

Phần 8: Đường lên App Store và Play Store: chặng giấy tờ mà máy gánh giùm anh chị 80%

Chặng cuối, và nói thật lòng ngay từ đầu: đây là chặng ít vui nhất của nghề làm app, không phải vì khó mà vì lắm thủ tục. Tin tốt: phần lớn thủ tục đó máy làm giùm được; anh chị chỉ cần hiểu bản đồ để không lạc. Bản đồ có năm chặng:

Chặng 1: chuẩn bị “hồ sơ” cho app. App lên chợ cần bộ giấy khai sinh: file khai thông tin (tên app, mã định danh, số phiên bản), icon đúng chuẩn kích cỡ, màn hình chào. Toàn bộ đống này: “chuẩn bị app.json và eas.json cho bản phát hành chính thức, rà quyền hệ thống và khai báo cho đủ” là máy tự viết, tự vá thiếu sót (kể cả những thứ khó ngờ kiểu “app có dùng camera thì phải khai lý do dùng micro kèm theo”). Icon và màn hình chào cũng nhờ máy sinh luôn được.

Chặng 2: đóng gói bản chính thức (build). Bản anh chị chạy qua Expo Go nãy giờ là bản “đang nặn”; muốn lên chợ phải đúc thành khối: bản build tối ưu, chạy nhanh, không sửa nóng được nữa. Expo lo trọn khâu đúc trên máy chủ của họ (gói miễn phí đúc chậm hơn gói trả phí, chờ chút không sao). Lệnh thì máy đưa tận tay; lưu ý duy nhất: chạy lệnh trong đúng thư mục dự án, không chắc thì bảo máy “kèm lệnh cd cho chắc”.

Chặng 3: hai tấm thẻ nhà phát triển. Apple Developer (phí thường niên, tầm 99 đô một năm) và Google Play Console (phí một lần, tầm 25 đô). Đăng ký cần xác minh danh tính, và một mẹo tiết kiệm thời gian thật: đăng ký bằng email tên miền công ty (kiểu ten@congtycuaanh.vn) thì khâu xác minh phía Google trôi nhanh hơn hẳn so với email cá nhân thường. Riêng Play Store còn đòi anh chị có máy Android thật để thử app: luật của họ, tính trước cho khỏi bị động.

Trang Apple Developer
Cổng Apple Developer thật, nơi làm thẻ nhà phát triển để được nộp app lên App Store.

Chặng 4: trang chính sách bắt buộc. Cả hai chợ đều bắt app có trang chính sách quyền riêng tư và trang hỗ trợ truy cập được trên web. Nghe to tát; thực tế là một buổi cà phê: “đọc yêu cầu chính sách của Apple, viết trang privacy policy và trang hỗ trợ cho app X, dựng lên website công ty.” Ai theo loạt khoá này từ đầu thì việc dựng một trang web tĩnh đã là chuyện một câu lệnh. Địa chỉ trang lý tưởng nên cùng tên miền với email đăng ký cho đồng bộ hồ sơ.

Chặng 5: điền trang nộp duyệt và bấm nút. Vào App Store Connect (hoặc Play Console), đi từ trên xuống: bộ ảnh chụp màn hình đúng cỡ cho iPhone lẫn iPad (máy tự mở app, tự chụp đủ bộ giùm anh chị), đoạn mô tả và từ khoá (máy soạn, anh chị duyệt giọng), chọn phân loại độ tuổi, khai giá (miễn phí hay trả phí), và một mục dễ quên: tài khoản thử cho người duyệt: bên Apple sẽ có người thật đăng nhập app của anh chị để kiểm, mình phải chừa sẵn một tài khoản demo kèm mật khẩu cho họ. Xong hết thì bấm nộp, và chờ.

Trước khi bấm nộp, rà một lượt checklist mười mục cho chắc cú, mỗi mục một câu hỏi có-không: (1) app đã qua hai lượt audit bảo mật phiên sạch; (2) đã thử trên máy thật cả luồng đăng ký lẫn luồng dùng chính; (3) icon và màn hình chào hiển thị đúng trên cả nền sáng lẫn tối; (4) mọi màn hình đều thoát ra được, không có ngõ cụt; (5) trang privacy và trang hỗ trợ đang truy cập được; (6) tài khoản demo cho người duyệt đăng nhập được và có sẵn dữ liệu mẫu cho họ vọc; (7) bộ ảnh chụp màn hình đúng kích cỡ từng loại máy; (8) mô tả app không hứa quá thứ app làm được (đội duyệt soi kỹ khoản này); (9) khai phân loại độ tuổi và quyền hệ thống khớp thực tế; (10) đã có kênh nhận phản hồi người dùng (email hỗ trợ đọc thật, không phải hộp thư ma). Mười mục xanh hết hãy bấm.

Nói kỹ hơn một chút về thử kín vì nó đáng: TestFlight (bên Apple) cho anh chị mời tới cả nghìn người thử qua một đường link, app tự cập nhật mỗi khi anh chị đẩy bản mới, người thử bấm gửi phản hồi ngay trong app. Kịch bản chuẩn cho một app khách quen: tuần một mời nhân viên công ty cài (chục người, lộ lỗi vận hành), tuần hai mời nhóm khách ruột (vài chục người, lộ lỗi trải nghiệm), gom hai đợt phản hồi thành hai tràng góp ý lớn cho máy sửa, rồi mới nộp duyệt chính thức. Thêm một tính năng đáng biết của hệ Expo: cập nhật qua không trung (over-the-air) cho phép đẩy các sửa lỗi nhỏ tới máy người dùng mà không cần qua vòng duyệt lại, đỡ hẳn cảnh chờ duyệt vì sửa một dòng chữ.

Hai lời dặn để giữ kỳ vọng cho đúng. Thứ nhất, không ai bảo đảm được app qua duyệt ngay lượt đầu, kể cả người làm lâu năm; bị trả về kèm lý do là chuyện thường, sửa theo hướng dẫn của người duyệt rồi nộp lại, coi như thêm một tràng góp ý miễn phí từ Apple. Thứ hai, đừng nộp thẳng bản chưa ai ngoài mình từng xài: cả hai chợ đều có kênh thử kín (TestFlight bên Apple) cho anh chị gửi link để nhóm nhỏ người quen cài trước; một tuần thử kín với chục người thật sẽ lộ ra những thứ mà chính anh chị mù, và đội duyệt sẽ bớt cớ để trả hồ sơ.

Năm chặng đường lên App Store
Hồ sơ, đúc bản chính thức, thẻ nhà phát triển, trang chính sách, trang nộp duyệt. Chặng nào cũng có phần máy gánh được 80%, phần người là hiểu bản đồ và duyệt.

Tự tay làm: chạy chặng 1 và 2 cho app của anh chị (chưa cần thẻ nhà phát triển vẫn làm được hai chặng này); đăng ký thẻ nếu nghiêm túc; dựng trang chính sách bằng một câu lệnh; và lên danh sách 10 người quen cho đợt thử kín.

Phần 9: Góc nhìn MONA: doanh nghiệp Việt nên làm gì với năng lực này

Khép khoá bằng phần mà tụi em nghĩ đáng tiền nhất cho anh chị: học xong nghề làm app rồi thì doanh nghiệp mình dùng nó vào đâu cho ra tiền, và đâu là chỗ nên dừng tay.

Ba cửa dùng ngay, xếp theo độ chắc ăn:

  1. App nội bộ: cửa lãi nhất mà ít ai nghĩ tới. Vòng học của khoá này (app + database + đăng nhập + thông báo đẩy) khớp nguyên xi với cả rổ bài toán vận hành: app chấm việc cho đội giao hàng, app kiểm kho chụp ảnh kệ mỗi tối, app ghi nhận chăm sóc khách cho đội sale ngoài đường, app đặt lịch phòng họp kèm nhắc. Đồ nội bộ không cần lên App Store (chạy qua kênh phân phối nội bộ hoặc bản web-app là đủ), nghĩa là bỏ qua được trọn chặng giấy tờ phần 8, ra đồ trong tuần. Sai thì sửa trong nhà, không mất mặt với khách: đúng vùng “sai cười xoà làm lại được” mà loạt bài agentic vibe coding của tụi em đã vẽ ranh.

Tả kỹ một app nội bộ mẫu để anh chị thấy cửa này gần cỡ nào: app kiểm kho cuối ngày cho chuỗi cửa hàng. Chức năng lõi: nhân viên chụp kệ hàng, app dùng đúng bộ xương CalTracker ở phần 5 để nhận diện và đếm, đối chiếu với số tồn trong hệ thống, lệch thì báo. Vòng lõi: chụp xong thấy ngay kết quả đối chiếu, xanh là yên tâm đóng ca. Móc quay lại: thông báo 21h nhắc ca tối chưa kiểm. Toàn bộ nằm trong khả năng của khoá này, dựng trong vài buổi tối, và giá trị thì người làm chuỗi nào cũng tự tính được: mỗi phần trăm thất thoát bắt sớm là tiền tươi. Đây chính là loại việc mà tụi em khuyên bắt đầu: bài toán mình rành nhất nhà, sai trong nhà sửa trong nhà, ra giá trị đo được liền.

  1. App cho khách quen của chuỗi. Chuỗi spa, phòng gym, nhà thuốc, quán quen: một app đặt lịch + tích điểm + thông báo đẩy là kênh chạm thẳng túi khách mà không qua phí quảng cáo của bất kỳ nền tảng nào. Khung năm tầng của phần 2 áp nguyên: vòng lõi là đặt lịch một chạm, phần thưởng là điểm và hạng thành viên, móc quay lại là nhắc lịch với ưu đãi sinh nhật. Làm bản thử kín cho trăm khách ruột trước, số liệu tốt mới lên chợ.
  2. App thành sản phẩm kinh doanh riêng. Cửa mơ mộng nhất và cũng khó nhất, nói thật lòng: kỹ thuật giờ là phần dễ, phần khó là kiếm người dùng và giữ người dùng, đúng bài “phần mềm thôi là con hào” của khoá nâng cao. Ai đi cửa này, tài sản lớn nhất của anh chị không phải ý tưởng app mà là tập khách và hiểu ngành có sẵn: làm app cho chính tập khách mình đang phục vụ thắng dễ hơn trăm lần làm app cho người lạ.

Làm một phép tính giả định cho cửa số hai để anh chị thấy bài toán tiền nong: chuỗi spa 20 chi nhánh, mỗi chi nhánh 150 khách quen hoạt động, tổng 3.000 khách. App đặt lịch + tích điểm tự dựng theo khoá này: chi phí sống của app (database, thông báo đẩy, tên miền) ở quy mô đó nằm trong khoảng vài trăm nghìn tới hơn triệu đồng mỗi tháng, tức chưa bằng ngân sách quảng cáo một ngày của chuỗi. Đổi lại: mỗi thông báo đẩy tới thẳng 3.000 khách ruột không mất phí nền tảng nào, lịch tái hẹn tự nhắc kéo khách quay lại đều hơn, và dữ liệu hành vi (khách nào lâu không tới, liệu trình nào bỏ dở) nằm trong tay mình thay vì trong tay nền tảng đặt lịch trung gian. Con số hoà vốn của một app khách quen kiểu này thường không nằm ở “bán được app” mà nằm ở một phần trăm khách quay lại thêm mỗi tháng. Đó là cách tính đúng khi anh chị cân nhắc cửa số hai.

Và ranh giới, nhắc lần cuối cho trọn bộ khoá: app tự dựng ngon lành cho ba cửa trên ở giai đoạn thử và quy mô gọn. Khi app bắt đầu gánh doanh thu thật, giữ dữ liệu hàng nghìn khách, chạy khuyến mãi cao điểm không được phép sập, đó là lúc bài toán đổi hạng cân: cần hạ tầng chịu tải, quy trình sao lưu, người trực và người đứng tên chịu trách nhiệm. Anh chị mang bản thử đã được khách gật và hiểu ngành của mình; đội kỹ sư MONA lo phần biến nó thành hệ thống sống bền: đúng công thức phân vai mà 14.000 dự án từ 2016 tới nay dạy cho tụi em. Gọi 1900 636 648 hoặc gửi ý tưởng về info@themona.global, buổi 30 phút đầu tụi em nói thẳng: cái này anh chị tự làm được tới đâu, khúc nào đáng thuê, và con số thật của từng đường.

App cho doanh nghiệp Việt: ba cửa dùng ngay
App nội bộ lãi nhanh nhất, app khách quen là kênh chạm không tốn phí nền tảng, app sản phẩm riêng dành cho ai có sẵn tập khách. Ranh giới vẫn là một: đồ gánh tiền thật cần người đứng tên.

Còn một việc sau phát hành mà người làm kinh doanh không được bỏ: đo. Tối thiểu ba con số, xem mỗi tuần: số người dùng còn hoạt động (không phải số lượt tải, số tải là con số phù phiếm nhất làng app), tỷ lệ quay lại sau 7 ngày (thước đo cái móc quay lại của anh chị có sắc không), và điểm rơi (màn hình nào người dùng thoát nhiều nhất, đó là chỗ sửa tiếp theo). Cả ba đều xem được từ trang quản trị chợ ứng dụng cộng vài truy vấn đơn giản trên tủ hồ sơ Supabase, và anh chị đã biết nhờ ai truy vấn giùm rồi đó. App không đo là app nuôi bằng cảm giác; cảm giác thì hay khen chủ.

Hỏi nhanh đáp gọn

Không biết code thật sự làm nổi app không? Nổi, và khoá này thiết kế đúng cho người đó: mọi thao tác là ra lệnh bằng tiếng người, mọi lỗi xử bằng cách dán nguyên văn cho máy. Chỗ cần anh chị giỏi là thiết kế năm tầng và các tràng góp ý, hai thứ thuộc về hiểu người dùng chứ không thuộc về code.

Làm một app hết bao nhiêu tiền? Bản chạy được cho mình và nhóm nhỏ: gói Claude Pro (vài trăm nghìn một tháng) cộng các dịch vụ gói miễn phí (Expo, Supabase) là đủ. Muốn lên chợ ứng dụng: cộng thẻ nhà phát triển (Apple ~99 đô/năm, Google ~25 đô một lần). Tính năng AI trong app trả thêm tiền API theo lượt gọi, quy mô nhỏ là tiền lẻ.

Bao lâu thì có app đầu tiên? Theo đúng nhịp khoá: một buổi cho app demo chạy trên máy thật, một tới hai ngày cho app hoàn chỉnh có database và đăng nhập, thêm vài ngày chờ nếu nộp chợ ứng dụng. App thứ hai nhanh hơn hẳn nhờ hệ thống tích luỹ.

Nên làm iPhone hay Android trước? Với Expo thì câu hỏi này gần như biến mất: một bộ mã ra cả hai. Thứ tự nộp chợ thì tuỳ tập khách của anh chị; thị trường Việt nghiêng Android về số lượng, nghiêng iOS về sức chi.

App nội bộ có cần lên App Store không? Không. Kênh phân phối nội bộ hoặc bản web-app cài lối tắt ra màn hình là đủ cho đội ngũ dùng, bỏ qua trọn chặng giấy tờ. Chỉ lên chợ khi app dành cho khách đại chúng.

Khoá tiếp theo của loạt: NotebookLM cho công việc, công cụ đang nổi rần rần ở Việt Nam, biến đống tài liệu của công ty thành trợ lý hỏi đáp và bản tin nghe được. Hẹn anh chị ở đó.

MONA có podcast — nghe thay vì đọcCác tập về AI, tự động hoá & SEO cho doanh nghiệp Việt
Nghe ngay
Về tác giả

CEO & Founder · The MONA

Người sáng lập The MONA, xây dựng công ty dịch vụ 200+ nhân sự với 14.000+ dự án đã triển khai. Khánh Hùng chia sẻ tư duy xây hệ thống tự chạy, tự động hoá doanh nghiệp và những bài học triển khai thật phía sau MONA.

Lượt xem 294
Đánh giá bài viết 4,9/5 · 16 đánh giá

Dịch vụ thiết kế
website chuyên nghiệp

Sở hữu website với giao diện đẹp, độc quyền 100%, bảo hành trọn đời với khả năng
mở rộng tính năng linh hoạt theo sự phát triển doanh nghiệp ngay hôm nay!

Liên hệ Mona

    MONA có riêng một Người "Bạn Thân" cho bạn - Người Account sẽ đồng hành, hỗ trợ, hướng dẫn, đặt đồ ăn cho bạn mãi mãi, từ đây về sau!
    MONA cam kết tuyệt đối không sử dụng thông tin của bạn để bán hoặc SPAM
    Photoshot
    Hỏi đáp giáo dục 4.0
    Tạo cuộc hẹn miễn phí với MONA để giải đáp và tư vấn mọi thắc mắc về giải pháp số hoá ngành giáo dục
    Thời lượng cuộc hẹn
    45 Phút
    Ngày và giờ
    Thứ 2, ngày 25 tháng 12, 2023
    [9:30 - 10:15]

      Chọn ngày và giờ
      Khung giờ
      Quay lại
      Hãy cho MONA biết bạn là ai
      0:00