Size: a a a

Android Architecture

2017 January 28

AP

Alexey Pushkarev in Android Architecture
DigitalKoi Taras
привет. Я новичок и вопрос очень тупой, но рискну). Мне надо с Assets получить по названию файл, AssetManager желает context и я чёт не секу как правильно передать этот контекст в презентер по архитектуре. Тоисть путь к файлу надо записать в спец поле в БД и поэтому не хочу во вью пихатся с этим методом
Я обычно в даггере храню контекст application и всяких таких менеджеров из даггера инджектю в презентеры
источник

AB

Alexander Blinov in Android Architecture
его можно получить статически либо даггером да
источник

AB

Alexander Blinov in Android Architecture
Ivan
Сделай во вью метод провайдконтекст
вот так вот не делайте ребят
источник

AB

Alexander Blinov in Android Architecture
one direction data flow наше все
источник

DT

DigitalKoi Taras in Android Architecture
Alexey Pushkarev
Я обычно в даггере храню контекст application и всяких таких менеджеров из даггера инджектю в презентеры
тут даггера нету в проекте))
источник

I

Ivan in Android Architecture
Alexander Blinov
вот так вот не делайте ребят
Согласен, но я бы начал с того, что контексту в принципе нечего делать в презентере
источник

AP

Alexey Pushkarev in Android Architecture
Презентер желательно делать не зависимым от андроида чтобы тестировать с junit, но не всегда так выходит
источник

DT

DigitalKoi Taras in Android Architecture
Alexander Blinov
тут хватит контекста application
спасибо, помогло)))
источник

EM

Eugene Matsyuk in Android Architecture
Ivan
Согласен, но я бы начал с того, что контексту в принципе нечего делать в презентере
На самом деле можно поспорить) обычно для почему не хотим андроидовские классы в презентере? Потому что типа не протестировать? Но есть же Robolectric, который решает эту проблему)
А вообще по опыту бывает, что контекст нужен аж в Интеракторе. И чтобы этого избежать надо плюс пять методов, скажем, и усложнённая логика. Оно того стоит?)
источник

EM

Eugene Matsyuk in Android Architecture
Alexander Blinov
one direction data flow наше все
Прям true
источник

А

Андрей in Android Architecture
Eugene Matsyuk
На самом деле можно поспорить) обычно для почему не хотим андроидовские классы в презентере? Потому что типа не протестировать? Но есть же Robolectric, который решает эту проблему)
А вообще по опыту бывает, что контекст нужен аж в Интеракторе. И чтобы этого избежать надо плюс пять методов, скажем, и усложнённая логика. Оно того стоит?)
Robolectric стартует долго. Ну а если без него, то тот же контекст и Mockito хорошо мокается.
источник

EM

Eugene Matsyuk in Android Architecture
Андрей
Robolectric стартует долго. Ну а если без него, то тот же контекст и Mockito хорошо мокается.
Примерно 6 секунд)
А так да, можно через Mockito
Но если мы хотим проверить, что верная строчка выдаётся, то только Robolectric
источник

AP

Alexey Pushkarev in Android Architecture
Eugene Matsyuk
Примерно 6 секунд)
А так да, можно через Mockito
Но если мы хотим проверить, что верная строчка выдаётся, то только Robolectric
Я вот только не пойму зачем тестировать фреймворк? Это задача андроид команды Гугла, не?
источник

AP

Alexey Pushkarev in Android Architecture
Это я доклад с мблт про роболектрик глянул
источник

VB

Vitaliy Babichev in Android Architecture
DigitalKoi Taras
привет. Я новичок и вопрос очень тупой, но рискну). Мне надо с Assets получить по названию файл, AssetManager желает context и я чёт не секу как правильно передать этот контекст в презентер по архитектуре. Тоисть путь к файлу надо записать в спец поле в БД и поэтому не хочу во вью пихатся с этим методом
interface FileReader {
InputStream open (String path);
}
источник

VB

Vitaliy Babichev in Android Architecture
И передавай его в конструктор презентера
источник

VB

Vitaliy Babichev in Android Architecture
Андроидовских классов в презентере и правда быть не должно
источник

EM

Eugene Matsyuk in Android Architecture
Ну вот такая ситуация у нас. Есть какой-то бизнес-класс, который, например, может нам вернуть пять видов ошибок. И для каждой ошибки свой текст. Тогда нам нужно 5 методов вьюшки, которые мы будем дергать в каждом случае. Или же нам просто сформировать в презентере нужную строчку и передать Ее во вью одним методом view.onError(String text)?
@InjectViewState
источник

ИО

Игорь Озеркин in Android Architecture
А вообще модель для работы с ассет должна быть
источник

ИО

Игорь Озеркин in Android Architecture
Вы тогда избавите презентер от контекста и замокать сможете модель, если тестировать будете
источник