Концепции и реализация Jetpack Compose
По сути, создание состояния — это постепенное внесение изменений в состояние пользовательского интерфейса. Состояние существует всегда и изменяется в результате событий. Различия между событиями и состоянием суммированы в таблице ниже:
События | Состояние |
Преходящие, непредсказуемые и существующие в течение конечного периода времени. | Существует всегда. |
Производственные ресурсы государства. | Объем государственного производства. |
Продукт пользовательского интерфейса или других источников. | Используется пользовательским интерфейсом. |
События могут происходить из следующих источников:
- Пользователи : В процессе взаимодействия с пользовательским интерфейсом приложения.
- Другие источники изменения состояния : API, предоставляющие данные приложения из пользовательского интерфейса, предметной области или уровня данных, например, события истечения времени ожидания Snackbar, варианты использования или репозитории соответственно.
API для производства состояний
В зависимости от этапа конвейера обработки данных, в процессе создания состояния используются два основных API:
Этап трубопровода | API |
Вход | Для обеспечения плавной работы интерфейса следует использовать асинхронные API для выполнения задач вне основного потока. Например, сопрограммы или потоки в Kotlin, а также RxJava или коллбэки в языке программирования Java. |
Выход | Для аннулирования и повторной отрисовки пользовательского интерфейса при изменении состояния следует использовать API-интерфейсы, поддерживающие наблюдаемые данные. Например, StateFlow или LiveData. Наблюдаемые данные гарантируют, что пользовательский интерфейс всегда будет иметь состояние для отображения на экране. |
Из двух вариантов выбор асинхронного API для ввода оказывает большее влияние на характер конвейера генерации состояния, чем выбор наблюдаемого API для вывода. Это связано с тем, что входные данные определяют тип обработки, которая может быть применена к конвейеру .
Государственная сборка производственного трубопровода
В следующих разделах рассматриваются методы генерации состояний, наиболее подходящие для различных входных данных, а также соответствующие API для обработки выходных данных. Каждый конвейер генерации состояний представляет собой комбинацию входных и выходных данных и должен соответствовать следующим требованиям:
- Учет жизненного цикла : В случае, когда пользовательский интерфейс не виден или неактивен, конвейер обработки состояния не должен потреблять никаких ресурсов, если это явно не требуется.
- Удобство использования : пользовательский интерфейс должен легко отображать созданное состояние. Вопросы, касающиеся вывода данных из конвейера создания состояния, будут различаться в зависимости от используемого API представления, например, системы представлений или Jetpack Compose.
Типы выходных данных в конвейерах государственного производства
Выбор API для вывода состояния пользовательского интерфейса и характер его представления во многом зависят от API, который ваше приложение использует для рендеринга интерфейса. В приложениях для Android вы можете использовать Views или Jetpack Compose. Здесь следует учитывать следующее:
- Считывание состояния с учетом жизненного цикла .
- Следует ли государству быть представленным в одной или нескольких областях от имени государственного держателя?
В таблице ниже приведено краткое описание API, которые следует использовать для конвейера обработки состояния при применении фреймворка Views:
Вход | Выход |
API-интерфейсы, работающие один раз | |
API потоковой передачи | |
API для однократных и потоковых запросов | |