Size: a a a

Android Architecture

2020 April 27

AM

Artem Mi in Android Architecture
Там есть SavedState ViewModel
источник

AM

Artem Mi in Android Architecture
Это все через фабрику создаёшь
источник

AM

Artem Mi in Android Architecture
А так она будет жить пока есть ее вью
источник

AM

Artem Mi in Android Architecture
И будет уничтожена только если вышел из view
источник
2020 April 28

IS

Ivan Sidorov in Android Architecture
Всем привет! Погружаюсь в чистую архитектуру. Есть в общем такой юзкейс - получить пользовательские проекты. И есть два источника данных - сеть и бд.  Юзер получает проекты, если какая-то сетевая ошибка - показываю сообщение об ошибке в юае + нужно получить проекты из бд. Правильно ли понимаю что должен быть какой-то абстрактный репозиторий с методом getUserProjects() в который инжектятся 2 дата соурса? Тогда кто решает откуда получать данные? Презентер дергает юзкейс с параметром для репозитория и в зависимости от параметра в нем выбирается нужный дата соурс?
источник

АЕ

Алексей Ершов in Android Architecture
Вопрос хороший и не раз обсужденный, полистайте чатик, пока кто-нибудь ответит)
источник

IS

Ivan Sidorov in Android Architecture
Алексей Ершов
Вопрос хороший и не раз обсужденный, полистайте чатик, пока кто-нибудь ответит)
Спасибо! в предложенном мной варианте смущает только то, что получу репозиторий, зависящий от domain-слоя
источник

АЕ

Алексей Ершов in Android Architecture
Это правильное направление зависимости
источник

JF

Jorik Fat in Android Architecture
В приложении есть listener который слушает соединение с интернетом. И сообщает о разрыве/соединении.
Вопрос: этот listener должен лежать на data-layer? И как будет выглядеть цепочка вызов (connectionListener-repository-interactor-presenter-ui)?
источник

EC

Evgeny Cherkasov in Android Architecture
Ivan Sidorov
Всем привет! Погружаюсь в чистую архитектуру. Есть в общем такой юзкейс - получить пользовательские проекты. И есть два источника данных - сеть и бд.  Юзер получает проекты, если какая-то сетевая ошибка - показываю сообщение об ошибке в юае + нужно получить проекты из бд. Правильно ли понимаю что должен быть какой-то абстрактный репозиторий с методом getUserProjects() в который инжектятся 2 дата соурса? Тогда кто решает откуда получать данные? Презентер дергает юзкейс с параметром для репозитория и в зависимости от параметра в нем выбирается нужный дата соурс?
Почему бы репозиторию самому не решить откуда данные брать?
источник

АЕ

Алексей Ершов in Android Architecture
Рекомендую, кстати, посмотреть на то, какие подходы и решения ребята использовали при реализации репозитория промышленного масштаба: https://dropbox.tech/mobile/store-grand-re-opening-loading-android-data-with-coroutines
Есть ещё доклад с KotlinConf 2019, там тоже хорошо описано.
источник

АЕ

Алексей Ершов in Android Architecture
источник

АЕ

Алексей Ершов in Android Architecture
Понятное дело что такой комбайн вам может быть и не нужен, но общие концепции вполне применимы и к самописным решениям. Например, ответ на вопрос, кто решает, откуда брать данные
источник

IS

Ivan Sidorov in Android Architecture
Evgeny Cherkasov
Почему бы репозиторию самому не решить откуда данные брать?
Тогда в репозитории нужно обработать ошибку, передать ее дальше в презентер как-то и в то же время обратиться к базе за проектами. Не представляю пока как это технически реализовать
источник

IS

Ivan Sidorov in Android Architecture
Спасибо всем за помощь!
источник

EC

Evgeny Cherkasov in Android Architecture
Ivan Sidorov
Тогда в репозитории нужно обработать ошибку, передать ее дальше в презентер как-то и в то же время обратиться к базе за проектами. Не представляю пока как это технически реализовать
А в чем сложность? Репозиторий может возвращать какую нибудь обертку над данными.
источник

NT

Nikita Tipun in Android Architecture
Ivan Sidorov
Всем привет! Погружаюсь в чистую архитектуру. Есть в общем такой юзкейс - получить пользовательские проекты. И есть два источника данных - сеть и бд.  Юзер получает проекты, если какая-то сетевая ошибка - показываю сообщение об ошибке в юае + нужно получить проекты из бд. Правильно ли понимаю что должен быть какой-то абстрактный репозиторий с методом getUserProjects() в который инжектятся 2 дата соурса? Тогда кто решает откуда получать данные? Презентер дергает юзкейс с параметром для репозитория и в зависимости от параметра в нем выбирается нужный дата соурс?
Вопрос немного не про архитектуру, но зачем пользователю показывать ошибку если после сетевой ошибки идет по факту фолбек на локальную бд? Тогда получается если будет ошибка чтения с бд, то пользователь увидит 2 ошибки, а если нет, то он увидит ошибку о том, что не удалось загрузить данные и потом данные все равно откуда-то придут 🤔
источник

IS

Ivan Sidorov in Android Architecture
Nikita Tipun
Вопрос немного не про архитектуру, но зачем пользователю показывать ошибку если после сетевой ошибки идет по факту фолбек на локальную бд? Тогда получается если будет ошибка чтения с бд, то пользователь увидит 2 ошибки, а если нет, то он увидит ошибку о том, что не удалось загрузить данные и потом данные все равно откуда-то придут 🤔
хороший вопрос! можно сказать исторически так сложилось - уведомить юзера что данные не совсем актуальны
источник

NT

Nikita Tipun in Android Architecture
Тогда может будет проще сделать фолбек на бд, отдавать результат в обертке, по ней смотреть откуда в итоге пришли данные и показывать соотвествующую нотификашку? Я не знаю правда насколько это хорошая идея потому что сам ещё разбираюсь)
источник

JF

Jorik Fat in Android Architecture
В приложении есть listener который слушает соединение с интернетом. И сообщает о разрыве/соединении.
Вопрос: этот listener должен лежать на data-layer? И как будет выглядеть цепочка вызов (connectionListener-repository-interactor-presenter-ui)?
источник