Разъемное соединение с МВВМ - PullRequest
0 голосов
/ 12 апреля 2019

Я пытаюсь создать приложение для чата с архитектурой MVVM, но я не знаю, куда поместить класс соединения с сокетом, мне нужна идея или отправная точка и т. Д.

Принцип единого источника данных

Я использую единый источник данных принципа истины. Вот пример: если сообщение приходит в приложение с сервера сокетов, мой класс сокетов должен сохранить его в db, а затем передать его из db наблюдателям (таким образом, они будут представлять модели) с использованием живых данных.

Архитектура моего приложения

Мое приложение содержит различные действия (экран чата, экран разговоров и т. Д.), И эти действия будут выполняться в моем классе репозитория соединений сокетов. Также, если пользователь закроет приложение, мое сокет-соединение прекратит работу с приложением. Я не хочу фонового соединения.

Что я спрашиваю?

Как лучше всего реализовать эту функциональность:

1) Класс Socket должен использовать живые данные, потому что активисты будут наблюдать за ними. Так что это должен быть репозиторий. 2) Мой класс сокетов должен жить всегда, когда приложение открыто.

Что я должен использовать для хранилища сокетов? Сервис или класс Singleton или что-то другое? Что ты предлагаешь? Где я должен начать хранилище сокетов? Из класса приложения или что-то другое?

1 Ответ

0 голосов
/ 12 апреля 2019

Ознакомьтесь с новой архитектурой LiveData и жизненного цикла Android в новой библиотеке компонентов Arch.

С ее помощью вы можете наблюдать объект LiveData из любого действия или фрагмента.Он начинается с вашего приложения, уведомляется о любых изменениях жизненного цикла и умирает вместе с вашим приложением.Также: не уничтожается при изменениях конфигурации.

Единственная проблема в том, что должна быть некоторая инициализация объекта LiveData.Я могу сделать в классе App.Или в действии, если ваше приложение представляет собой архитектуру с одним действием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...