Size: a a a

Android Architecture

2020 April 24

АЕ

Алексей Ершов in Android Architecture
Yuriy
Плюсую. И Мокси не используется за пределами снг.  А mosby ещё жива?
а мосби почти не используется в СНГ) Дело в продвижении, а не в качестве.
источник

EM

Eugene Matsyuk in Android Architecture
мокси круче, это факт
источник

С

Сергей in Android Architecture
Проконсультируйте по mvp. Есть список и возможность его сортировать по возрастанию/убыванию. Собственно при нажатии на кнопку сортировки вызываю у P onSortClick, P сортирует список и отдаёт V. Чтобы знать, сортировать по возрастанию или по убыванию, в P хранится булев флаг, который меняется при вызове onSortClick. Хотел бы узнать нормально ли что он хранится именно в презентере?
источник

T

Timur in Android Architecture
На сколько мне известно, MVP не запрещает в P хранить состояние UI, т.е. такой флаг можно хранить в P.
источник

АЕ

Алексей Ершов in Android Architecture
Сергей
Проконсультируйте по mvp. Есть список и возможность его сортировать по возрастанию/убыванию. Собственно при нажатии на кнопку сортировки вызываю у P onSortClick, P сортирует список и отдаёт V. Чтобы знать, сортировать по возрастанию или по убыванию, в P хранится булев флаг, который меняется при вызове onSortClick. Хотел бы узнать нормально ли что он хранится именно в презентере?
По мне это нормально и правильно. Хранить логическое состояние и управлять им как раз задача презентера.
источник

JF

Jorik Fat in Android Architecture
сортировка списка должна находится в Presenter для сохранения его состояния после поворота
источник

KD

Konstantin Dovnar in Android Architecture
Unat
Много ограничений, он ведь по-очереди применяет все (с оговорками) команды к View, что были исполнены за время жизни презентера. А значит, эти манипуляции будут выполнены последовательно с нулевым интервалом между вызовами. Не всегда это удобно - анимации там всякие, уведомления и т.п.
А как, по твоему (в контексте MVP) стоит сохранять стейт вьюхи?
Презентер шлёт команды — восстанавливаются команды, вроде всё логично.

Ну, и как-раз для анимаций, уведомлений, переходов и пр. есть типы команд, которые исполнятся единожды, чтобы не было повторений.
источник

U

Unat in Android Architecture
Konstantin Dovnar
А как, по твоему (в контексте MVP) стоит сохранять стейт вьюхи?
Презентер шлёт команды — восстанавливаются команды, вроде всё логично.

Ну, и как-раз для анимаций, уведомлений, переходов и пр. есть типы команд, которые исполнятся единожды, чтобы не было повторений.
Методом restoreState с реализацией, соответствующей ситуации
источник

KD

Konstantin Dovnar in Android Architecture
Unat
Методом restoreState с реализацией, соответствующей ситуации
Т.е., по факту, делая тоже самое, но ручками, пропуская ненужные этапы?
источник

U

Unat in Android Architecture
Konstantin Dovnar
Т.е., по факту, делая тоже самое, но ручками, пропуская ненужные этапы?
Концептуально тоже самое, но свободы больше
источник

KD

Konstantin Dovnar in Android Architecture
Unat
Концептуально тоже самое, но свободы больше
Ясно 🌝
источник

С

Сергей in Android Architecture
Алексей Ершов
По мне это нормально и правильно. Хранить логическое состояние и управлять им как раз задача презентера.
Я просто думал по аналогии с чекбоксом, мне не нужно хранить его состояние, т.к. при смене я передаю в презентер onCheckedChange(checked: Bool). Так же думал и про сортировку onSortClick(descending: Bool)
источник

АЕ

Алексей Ершов in Android Architecture
я бы и чекбокс тоже хранил)
источник

С

Сергей in Android Architecture
Понял, спасибо
источник
2020 April 25

JF

Jorik Fat in Android Architecture
Каких проблем я избегаю когда создаю единый обработчик сети (singleton retrofit)?
Всегда создавал единую точку для взаимодействия с сетью, но при поддержке встречал и другие реализации, где при общении с сетью на каждый запрос создавался свой экземпляр взаимодействия с сетью. Чем такой подход череват и какие проблемы он порождает?
источник

U

Unat in Android Architecture
Jorik Fat
Каких проблем я избегаю когда создаю единый обработчик сети (singleton retrofit)?
Всегда создавал единую точку для взаимодействия с сетью, но при поддержке встречал и другие реализации, где при общении с сетью на каждый запрос создавался свой экземпляр взаимодействия с сетью. Чем такой подход череват и какие проблемы он порождает?
Создавать новый объект retrofit'а для каждого запроса - это дичь. В крайне специфических случаях может понадобится иметь возможность пересоздать его - например, при работе с двумя сетями (4G и WiFi) одновременно. Минусы - ретрофит работает через рефлексию, так что сборка объекта занимает значительное время, иногда сопоставимое с временем исполнения запроса, и кушает процессор. И порождает работу для сборщика мусора. А самое главное - не несёт никакого полезного смысла.
источник

(

( in Android Architecture
Unat
Создавать новый объект retrofit'а для каждого запроса - это дичь. В крайне специфических случаях может понадобится иметь возможность пересоздать его - например, при работе с двумя сетями (4G и WiFi) одновременно. Минусы - ретрофит работает через рефлексию, так что сборка объекта занимает значительное время, иногда сопоставимое с временем исполнения запроса, и кушает процессор. И порождает работу для сборщика мусора. А самое главное - не несёт никакого полезного смысла.
всм, для каждого эндпоинта, а не для каждого запроса
источник

U

Unat in Android Architecture
(
всм, для каждого эндпоинта, а не для каждого запроса
Господь всемогущий, столь светлая мысль моё сознание даже не посещала. А в чем суть? Это-же совсем беда.
источник

JF

Jorik Fat in Android Architecture
(
всм, для каждого эндпоинта, а не для каждого запроса
Речь идёт о каждом запросе.
(Нажимаем "авторизоваться" - создаём новый объект. 3 раза нажали = 3 объекта)
источник

(

( in Android Architecture
а, всё-таки так
источник