Мобильная сеть нестабильна, поэтому приложение должно уметь жить в промежуточных состояниях. Offline-first означает, что чтение идет из локального кеша, действия пользователя записываются в очередь, а синхронизация отправляет изменения при появлении сети. Конфликты нужно проектировать заранее: last write wins, merge, manual resolution или запрет редактирования.
Пользователь не обязан понимать внутреннюю сеть. Он должен видеть понятный статус: сохранено, ожидает синхронизации, ошибка, требуется действие.