Я пытаюсь создать приложение для чата с архитектурой MVVM, но я не знаю, куда поместить класс соединения с сокетом, мне нужна идея или отправная точка и т. Д.
Принцип единого источника данных
Я использую единый источник данных принципа истины. Вот пример: если сообщение приходит в приложение с сервера сокетов, мой класс сокетов должен сохранить его в db, а затем передать его из db наблюдателям (таким образом, они будут представлять модели) с использованием живых данных.
Архитектура моего приложения
Мое приложение содержит различные действия (экран чата, экран разговоров и т. Д.), И эти действия будут выполняться в моем классе репозитория соединений сокетов. Также, если пользователь закроет приложение, мое сокет-соединение прекратит работу с приложением. Я не хочу фонового соединения.
Что я спрашиваю?
Как лучше всего реализовать эту функциональность:
1) Класс Socket должен использовать живые данные, потому что активисты будут наблюдать за ними. Так что это должен быть репозиторий.
2) Мой класс сокетов должен жить всегда, когда приложение открыто.
Что я должен использовать для хранилища сокетов? Сервис или класс Singleton или что-то другое? Что ты предлагаешь? Где я должен начать хранилище сокетов? Из класса приложения или что-то другое?