Phần lớn app Flutter được viết như một cái điều khiển từ xa mỏng dính cho REST API. Màn hình hiện lên, bắn một request, quay spinner, response về thì rebuild. Cache được gắn thêm sau, thường là một Map trong repository hoặc một cục blob trong shared_preferences , và cache bị coi như mẹo tăng tốc chứ không phải dữ liệu. Rồi app gặp thang máy, gặp hầm, gặp sóng 3G lúc 6 giờ chiều, hoặc gặp Wi‑Fi sân bay có captive portal trả HTTP 200 kèm một trang HTML cho mọi request. Spinner cứ quay. Người dùng bấm “lưu” ba lần. Hai trong ba lần đó rốt cuộc tới được server, và bạn có bản ghi trùng trên production. Offline-first không phải là một tính năng bạn thêm vào kiến trúc đó. Nó là một kiến trúc khác, và khác biệt gói gọn trong một câu: UI chỉ đọc và ghi database dưới máy, còn network là một tiến trình nền làm nhiệm vụ đối soát database đó với server. Không màn hình nào await một lời gọi HTTP. Không nút nào bị disable vì đang có request bay. API thôi làm nguồn sự thật và trở thành một bên ng...