Offline-friendly react-native apps
План:
- Подходы;
- Плохие практики;
- Наш опыт;
- Примеры.
Не упомянуто
- Пользовательское управление кешем (music\podcast apps);
- Cинхронизация.
Подходы
Не упоминать о оффлайне
- Airbnb;
- Instagram;
- Snapchat;
- Gmail.
Ничего не показывать
Заявить о потребностях ...
- Мессенджеры;
- Realtime приложения.
Возможно не стоит...
- Постоянно напоминать о оффлйне;
- Блокировать доступ к критическим данным;
- Забывать о юзере (разлогин);
- Использовать NetInfo для проверки оффлайн режима.
NetInfo — это не про оффлайн!
How quickly add offline support
С чего начали
- Api layer (testing, refresh tokens);
- Normalization (JSON API heavy response);
- Serialization (json, dates fields);
- Cache manager;
- Clean strategy.
В реальности общение с API не обходиться только id
GET /current/user
GET /data?include=magic
Доверяйте вашему устройтву, не соединению
Будьте пессимистичны \ оптимистичны и прагматичны в ваших интерфейсах