Tài liệu đọc thêm cho khóa Vibe Code – Lập trình di động với React Native & Expo tại Softech Aptech Đà Nẵng. Thứ tự “phổ biến → hiếm” dựa trên tần suất xuất hiện trong các app di động thông thường, không phải một chuẩn tuyệt đối. Mỗi component đều có ví dụ gắn với app xuyên suốt TaskFlow.
Vì sao cần biết tên các component?
Khi vibe code, gọi đúng tên component là một nửa của prompt tốt. So sánh hai cách viết sau:Prompt mơ hồ
“Làm cái ô bật lên từ dưới để chọn người nhận”
Prompt rõ ràng
“Dùng bottom sheet để chọn người nhận, bên trong là list có search bar và avatar”
Nhóm 1 — Gần như app nào cũng có
Đây là những “viên gạch” cơ bản. Hầu hết đều có sẵn trong React Native core hoặc hệ sinh thái Expo.Nguyên tắc UX cần nhớ — Nhóm 1
Nguyên tắc UX cần nhớ — Nhóm 1
- Vùng chạm của button tối thiểu khoảng 44×44 điểm (theo khuyến nghị của Apple) để dễ bấm.
- Tab bar chỉ nên có 3–5 mục. Nhiều hơn thì cân nhắc gộp lại.
- Dùng
FlatListthay choScrollView+map()khi danh sách dài, vìFlatListchỉ render phần đang hiển thị.
Nhóm 2 — Rất phổ biến
Xuất hiện ở đa số app có tương tác, giúp app “trông chuyên nghiệp” hơn hẳn.Nguyên tắc UX cần nhớ — Nhóm 2
Nguyên tắc UX cần nhớ — Nhóm 2
- Màu không phải là kênh thông tin duy nhất. Badge trạng thái nên có cả chữ, không chỉ màu (người mù màu vẫn đọc được).
- Empty state là cơ hội hướng dẫn, đừng để màn hình trắng trơn.
- Toast dành cho thông tin không quan trọng. Lỗi nghiêm trọng hoặc cần xác nhận thì dùng Dialog.
Nhóm 3 — Dùng thường xuyên nhưng theo ngữ cảnh
Chỉ xuất hiện khi app có nhu cầu cụ thể: form phức tạp, dữ liệu nhiều, thao tác nhanh.Nguyên tắc UX cần nhớ — Nhóm 3
Nguyên tắc UX cần nhớ — Nhóm 3
- Thao tác vuốt là ẩn, người dùng không tự biết. Luôn có cách thứ hai (nút, menu) cho cùng hành động.
- Date picker trông khác nhau giữa iOS và Android. Phải test trên cả hai nền tảng.
- Form trên 5–6 trường nên cân nhắc chia bước hoặc nhóm lại.
Nhóm 4 — Hiếm dùng hoặc chuyên biệt
Chỉ cần khi app có tính năng đặc thù. Thường phải cài thư viện riêng, có khi cần development build thay vì Expo Go.Cách dùng kiến thức này khi prompt AI
1
Gọi tên component và nêu hành vi
“Tạo component
TaskCard dạng card, có badge trạng thái góc phải, progress bar ở dưới, avatar người nhận bên trái.”2
Chỉ định thư viện khi cần
“Dùng
@react-native-community/datetimepicker để chọn deadline. Không dùng thư viện date picker khác.”3
Yêu cầu xử lý đủ các trạng thái
“Danh sách task phải có loading indicator khi đang tải, empty state khi trống, và pull to refresh.”
4
Hỏi AI về lựa chọn thay thế
“Để chọn người nhận task, nên dùng picker, bottom sheet hay màn hình riêng? So sánh ưu nhược điểm cho trường hợp nhóm có 5–20 thành viên.”