Size: a a a

Android Architecture

2017 January 28

AZ

Alexandr Zherebtsov in Android Architecture
или фабрика с текстами ошибок, понятно, вариантов куча, но факт есть факт)
источник

AZ

Alexandr Zherebtsov in Android Architecture
а вот для слой с логикой я сделал java модулем туду уже ничто не проберется из андроида 😂
источник

RS

Roman Sytnyk in Android Architecture
Alexandr Zherebtsov
ну а что, часто в презентере есть зависимости на фреймворк, ну иногда это бывает удобно, например текст дефолтный показать какой нибудь getView().showErrorMessage(ContextCompat.getString(context, R.string.default_error));
А что мешает передавать во вью только текст или id, и уже там дёргать андроид-часть?
источник

AZ

Alexandr Zherebtsov in Android Architecture
Roman Sytnyk
А что мешает передавать во вью только текст или id, и уже там дёргать андроид-часть?
ну текст не передать, так как локализация нужна же, да это пример не самый лучший может быть) ничто не мешает сделать там без контекста
источник

sm

sasha merkulev in Android Architecture
Roman Sytnyk
А что мешает передавать во вью только текст или id, и уже там дёргать андроид-часть?
Ага, я id передаю.
источник

sm

sasha merkulev in Android Architecture
Строкового ресурса.
источник

AZ

Alexandr Zherebtsov in Android Architecture
sasha merkulev
Строкового ресурса.
а как получаете его?
источник

sm

sasha merkulev in Android Architecture
Ну в презентере есть ссылка на R
источник

AZ

Alexandr Zherebtsov in Android Architecture
ну R это не андроид, но что то туда его тоже стремно тянуть
источник

RS

Roman Sytnyk in Android Architecture
А другого способа, в принципе, нет.
Ещё в сигнатуре метода ставлю аннотацию @IdRes
источник

RS

Roman Sytnyk in Android Architecture
Roman Sytnyk
А другого способа, в принципе, нет.
Ещё в сигнатуре метода ставлю аннотацию @IdRes
Вау, получилась ссылка на какой-то иранский канал 😆
источник

AZ

Alexandr Zherebtsov in Android Architecture
Roman Sytnyk
Вау, получилась ссылка на какой-то иранский канал 😆
😂
источник

AZ

Alexandr Zherebtsov in Android Architecture
Roman Sytnyk
А другого способа, в принципе, нет.
Ещё в сигнатуре метода ставлю аннотацию @IdRes
способы есть, можно в бандлы ошибки помещать, как здесь https://github.com/android10/Android-CleanArchitecture/blob/master/presentation/src/main/java/com/fernandocejas/android10/sample/presentation/presenter/UserDetailsPresenter.java, можно фабрику для текстов сделать, наверное это имеет ввиду @eugene_matsyuk что иногда можно на компромисс пойти
источник

AZ

Alexandr Zherebtsov in Android Architecture
хм, я всегда избегал R в не View классах или классах, задача которых с ресурсами работать, хотя что в них страшного, кроме того, что они генерятся
источник

A

Artur in Android Architecture
Alexandr Zherebtsov
А я у себя заметил другое, что когда Context приходит в презентер (пытается придти), то значит презентер начинает заниматься не своим делом. Нужен ли Context презентере вообще чтобы выполнять свои задачи? Скорее всего слой представления будет лучше спроектирован, если будете пататься избежать зависимости от Context в презентере. Даже если тестирование не учитывать.
Мы сейчас пытаемся сделать презентеры без конктекста. Но что делать, если хочешь протестировать, что презентер собрал именно ту строку, что ты ожидаешь исходя из нескольких параметров (даты, типа сообщения, типа пользователя)? Да, можно сказать, что пусть этой сборкой занимается отдельный класс, но ему-то тоже нужно где-то брать исходные локализованные строки?
источник

A

Artur in Android Architecture
источник

A

Artur in Android Architecture
Кажется, тут всё равно есть контекст
источник

AZ

Alexandr Zherebtsov in Android Architecture
Artur
Кажется, тут всё равно есть контекст
ух ты блин, не обращайте внимание, это у чувака рука дрогнула, когда кодил))
источник

AZ

Alexandr Zherebtsov in Android Architecture
Artur
Мы сейчас пытаемся сделать презентеры без конктекста. Но что делать, если хочешь протестировать, что презентер собрал именно ту строку, что ты ожидаешь исходя из нескольких параметров (даты, типа сообщения, типа пользователя)? Да, можно сказать, что пусть этой сборкой занимается отдельный класс, но ему-то тоже нужно где-то брать исходные локализованные строки?
ну смотрите, отдельный класс может иметь контекст, который туда будет удобно доставлен даггером например, он работает с ресурсами и это его задача. здесь в действии скорее принцип разделения ответственности,  если вы намекаете, на то что у презентера таким образом все равно останется нежелательная зависимость на контекст,  то в презентер же можно интерфейс этого отдельного класса  заинжектить
источник

AZ

Alexandr Zherebtsov in Android Architecture
а если у вас еще и сложная логика сборки сообщения по нескольким параметрам, то вынести все это дело в отдельный класс даже оверхедом не кажется)
источник