Circuit — это простая, легкая и расширяемая архитектура от Slack для создания приложений Kotlin, основанных на Compose.
Compose — это, по сути, две библиотеки — Compose Compiler и Compose UI. Большинство людей обычно думают о Compose UI, но компилятор (и связанная с ним среда выполнения) на самом деле вообще не специфичен для UI и предлагает мощные API управления состоянием.
Основными компонентами Circuit являются интерфейсы Presenter и UI. Правила их работы:
- Presenter и UI не могут напрямую обращаться друг к другу. Они могут обмениваться данными только посредством передачи состояний и событий.
- UI являются Compose-firstю
- Презентеры тоже Compose-first. Они не генерируют Compose UI, но используют среду выполнения Compose для управления и генерирования состояний.
- И Presenter, и UI имеют по одной компонуемой функции.
- В большинстве случаев Circuit автоматически подключает презентеров и UI.
- Presenter и UI являются дженериками, причем дженерики определяют типы UiState, с которыми они взаимодействуют.
- Они управляются Screen-ами. Один запускает новую пару Presenter/Ui, запрашивая их с заданным Screen, который они понимают.