Size: a a a

Cicerone Chat (RUS)

2020 November 09

ВБ

Влад Баженов... in Cicerone Chat (RUS)
Konstantin Tskhovrebov
я заставлять никого не буду, но это может быть интересным опытом, хотя бы попробовать его описать.
это хорошо, получается старые преимущества остаются и при этом появляются фишки конкурентов 👍
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Блин, всегда было проблемой из нотификации открыть экран так чтобы потом по нажатию назад возвращаться по определенному стеку
источник

E

Eugene in Cicerone Chat (RUS)
а вот в jump есть chain, там только 1 id указывается, или реально можно цепочку - chain("5","4")?
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
И да можно ли будет графы писать в нескольких файлах? Типо разные флоу описывать чтобы не был огромный файл на 100 экранов например.
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
понятное дело, что тянуть мое решение рано в прод. мои следующие шаги:
- обозначить первый экран при запуске графа по-умолчанию (кстати, уже учтены кейсы с логикой на старте, типа диплинок и джапма из рута)
- описать куски графа, которые доступны из любого места (чтобы не делать везде ребра к ним)
- добавить проверку, чтобы нельзя было сломать стек, копаясь ручками во фрагмент менеджере
- настройка, что делать, при попытке неописанного перехода (падать или просто лог)
- переживать смерть процесса
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
Eugene
а вот в jump есть chain, там только 1 id указывается, или реально можно цепочку - chain("5","4")?
вот в семпле. это переход из 9ки
источник

E

Eugene in Cicerone Chat (RUS)
Alexey Pushkarev
И да можно ли будет графы писать в нескольких файлах? Типо разные флоу описывать чтобы не был огромный файл на 100 экранов например.
можно, это же dsl
источник

E

Eugene in Cicerone Chat (RUS)
пошел стяну семпл поиграюсь
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
Konstantin Tskhovrebov
вот в семпле. это переход из 9ки
то есть из стека 8-9 мгновенно меняется на стек 1-2-3-4-5-7
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
который, что ВАЖНО, допустим по графу
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
если указать недопустимый переход, то не даст использовать граф
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
то есть, не смотря на то, что там везде строковые ИД, везде есть проверки на их наличие и связность между собой
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
на это и ушло основное время
источник

AD

Aleksey D. in Cicerone Chat (RUS)
источник

AD

Aleksey D. in Cicerone Chat (RUS)
не то, чтобы я использовал сейчас чичерона, но выглядит очень круто
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
сейчас основные концепции, которые я придумал:
destination - просто добавление перехода на новый экран
edge - описание перехода, на уже описанные где-то в графе экран (если экран с таким ИД не описан, то будет ошибка при создании графа)
jump - сложное действие возврат на ИД + открытие цепочки (можно без возврата или без новой цепочки. допустимость цепочки проверяется по графу. допустимость всех ИД экранов проверяется)
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
для сброса текущего стека можно использовать джамп на псевдо ИД = ROOT_ID
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
то есть просто джамп в ROOT_ID = выходу из графа
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
и для этого есть алиас finish
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
edge может указывать на сам экран который его содержит - тогда получится возможность открывать бесконечный стек из одинаковых экранов
источник