Size: a a a

Cicerone Chat (RUS)

2020 November 05

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Может сделать какой-то annotation processor и на переходы вешать аннотации чтобы этот процессор генерил какой-то статичный файл типо xml и по нему уже можно будет отрисовать граф.
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
точно нет
источник

AP

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

AP

Alexey Pushkarev in Cicerone Chat (RUS)
А иначе как тут быть?(
источник

L

Little Panda 🐼 in Cicerone Chat (RUS)
Alexey Pushkarev
Может сделать какой-то annotation processor и на переходы вешать аннотации чтобы этот процессор генерил какой-то статичный файл типо xml и по нему уже можно будет отрисовать граф.
Зачем сразу annotation processor? Можно написать компайлер плагин как в сериализации или в вьюбинденге. Будет работать в лайве.
источник

KT

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

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Little Panda 🐼
Зачем сразу annotation processor? Можно написать компайлер плагин как в сериализации или в вьюбинденге. Будет работать в лайве.
А как этот плагин по коду поймет какие переходы есть?
источник

ЕК

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

L

Little Panda 🐼 in Cicerone Chat (RUS)
Alexey Pushkarev
А как этот плагин по коду поймет какие переходы есть?
Хмм... интересный вопрос 🤔
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
Konstantin Tskhovrebov
я думал скорее с ракурса:
описываем навигационный граф на каком-то котлин DSL, его отображаем, а еще в роутере можем дергать не метод навигации а метод ссылающийся на DSL с ид перехода
Ну тут наверно апи библиотеки сильно поменяется и будут breaking changes?
источник

ЕК

Евгений Кузовкин... in Cicerone Chat (RUS)
Alexey Pushkarev
Ну тут наверно апи библиотеки сильно поменяется и будут breaking changes?
Таков путь
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
Alexey Pushkarev
Ну тут наверно апи библиотеки сильно поменяется и будут breaking changes?
я ж не сказал, что уберу все остальные методы.
можно будет выбирать, как использовать библиотеку.
там скорее будет отдельный роутер, который в конструкторе получает граф навигации
источник

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
кажется я уже решение дизайнить начал.
источник

ЕК

Евгений Кузовкин... in Cicerone Chat (RUS)
Вообще вот то, что Костя описал, можно разбить на две фичи:
1) Написание DSL для описания графов перехода, как в nav components, но только не в xml
2) Интеграция этого DSL с Cicerone
источник

KT

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

KT

Konstantin Tskhovreb... in Cicerone Chat (RUS)
а может при таком DSL и рендерить его не надо? 🙃
источник

ЕК

Евгений Кузовкин... in Cicerone Chat (RUS)
Евгений Кузовкин
Вообще вот то, что Костя описал, можно разбить на две фичи:
1) Написание DSL для описания графов перехода, как в nav components, но только не в xml
2) Интеграция этого DSL с Cicerone
3) Прожать интеграцию с nav components через связи в JetBrains
источник

ЕК

Евгений Кузовкин... in Cicerone Chat (RUS)
чтобы был универсальный способ описания графов, а там уже библиотека - на выбор
источник

AP

Alexey Pushkarev in Cicerone Chat (RUS)
C dsl идея клёвая, и не надо этих аннотейшен процессоров, влияющих на компиляцию.

Ну вообще граф имхо полезен. У меня был кейс рефакторинга и я первым делом нарисовал диаграмму переходов чтобы было понятнее какие экраны как между собой связаны.
источник

ЕК

Евгений Кузовкин... in Cicerone Chat (RUS)
Konstantin Tskhovrebov
а может при таком DSL и рендерить его не надо? 🙃
Опять же, рендеринг можно делать во вторую очередь, но это было как минимум хорошим плюсом. Не совсем корректное сравнение, но без нормального работающего плагина для рендеринга в Anko юзать было не очень удобно. Для навигации не так принципиально, но прикольно
источник