Код: Выделить всё
:composeКод: Выделить всё
@Composable
fun MyComposable(state: MyState) {
// compose content
}
@Preview
@Composable
fun MyComposablePreview() {
MyComposable(MyState(...))
}
Код: Выделить всё
:appКод: Выделить всё
@Composable
fun MyComposableScreen(viewModel: MyViewModel : viewModel()) {
val state = viewModel.state.collectAsStateWithLifecycle()
MyComposable(state)
}
@Preview
@Composable
fun MyComposableScreenPreview() {
MyComposable(MyState(...))
}

для MyComposablePreview, тогда он запускает этот предварительный просмотр только сам по себе, без какой-либо другой зависимости, просто отлично, это означает не что иное, как этот предварительный просмотр (и все остальное намеренно связанный с ним) будет выполнен.
Однако, если я сделаю то же самое в своем модуле :app с MyComposableScreenPreview, тогда он создаст весь APK приложения. вместе с самим экраном предварительного просмотра.
Это большая проблема, поскольку приложение имеет много сложной логики перед входом в него (маршрутизация экрана, этап входа в систему, этап настройки сервера и т. д.). рендеринг практичности предварительного просмотра композиции, упомянутого выше в основном бесполезно, учитывая, что если правильная настройка/конфигурация не существует, предварительный просмотр не отображается или перенаправляется на другой экран.
Я пытался найти способ НЕ собирать весь APK при запуске предварительного просмотра компоновки в модуле :app, но пока ничего не нашел.
Есть ли способ настроить его так, чтобы не создавать весь APK APK при запуске предварительного просмотра создания в :app модуль?
ПРИМЕЧАНИЕ. Просто отказ от предварительного просмотра в модуле :app не будет жизнеспособным решением, поскольку это уже было достигнуто (как я упоминал выше). Это требование позволяет мне запускать предварительный просмотр с логикой, которая существует только в модуле :app, а не в модуле :compose.
Подробнее здесь: https://stackoverflow.com/questions/793 ... apk-in-app
Мобильная версия