Size: a a a

Android Architecture

2020 February 14

AI

Arkadii Ivanov in Android Architecture
Можно использовать фрагменты, можно RIBs
источник

(

( in Android Architecture
Arkadii Ivanov
Эмитит фичи?
ну типа, как я выше написал:
fun <M1, M2, S1, S2, GM, GS> hCompose(
 f1: Feature<M1, S1>, f2: Feature<M2, S2>,
 m1g: (M1) -> GM, m2g: (M2) -> GM,
 gupd: (GM, GS) -> GM
) : Feature<GM, GS>
источник

(

( in Android Architecture
Очень грубо расписал типы, вероятно что-то пропустил, но надеюсь идея понятна
источник

AI

Arkadii Ivanov in Android Architecture
(
Очень грубо расписал типы, вероятно что-то пропустил, но надеюсь идея понятна
Интересно, но не понимаю зачем. Почему просто фрагменты друг в друга не вкладывать?
источник

АЕ

Алексей Ершов in Android Architecture
Arkadii Ivanov
Дальше кажется уже про конкретные реализации можно говорить. А так смысл и идея ведь понятны?
Общий посыл ясен и прекрасен. В последней статье обозначена проблема композиции таких компонентов, что между ними образуется немеряно wiring-а всякого возникает. Если строить дерево и "вкладывать" функциональность компонентов. Хочется послушать, как эту проблему решаете.
источник

(

( in Android Architecture
Arkadii Ivanov
Интересно, но не понимаю зачем. Почему просто фрагменты друг в друга не вкладывать?
Не понял вопрос. Вы фрагменты здесь трактуете как компоненты? Если да, то что вы имеете ввиду под "вкладывать"?
источник

SB

Simon Belialov in Android Architecture
Arkadii Ivanov
Компонент - это некий интерфейс с реализацией
Насколько часто у вас фичи связаны друг с другом и есть ли там проблемы, неудобности?
источник

AI

Arkadii Ivanov in Android Architecture
(
Не понял вопрос. Вы фрагменты здесь трактуете как компоненты? Если да, то что вы имеете ввиду под "вкладывать"?
Организовывать фрагменты в дерево же
источник

SB

Simon Belialov in Android Architecture
(
Не понял вопрос. Вы фрагменты здесь трактуете как компоненты? Если да, то что вы имеете ввиду под "вкладывать"?
Я так понял. Да. Напрямую фрагмент в фрагменте
источник

(

( in Android Architecture
А что от этого меняется? Есть проблема - в "фича1" лежит состояние клавиатуры (Visible | Invisible), в фича2 состояние диалога (Visible | Invisible), если в фича2 диалог "Visible", то нужно чтобы в фича1 клавиатура была "Invisible", иначе пользователь увидит жёппу
источник

(

( in Android Architecture
Как Аркадий писал выше, можно сделать сущность над этим делом, фичу-оркестратор, но это опять же бойлерплейтный вайринг
источник

(

( in Android Architecture
И про фрагменты я не понял совсем
источник

SO

Sergey Opivalov in Android Architecture
(
И про фрагменты я не понял совсем
Ты как тот гофер, который не понимает что такое дженерики.
Фрагменты можно вкладывать в друг друга, что непонятно конкретно?
источник

AI

Arkadii Ivanov in Android Architecture
(
Как Аркадий писал выше, можно сделать сущность над этим делом, фичу-оркестратор, но это опять же бойлерплейтный вайринг
Надо просто сообщить другому фрагменту, чтобы он закрыл клавиатуру. Как то так: https://gist.github.com/arkivanov/0394e67d6c220f48b2d557af6d446cbd
источник

(

( in Android Architecture
Arkadii Ivanov
Надо просто сообщить другому фрагменту, чтобы он закрыл клавиатуру. Как то так: https://gist.github.com/arkivanov/0394e67d6c220f48b2d557af6d446cbd
вот и подъехали императивные костыли
источник

(

( in Android Architecture
Нет, это не работает. У нас сейчас ровно такой ивентбас и в нём накопилось ~30 типов событий
источник

(

( in Android Architecture
Поддерживать резко стало невозможно, я собираюсь переписывать на пресловутую мастер-фичу
источник

AI

Arkadii Ivanov in Android Architecture
(
вот и подъехали императивные костыли
Ну сорян, нам кажется это лучше, чем каплить всё в одно мегасотояние. Может вы что-то делаете не так. У нас пол проекта так работает.
источник

(

( in Android Architecture
Arkadii Ivanov
Ну сорян, нам кажется это лучше, чем каплить всё в одно мегасотояние. Может вы что-то делаете не так. У нас пол проекта так работает.
Сколько у вас разработчиков и тестировщиков на проекте?
источник

AI

Arkadii Ivanov in Android Architecture
Может 25, щас ещё десяток наверно барть будем. 2.5 млн строк кода
источник