Size: a a a

Android Architecture

2020 February 02

AC

Arsen CeH9 in Android Architecture
в концепции "счетчика" экрану пофиг "представитель какого скоупа" до и после него в цепочке навигации, все, что ему нужно  - инкрементить при создании и декрементить при уничтожении, проблема только в том, что счетчик может быть 0 в промежутке между сменой экранов.
источник

AC

Arsen CeH9 in Android Architecture
+ неопределенность в порядке срабатывания колбеков жц фрагментов при разных конфигах транзакции
источник

AC

Arsen CeH9 in Android Architecture
мб получится вынести все это за слой абстракции, но тут тоже пахнет боилерплейтом
источник

АЕ

Алексей Ершов in Android Architecture
Arsen CeH9
Кто как менеджит жц кастомных di скоупов? К примеру для флоу/визарда на несколько экранов. Пока что встречал только ручной вариант, где нужно самому обнулять(set null) скоуп в каждом "брейк сценарии" т.е. там где юзер окончательно покидает флоу. Выглядит достаточно рутинно и "способствует багам".

Подумываю над каким-нибудь countRef механизмом, но из-за особенностей андроида пазл пока не складывается. Не понятно как добиться того, чтобы в некоторых кейсах новый экран/скоуп биндил зависимости(увеличивал countRef) раньше, чем предыдущий декрементил их.

Архитектура на фрагментах,  обычно транзакции предсказуемы(достаточно понимать add, replace, addToBackStack), но иногда они могут  менять поведение/оптимизироваться (setReorderingAllowed). Согласно докам - если было закомиченно(pendingTransactions) несколько действий(переходов), то некоторые шаги могут вообще опускаться (пропуская вызовы колбеков жц опущенных фрагментов)
“How to store scoped Dagger Components in Android applications” by Alexander Sitnikov https://link.medium.com/DcJtZ31oK3
Возможно заинтересует. Вообще тема действительно достойная обсуждения и нерешенная)
источник

AC

Arsen CeH9 in Android Architecture
спс, гляну
источник

АЕ

Алексей Ершов in Android Architecture
Ivan Miroshnichenko
а если например инжектить в презентер какой то интерфейс, реализация которого имеет доступ к активити?
Да, что-то такое и приходится делать. Но инжектить нельзя, потому что презентер живет дольше активити, только подставлять и занулять. И андроидные зависимости очень торчат. В общем, явно не заточена на decoupling эта либа.
источник

IM

Ivan Miroshnichenko in Android Architecture
Алексей Ершов
Да, что-то такое и приходится делать. Но инжектить нельзя, потому что презентер живет дольше активити, только подставлять и занулять. И андроидные зависимости очень торчат. В общем, явно не заточена на decoupling эта либа.
а если single activity с retain фрагментом, и его инжектить?
источник

AD

Aleksey D. in Android Architecture
Алексей Ершов
“How to store scoped Dagger Components in Android applications” by Alexander Sitnikov https://link.medium.com/DcJtZ31oK3
Возможно заинтересует. Вообще тема действительно достойная обсуждения и нерешенная)
а я на неделе дня два-три сам выдумывал это всё
только добавил FragmentFactory ещё
источник

Y

YorkIsMine in Android Architecture
Всем привет, дорогие архитекторы! Вот читаю Мартина про чистую архитектуру и возникли некоторые сложности с пониманием происходящего. Речь идет о неполных и полных границах. Есть пара вопросов:
1. Почему реализация полных границ обходится дорого?
2. Пример неполной границы - IClass c = new ClassImpl()? Знаю, что реализаций несколько, но все же. В чем преимущества неполных границ?
3. Как реализовать полную границу? На примерах кажется, что нет отличия от неполной границы.
источник

АЕ

Алексей Ершов in Android Architecture
Ivan Miroshnichenko
а если single activity с retain фрагментом, и его инжектить?
Можно, наврное, но всё равно неприятно)
источник

SV

Sergey Vasilchenko in Android Architecture
Arsen CeH9
спс, гляну
https://proandroiddev.com/lifecycle-aware-dagger-components-8c74d01fa15
такой вариант еще ковырял не так давно
источник

АЕ

Алексей Ершов in Android Architecture
YorkIsMine
Всем привет, дорогие архитекторы! Вот читаю Мартина про чистую архитектуру и возникли некоторые сложности с пониманием происходящего. Речь идет о неполных и полных границах. Есть пара вопросов:
1. Почему реализация полных границ обходится дорого?
2. Пример неполной границы - IClass c = new ClassImpl()? Знаю, что реализаций несколько, но все же. В чем преимущества неполных границ?
3. Как реализовать полную границу? На примерах кажется, что нет отличия от неполной границы.
Скажите название и номер раздела, где читали
источник

IM

Ivan Miroshnichenko in Android Architecture
😅 андроид)
но в ios думаю намного хуже
источник

Y

YorkIsMine in Android Architecture
Алексей Ершов
Скажите название и номер раздела, где читали
Глава 25. Уровни и границы. На 226 странице показана диаграмма
источник

АЕ

Алексей Ершов in Android Architecture
YorkIsMine
Глава 25. Уровни и границы. На 226 странице показана диаграмма
Попробую своё упрощенное понимание. Вот есть у вас фрагмент, и у него презентер. Как вы обращаетесь из фрагмента в презентер?
источник

AA

Alidibir Akhbulatov in Android Architecture
Ivan Miroshnichenko
конечно в презентере с использованием rxpermissions!
А не будет ли утечки в таком случае, т.к. для его инициализации используются Activity или Fragment? Я использовал прямо во фрагменте и код от этого хуже не становился. К тому же либа кажется заброшена. PR и issues висят подолгу без ответов
источник

Y

YorkIsMine in Android Architecture
Алексей Ершов
Попробую своё упрощенное понимание. Вот есть у вас фрагмент, и у него презентер. Как вы обращаетесь из фрагмента в презентер?
Создаю внутри презентер и оперирую методами
источник

АЕ

Алексей Ершов in Android Architecture
YorkIsMine
Создаю внутри презентер и оперирую методами
Ага, а презентер как вызывает фрагмент?
источник

AD

Aleksey D. in Android Architecture
Алексей Ершов
“How to store scoped Dagger Components in Android applications” by Alexander Sitnikov https://link.medium.com/DcJtZ31oK3
Возможно заинтересует. Вообще тема действительно достойная обсуждения и нерешенная)
а в чем профит от VM вместо ретейнов?
источник

АЕ

Алексей Ершов in Android Architecture
Aleksey D.
а в чем профит от VM вместо ретейнов?
Написано же в статье) депрекейтед. Ну и не моя статья, спросите автора, ответит.
источник