Khác với web (thường giả định luôn có mạng), mobile app phải đối mặt với mạng chập chờn thường xuyên (di chuyển, hầm gửi xe, vùng sóng yếu) — thiết kế offline-first tốt là yếu tố phân biệt app chuyên nghiệp với app "chỉ hoạt động khi có wifi".
"Local database (SQLite/Room/Core Data) và cache đơn giản (SharedPreferences/UserDefaults) khi nào dùng cái nào?" — Local database phù hợp dữ liệu có cấu trúc, cần truy vấn phức tạp, số lượng lớn (danh sách bài viết, tin nhắn...). Cache đơn giản phù hợp dữ liệu nhỏ, đơn giản (cài đặt user, token, cờ trạng thái).
"User sửa dữ liệu khi offline, làm sao đồng bộ khi có mạng lại?" — Cần hàng đợi (queue) các thay đổi chưa đồng bộ, lưu local với trạng thái "pending sync" — khi có mạng lại, xử lý tuần tự hàng đợi này, xử lý lỗi nếu conflict xảy ra (server đã đổi khác trong lúc offline).
"Conflict resolution là gì — khi cả app và server cùng sửa 1 dữ liệu trong lúc offline?" — Vài chiến lược phổ biến: Last-write-wins (đơn giản nhất, bản ghi mới nhất theo timestamp thắng — nhưng có thể mất dữ liệu), merge thủ công (kết hợp cả 2 thay đổi nếu không xung đột trực tiếp về field), hoặc hỏi lại user khi phát hiện conflict quan trọng (phù hợp dữ liệu nhạy cảm cần chính xác tuyệt đối).
"Làm sao thiết kế UX tốt khi user đang offline?" — Hiển thị rõ trạng thái mạng (banner "đang offline" thay vì im lặng để user tự đoán), cho phép user vẫn thao tác được với dữ liệu đã cache (không block hoàn toàn), và có chỉ báo rõ ràng cho các thay đổi "đang chờ đồng bộ" (pending sync) để user biết dữ liệu chưa lên server thật.
"Optimistic update là gì?" — Cập nhật UI ngay lập tức khi user thao tác (giả định request sẽ thành công), gửi request lên server ngầm phía sau — nếu thất bại thì rollback UI về trạng thái cũ kèm thông báo lỗi. Kỹ thuật này cải thiện đáng kể cảm giác "nhanh" của app, đặc biệt quan trọng khi mạng chậm.
Nếu từng xây dựng tính năng offline-first thật, kể rõ: chiến lược cache đã chọn, cách xử lý conflict khi đồng bộ lại, và 1 tình huống thực tế phát hiện vấn đề (mất dữ liệu, đồng bộ trùng lặp) và cách khắc phục.