Задача заключалась в интеграции чата в мобильное приложение банка. Ожидания от проекта включали визуальную привлекательность, легкость в навигации и отзывчивость, удобство использования.
Для решения этой задачи мы воспользовались фреймворком Jetpack Compose. Мы создали компоненты пользовательского интерфейса в виде функций, зависящих от текущего состояния. Это позволило нам автоматически обновлять пользовательский интерфейс при изменении состояния. Мы применили MVI-паттерн, чтобы эффективно управлять состояниями.
Для управления состоянием пользовательского интерфейса чата был создан класс данных, который содержал информацию для отображения чата. Например, сообщения пользователя и ответы чат-бота. Затем мы определили компоненты пользовательского интерфейса для чата в виде функций, использующих этот класс данных. Например, история чата была представлена в виде списка сообщений, который автоматически обновлялся на основе данных из класса.
Когда пользователь взаимодействовал с чатом, например, отправлял сообщение, состояние обновлялось, и Jetpack Compose автоматически обновлял соответствующие компоненты пользовательского интерфейса. Таким образом, использование фреймворка значительно упростило управление состояниями пользовательского интерфейса и обеспечило его актуальность и отзывчивость.
Результатом работы было написание примерно 5 тысяч строк кода и создание 15 компонентов пользовательского интерфейса, входящих в дизайн-систему приложения.
Jetpack Compose обладает функциями управления состояниями, которые значительно упрощают задачу разработчиков в создании сложных пользовательских интерфейсов, подобных нашему.