@chyngys_94
middle-class developer

Правильно ли каждый раз обращаться в API при открытий activity?

Доброго времени суток! У всех разные подходы, и я не спорю.
Вопрос: Настолько правильно, каждый раз при открытий активити или фрагмента, его содержимое подгружать из API?
Второй вариант, один раз загрузить и где то сохранить данные, и в последующем брать оттуда. Но тут уже несколько вопросов: где хранить эти данные (SQLite - наверное для маленькой приложения с несколькими страницами вряд ли будет плюсом тянуть такое за собой, да еще и с ORM). Как быть с акуализацией данных?
Само приложение будет более приближенным к реал таиму, кроме данных пользователя все постоянно обновляются. Даже кажется что данные пользователя часто будут меняться, так как у них есть баллы, и надо актуальные цифры постоянно показывать
  • Вопрос задан
  • 128 просмотров
Решения вопроса 1
@Wayloren
Очевидный ответ - серебряной пули не существует, каждый случай надо рассматривать в отдельности. Например, если речь идет о торговле на бирже - любое кэширование более-менее длительное кэширование (больше нескольких секунд) не имеет смысла. Если это профиль какой-то системы - смело можно кэшировать. Сам кэш тоже надо подбирать исходя из задач и предпочтений. Кому SQLite чистый, кому ORM, где вообще через SharedPreferences можно сделать.

В целом более-менее стандартная работа выглядит примерно так: открывается экран -> отображается сразу кэш + одновременно идет запрос в сеть -> кэш + экран обновляется из сети в положительном случае, либо уведомление что данные устаревшие в случае ошибки. Главное – сделать без крашей и сообщать пользователю, что данные старые, не вводя в заблуждение (в идеале указывать "Обновлено в " и точное время)

Само приложение будет более приближенным к реал таиму, кроме данных пользователя все постоянно обновляются
- исходя из этого можно предположить, что ко всему прочему нужно после запуска экрана по таймеру стучаться на сервер за новой инфой. Кэш в этом случае играет роль заглушки, чтобы не отображать пустой экран и может быть заменен красивой картинкой про "нет данных/связи"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы