Size: a a a

Android Architecture

2021 August 02

JF

Jorik Fat in Android Architecture
я больше о том, что при выстраивании архитектуры, в которой за ViewState полностью отвечает Presentation - gap становится бесполезен
источник

АЕ

Алексей Ершов... in Android Architecture
ViewState не всегда соответствует иерархии компонентов на экране, и даже при маленьком диффе может быть большое перестроение дерева
источник

АЕ

Алексей Ершов... in Android Architecture
так что на уровне UI он всё равно нужен
источник

JF

Jorik Fat in Android Architecture
а вот это интересная точка зрения. Спасибо
источник
2021 August 03

JF

Jorik Fat in Android Architecture
Возник интересная ситуация. Мне в DI нужен компонент, который зависит еще от 2х других (последовательно).
Я понимаю, что их нужно руками передавать в создание компонента (и инициализировать при необходимости)
Получается что мне нужен DI, для DI компонентов.
Есть какой-то инструмент для решения такой ситуации?
источник

JF

Jorik Fat in Android Architecture
очень не хочу вводить второй DI для обеспечения иерархии компонентов первого
источник

A

Aleksei in Android Architecture
а на чем DI сделано? даггер?
источник

JF

Jorik Fat in Android Architecture
да
источник

JF

Jorik Fat in Android Architecture
да даже есть делать на Toothpick, все равно нужно родительские модули открывать
источник
2021 August 04

АЕ

Алексей Ершов... in Android Architecture
Ни один DI вам автоматическую ленивую инициализацию родительских компонентов не обеспечит. Очень по-разному можно сделать управление временем их жизни. А если родительским компонентам какие-то параметры нужны для инициализации, то не факт, что в месте, где вы открываете дочерний компонент, они доступны.
источник

АЕ

Алексей Ершов... in Android Architecture
Самое близкое к тому, что вы описываете, это Хилт, но у него своё видение и свой набор ограничений. Если у вас ограничения другие, нужно делать свой хилт)
Где-то на гитхабе видел бибилиотеку менеджер даггер компонентов, может тоже интересно будет посмотреть.
источник

F

FX0000O in Android Architecture
На сколько сейчас востребован паттерн "одного активити" (SAA) и может ли кто-нибудь порекомендовать книгу по этой теме? Спасибо и доброго утра.
источник

A

Aleksei in Android Architecture
Ели делать UI на компоузе, то вполне востребован. Книг вам не нужно никаких, читайте гугловские доки.
источник

PD

Pavel Dashkevich in Android Architecture
а если не на компоузе?
источник

NT

Nikita Tipun in Android Architecture
то тоже востребован, ничего не мешает жонглировать фрагментами вместо композаблов)
источник

PD

Pavel Dashkevich in Android Architecture
спасибо за уточнение )
источник

АЕ

Алексей Ершов... in Android Architecture
https://habr.com/ru/company/redmadrobot/blog/426617/ вот книга, которая вам нужна)
источник

АБ

Александр Баслеров... in Android Architecture
https://www.youtube.com/watch?v=wcdqoTubPrU&t=1555s А вот еще и видео, если уж совсем лень.
источник

v

vitaly in Android Architecture
Леди и джентльмены, такая вот ситуация:

Есть модуль, который используется и в родной прилаге и заливается в репу как либа для клиентов для интеграции с нашим сервисом. Это налагает соответствующие ограничения на архитектуру - слоёв становится побольше и фреймворки наружу не выставишь из библиотечного модуля.

Вопрос по дизайну сущности, которая ответственна за некоторый функционал (в данном случае - регистрация). В процессе этой регистрации может понадобиться ввод кода пользователем (а может и не понадобиться). Тут у меня используется коллбек (как самое логичное решение, на мой взгляд). Чёт типа того
manager.setOnCodeRequiredListener {}
Вопрос вот в чём: как лучше передать инпут юзера (этот самый код)?
Варианты, которые на уме у меня:
1. Вернуть его в коллбеке. Минусы - не знаю, как это хендлить с точки зрения потоков, т.к. юзер вводит код не мгновенно и мне / клиенту придётся как-то блокирующе этот инпут возвращать.
2. Сделать отдельный метод у менеджера. Минусы - запутанно и в общем как-то коряво.
3. Вернуть из коллбека что-то обзервабельное / callable, куда клиентский по отношению к модулю код запулит в нужный момент значение. Минусы - вынуждать клиентскую часть использовать какие-то фреймворки и вообще тоже запутанно.

Как лучше сделать, на ваш взгляд? Какие ещё есть варианты?
источник

AK

Anatolii K in Android Architecture
1:
В качестве колбека принимай что-то типа (Continuation) -> Unit, где у Continuation есть метод типа resume(code: String). Такой подход во многих либах используется
источник