Size: a a a

Android Architecture

2020 October 04

А

Архитектор in Android Architecture
Тоже по причине Dagger-а разбил проект на модули ещё в году 2018. Потом просто заменил на Toothpick и многомодульность стала не нужна
источник

ЕК

Евгений Кузовкин... in Android Architecture
> Потом просто заменил на Toothpick
источник

А

Архитектор in Android Architecture
Все остальные проекты делал в одном модуле
источник

ЕК

Евгений Кузовкин... in Android Architecture
источник

А

Архитектор in Android Architecture
😎`
источник

A

ABI in Android Architecture
Евгений Кузовкин
> Потом просто заменил на Toothpick
Переход сложный?
источник

АЕ

Алексей Ершов... in Android Architecture
Архитектор
Стоит заменить на Toothpick. Начнёт собираться намного быстрее
Он, конечно, быстрее, но тоже с каптом. Возможно начинает тормозить при большем размере проекта, но таки начинает
источник

ЕК

Евгений Кузовкин... in Android Architecture
ABI
Переход сложный?
Про миграцию не скажу. Я научился в даггер просто чтобы знать его, но не стал использовать в своих проектах, only Toothpick. Уже не один десяток приложений на нём. Сейчас разрабатываем довольно крупное и быстро растущее приложение, крайне много всего. С нуля проект компилится 3-4 минуты. За всё время потеряли только одну зависимость, прошло мимо QA, катнули хотфикс тем же вечером. Для меня выбор между возможными рисками и удобством разработки очевиден.
источник

ЕК

Евгений Кузовкин... in Android Architecture
Приведу пару примером, как мы работаем с Toothpick
источник

ЕК

Евгений Кузовкин... in Android Architecture
локальные модули для фрагментов
источник

ЕК

Евгений Кузовкин... in Android Architecture
inject в поле + extension для инжекта презентера, написан поверх стандартного moxyPresenter
источник

ЕК

Евгений Кузовкин... in Android Architecture
Иерархия скоупов привязана к иерархии фрагментов (понравился подход GitFox), автоматически создаются и очищаются.
источник

АЕ

Алексей Ершов... in Android Architecture
Евгений Кузовкин
Иерархия скоупов привязана к иерархии фрагментов (понравился подход GitFox), автоматически создаются и очищаются.
Закрываете там же где мокси презентер дестроится?
источник

А

Архитектор in Android Architecture
Евгений Кузовкин
локальные модули для фрагментов
Тоже так делаю)
источник

ЕК

Евгений Кузовкин... in Android Architecture
Алексей Ершов
Закрываете там же где мокси презентер дестроится?
Да, там похожая проверка на то, что фрагмент именно закрывается. В принципе, почти вся основа из GitFox перекочевала. Довольно гибко, покрывает большинство кейсов, остальное допиливается под нужды.
источник

AI

Arkadii Ivanov in Android Architecture
Alidibir Akhbulatov
Вопрос, связанный подходом, когда есть feature-модули с внутренним разбиением на слои (data, domain, presentation): вроде бы ок, но напрягает один недостаток - как шарить юзкейсы и модели между фичами? Выносить их в отдельный модуль? И как-то не очень, имхо, что юзкейсы из разных фич разместятся в каком-нибудь shared-domain модуле. Как вы у себя решаете это?
У нас один модуль на фичу. А если надо что-то пошарить, то это "что-то" надо выносить в отдельный модуль в виде отдельной фичи.
источник

AA

Alidibir Akhbulatov in Android Architecture
Arkadii Ivanov
У нас один модуль на фичу. А если надо что-то пошарить, то это "что-то" надо выносить в отдельный модуль в виде отдельной фичи.
Ок, допустим, есть 2 фичи "продукт" и "корзина" со своими юзкейсами (т.е. с логикой). В первой фиче нужна возможность добавления в корзину (т.е. нужен юзкейс корзины): выносить юзкейс корзины в отдельный модуль-фичу и шарить между фичами продукта и корзины? И тем самым получаем уже 3 фичи, в котором корзина разбивается на 2 фичи
источник

AI

Arkadii Ivanov in Android Architecture
Alidibir Akhbulatov
Ок, допустим, есть 2 фичи "продукт" и "корзина" со своими юзкейсами (т.е. с логикой). В первой фиче нужна возможность добавления в корзину (т.е. нужен юзкейс корзины): выносить юзкейс корзины в отдельный модуль-фичу и шарить между фичами продукта и корзины? И тем самым получаем уже 3 фичи, в котором корзина разбивается на 2 фичи
Фича "продукт" должна принимать коллбек "onAddToBasket" и в точке интеграции надо вызвать фичу "корзина". Стандартный IoC.
источник

V

Vladimir in Android Architecture
А можно немного разжевать последнее сообщение?
Корзина имплиментит onaddtobasket, а продукт его просто вызывает?
источник

DS

Dzmitry Sobolevsky in Android Architecture
Vladimir
А можно немного разжевать последнее сообщение?
Корзина имплиментит onaddtobasket, а продукт его просто вызывает?
Корзина не обязана имплементить. Например АппМодуль может передать в ПродуктФичу скромную реализацию этого интерфейса, который в свою очередь дернет КорзинаФичу за нужный метод
источник