У меня есть большое приложение, в котором есть:
- некоторые фрагменты, которые должны отображать данные в реальном времени, полученные через Bluetooth (с использованием службы переднего плана, чтобы поддерживать соединение с устройством работоспособности).
- некоторые фрагменты, которые показывают сохраненные данные - может потребоваться доступ к репо (и, таким образом, использование шаблона архитектурного компонента MVVM нормально, более того, даже рекомендуется).
Мой вопрос простой:
Правильно ли (с архитектурной точки зрения / дизайна приложения) не использовать поток: View-ViewModel-Repo-DB / Cloud доступ для всего приложения? - применение шаблона Android только для тех фрагментов / действий, которые действительно показывают сохраненные данные.
Я спрашиваю об этом, если отображение данных в реальном времени (не хранящихся в постоянном хранилище, а транслируемых службой) не складывается по шаблону MVVM: (Репо чего? У меня нет 2-3-4-5 источники данных для управления ими; ViewModel чего?) Я могу просто иметь несколько объектов LiveData - в классе Singleton - обновляемых Сервисом / или Сервис может отправлять широковещательные сообщения в реальном времени (так что Действия просто привязываются к Сервису или наблюдая за некоторыми объектами LiveData из класса Singleton), не имеет значения).
Идея этой проблемы заключается в том, что служба переднего плана является источником данных, но не постоянных данных. Если применить дизайн MVVM Android для всего приложения, возникает дополнительный вопрос:
- где находится служба переднего плана на этой диаграмме? Это компонент приложения, поэтому он должен находиться на одном уровне с Activity / Fragment. С другой стороны, это источник данных. (и, следовательно, он должен быть помещен в Репозиторий).
Кроме того, у меня есть SharedPref, используемый пользовательским интерфейсом и службой, например:
- ALERT_HEART_RATE - Сервис предупреждает пользователя, когда полученное значение ›= ALERT_HEART_RATE; - Активность показывает это значение / предлагает возможность изменить это значение.
Спасибо.