Size: a a a

Moxy – MVP библиотека под Android

2020 September 05

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
Pavel
Кеш :)
Что за либы посоветуете связанные с ним ?)
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
Не SharedPreferences юзать для него же😅
источник

P

Pavel in Moxy – MVP библиотека под Android
Andrew Agafonov
Что за либы посоветуете связанные с ним ?)
Если чисто в памяти, то просто LruCache стандартный.
Если хранить перманентно, то room. Кстати, в этом случае можно рассмотреть модель архитектуры когда база - единственный источник правды. Т.е. всё приложение или фича берёт данные только из базы. База обновляется периодически или по пинку от сервера.
источник

P

Pavel in Moxy – MVP библиотека под Android
Если это список, да ещё и с постраничной загрузкой, то гугловая paging library 3 умеет это делать из коробки
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
Хм а как уведомить презентеры что типо данные загружены?)
источник

P

Pavel in Moxy – MVP библиотека под Android
А уведомлять зачем? Они запросят при появлении себя на экране и получат данные из кеша. На случай если одновременно 2 фрагмента на экране - тогда subject/channel, который провайдится из слоя бизнес-логики
источник

P

Pavel in Moxy – MVP библиотека под Android
В случае с базой - там подписка на базу просто
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
Pavel
А уведомлять зачем? Они запросят при появлении себя на экране и получат данные из кеша. На случай если одновременно 2 фрагмента на экране - тогда subject/channel, который провайдится из слоя бизнес-логики
Так в кеш инфа может ещё не поступить😅 а retrofit может позже ее закинуть
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
Провайдер запросит, а ретрафит ещё не получил)
источник

P

Pavel in Moxy – MVP библиотека под Android
Ну они запрашивают одни и те же данные из интерактора. Интерактор смотрит, есть ли данные в кеше. Есть - возвращает из кеша, нет - запрашивает ретрофит и кладёт в кеш
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
А понял спасибо)
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
А есть норм примеры использование Room с mvp (moxy), а не то все примеры делают на mvvm)
источник
2020 September 06

АЕ

Алексей Ершов... in Moxy – MVP библиотека под Android
Andrew Agafonov
А есть норм примеры использование Room с mvp (moxy), а не то все примеры делают на mvvm)
Логика особо не будет отличаться, подписываетесь на БД в презентере и показываете что надо на экране)
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
Алексей Ершов
Логика особо не будет отличаться, подписываетесь на БД в презентере и показываете что надо на экране)
А как там через presenter подписать?) Там же в аргументах у observer нужен при подписании LifeCycleOwner параметр, а он только у activity, fragment и тд.😅
источник

АЕ

Алексей Ершов... in Moxy – MVP библиотека под Android
Использовать нормальную реактивщину а не LiveData)
источник

AA

Andrew Agafonov in Moxy – MVP библиотека под Android
Понял)
источник
2020 September 07

ФХ

Филадельфия Хачатуря... in Moxy – MVP библиотека под Android
Алексей Ершов
Использовать нормальную реактивщину а не LiveData)
Нормальная реактивщина это rxjava?
источник

АЕ

Алексей Ершов... in Moxy – MVP библиотека под Android
Филадельфия Хачатурян
Нормальная реактивщина это rxjava?
Или Flow, или что вам ещё нравится.
источник
2020 September 08

M

Mike in Moxy – MVP библиотека под Android
Подскажите, по идее в активити/фрагменте должны работать с interface MyPresenter, но moxy создает именно объект class MyPresenterImpl. Как с этим бороться? Руками создавать (как в примере ниже) или как то ещё?
    @InjectPresenter
   lateinit var myPresenterImpl: MyPresenterImpl
   lateinit var myPresenter: MyPresenter

   override fun onCreateView(
       inflater: LayoutInflater,
       container: ViewGroup?,
       savedInstanceState: Bundle?
   ): View? {
       myPresenter = myPresenterImpl as MyPresenter
       return super.onCreateView(inflater, container, savedInstanceState)
   }
источник

ЕХ

Евгений Храмов... in Moxy – MVP библиотека под Android
Mike
Подскажите, по идее в активити/фрагменте должны работать с interface MyPresenter, но moxy создает именно объект class MyPresenterImpl. Как с этим бороться? Руками создавать (как в примере ниже) или как то ещё?
    @InjectPresenter
   lateinit var myPresenterImpl: MyPresenterImpl
   lateinit var myPresenter: MyPresenter

   override fun onCreateView(
       inflater: LayoutInflater,
       container: ViewGroup?,
       savedInstanceState: Bundle?
   ): View? {
       myPresenter = myPresenterImpl as MyPresenter
       return super.onCreateView(inflater, container, savedInstanceState)
   }
Привет
нет необходимости в интерфейсе презентера
откуда у вас такие требования?
источник