Size: a a a

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

2019 September 24

DU

Dmitry Upovalov in Moxy – MVP библиотека под Android
спасибо, надо переосмыслить видимо, уж больно нравился подход с индивидуальной моделькой с реактивными свойставми напрямую во вью, и, видимо, это сузило область мышления
источник

D

Dmitriy in Moxy – MVP библиотека под Android
Dmitry Upovalov
чтобы потом адаптер выяснял что поменялось
ListAdapter умеет обновлять только изменившееся, сам вычисляет через AsyncListDiffer
от вас надо только имплементацию DiffUtil.ItemCallback

только учтите, что в submitList надо передавать новый объект списка, а не тот же список с изменёнными объектами
источник

DU

Dmitry Upovalov in Moxy – MVP библиотека под Android
Спасибо
источник

СР

Степан Ревицький in Moxy – MVP библиотека под Android
Dmitry Upovalov
Всем привет! Поделитесь пожалуйста ссылкой на лучший (с вашей точки зрения или общепризнанный) туториал с поэтапным созданием андроид приложения на базе Moxy, в котором бы объяснялось шаг за шагом какие компоненты для чего необходимы (для новичков в мокси, но с хорошим пониманием андроида, mvp и прочих паттернов).
я как то если будет не лень то напишу статью об етом
источник
2019 September 29

S

Sergio in Moxy – MVP библиотека под Android
Комрады, вопрос: правильно ли я понимаю, что я не могу во фрагменте инициализировать интерфейс презентера. Только саму имплементацию? Т.е. только:
@ InjectPresenter
lateinit var presenter: SomePresenterImpl

А так не могу:
val presenter: SomePresenter = SomePresenterImpl()
потому что аннотация инжект не сработает.
Презентер наследуется от MvpPresenter<SomeView>().

Или какая тут правильная практика?
источник

D

Dmitriy in Moxy – MVP библиотека под Android
Sergio
Комрады, вопрос: правильно ли я понимаю, что я не могу во фрагменте инициализировать интерфейс презентера. Только саму имплементацию? Т.е. только:
@ InjectPresenter
lateinit var presenter: SomePresenterImpl

А так не могу:
val presenter: SomePresenter = SomePresenterImpl()
потому что аннотация инжект не сработает.
Презентер наследуется от MvpPresenter<SomeView>().

Или какая тут правильная практика?
используйте @ProvidePresenter для самостоятельной инициализации презентера, чтобы вернуть нужную реализацию
источник

S

Sergio in Moxy – MVP библиотека под Android
Dmitriy
используйте @ProvidePresenter для самостоятельной инициализации презентера, чтобы вернуть нужную реализацию
Благодарю! Получилось, но только через класс, а не интерфейс, все правильно? (на эмуле работает)
https://gist.github.com/webanimal/104bb9d2994e6a361227e7325c9e113d
источник

D

Dmitriy in Moxy – MVP библиотека под Android
Sergio
Благодарю! Получилось, но только через класс, а не интерфейс, все правильно? (на эмуле работает)
https://gist.github.com/webanimal/104bb9d2994e6a361227e7325c9e113d
да, я это имел ввиду
источник

ЕХ

Евгений Храмов in Moxy – MVP библиотека под Android
Sergio
Благодарю! Получилось, но только через класс, а не интерфейс, все правильно? (на эмуле работает)
https://gist.github.com/webanimal/104bb9d2994e6a361227e7325c9e113d
подскажите пожалуйста зачем презентеру интерфейс?
источник

S

Sergio in Moxy – MVP библиотека под Android
Евгений Храмов
подскажите пожалуйста зачем презентеру интерфейс?
В моем случае, чтобы скрыть внутренности класса презентерИмпл, и оставить наружу только то, что должно быть видно из фрагмента
источник

ЕХ

Евгений Храмов in Moxy – MVP библиотека под Android
Sergio
В моем случае, чтобы скрыть внутренности класса презентерИмпл, и оставить наружу только то, что должно быть видно из фрагмента
я понимаю зачем интерфейсы применяются
но не понятно зачем для презентера
несколько раз видел такие реализации но их авторы не смогли объяснить зачем

из вашего ответа всё ещё не понятно зачем
источник

D

Denis in Moxy – MVP библиотека под Android
Евгений Храмов
я понимаю зачем интерфейсы применяются
но не понятно зачем для презентера
несколько раз видел такие реализации но их авторы не смогли объяснить зачем

из вашего ответа всё ещё не понятно зачем
интерфейс это некий контракт, который позволяет четко разделить методы, которые необходимые активити от внутренних.
В случае мокси, с помощью этого котракта назначаются стратегии
Это просто более удобная реализация. Если бы не было контракта, то пришлось бы стратегии прописывать в самом презентере, а это лишний код
источник

D

Denis in Moxy – MVP библиотека под Android
который никак не относится к презентеру
источник

D

Denis in Moxy – MVP библиотека под Android
solid - в данном случае буковки s и i
источник

FL

First Last in Moxy – MVP библиотека под Android
Евгений Храмов
я понимаю зачем интерфейсы применяются
но не понятно зачем для презентера
несколько раз видел такие реализации но их авторы не смогли объяснить зачем

из вашего ответа всё ещё не понятно зачем
интерфейс нужен для того чтобы можно было сделать разнули реализацию, например тот же аудио плеер может иметь две view реализации в свернутом виде и  в не свернутом, перезентер один...а представлений сколько угоно под разные экраны и прочее...
источник

S

Sergio in Moxy – MVP библиотека под Android
Евгений Храмов
я понимаю зачем интерфейсы применяются
но не понятно зачем для презентера
несколько раз видел такие реализации но их авторы не смогли объяснить зачем

из вашего ответа всё ещё не понятно зачем
Я хочу, чтобы когда у инстанса презентера справа ставили точку, там не появлялось ничего, кроме дефолтных методов. Чтобы не было проперти и котлиновских фишек. А только белым жирным шрифтом показывались не реализованные методы интерфейса. Если таких нет, то всё заимплеменчено и больше презентер трогать не надо
источник

ЕХ

Евгений Храмов in Moxy – MVP библиотека под Android
Denis
интерфейс это некий контракт, который позволяет четко разделить методы, которые необходимые активити от внутренних.
В случае мокси, с помощью этого котракта назначаются стратегии
Это просто более удобная реализация. Если бы не было контракта, то пришлось бы стратегии прописывать в самом презентере, а это лишний код
вообще не понял ничего (
источник

ЕХ

Евгений Храмов in Moxy – MVP библиотека под Android
First Last
интерфейс нужен для того чтобы можно было сделать разнули реализацию, например тот же аудио плеер может иметь две view реализации в свернутом виде и  в не свернутом, перезентер один...а представлений сколько угоно под разные экраны и прочее...
всё ещё не понятно зачем интерфейс презентера
источник

FL

First Last in Moxy – MVP библиотека под Android
Евгений Храмов
всё ещё не понятно зачем интерфейс презентера
друк, ну тогда ты не понимаешь ооп по-моему
источник

FL

First Last in Moxy – MVP библиотека под Android
пол-года назад я в принципе не понимал зачем вообще интерфейсы )
источник