Skip to content

Latest commit

 

History

History
76 lines (54 loc) · 4.36 KB

README-RU.md

File metadata and controls

76 lines (54 loc) · 4.36 KB

Пример использования VisualFSM в KMM (Android + iOS) приложении - Kotlin Coroutines, Jetpack Compose, SwiftUI

Telegram Telegram

ENG | RUS

VisualFSM – это Kotlin-библиотека для реализации MVI-архитектуры (Model-View-Intent)[1] и набор инструментов для визуализации и анализа диаграммы состояний конечного автомата (Finite-state machine, далее FSM)[2].

Визуализация происходит по исходному коду реализации FSM. Не требует написания отдельных конфигураторов для FSM, достаточно добавлять новые классы State и Action – они автоматически добавятся в граф состояний и переходов FSM.

Анализ исходного кода и построение графа выполняется с помощью рефлексии и реализован отдельным модулем, что позволяет подключить его только к тестовой среде.

Процесс авторизации и регистрации пользователя

graph

Feature: AuthFeature.kt

States: AuthFSMState.kt

Actions: actions

AsyncWorker: AuthFSMAsyncWorker.kt

Маппер States в модель данных Ui: ScreenDataMapper.kt

Генерация графа и пример тестов: AuthFSMTests.kt

Для визуализации на CI используйте утилиту graphviz, для визуализации на компьютере разработчика используйте webgraphviz.

Скриншоты

Login Registration ConfirmationRequested
AsyncWorkState.Registering Login with snackbar UserAuthorized

Что такое MVI

MVI расшифровывается как Model-View-Intent. Это архитектурный паттерн, который следует подходу однонаправленный поток данных (unidirectional data flow). Данные передаются от Model к View только в одном направлении.

Подробнее на hannesdorfmann

Что такое FSM

FSM — это абстрактная сущность, которая может находиться только в одном из конечного количества состояний в определённый момент. Она может переходить из одного состояния в другой в ответ на входные данные.

Подробнее на wikipedia