Compose Preview в Android Studio кажется магией: поставил
@Preview — и UI уже рендерится в IDE. Но под капотом там довольно сложный пайплайн. @Preview — это не поведение, а просто метаданные, которые Studio считывает из байткода. Дальше IDE собирает synthetic XML, прокидывает его в ComposeViewAdapter, поднимает фейковый lifecycle, а сам composable вызывается через reflection с учётом скрытых параметров, которые добавляет Compose compiler.Самое интересное — почему preview иногда “ломается”. В preview-среде есть только имитация Android runtime: например, lifecycle переводится сразу в RESUMED, но попытка запустить ActivityResult специально падает с ошибкой, потому что реальной Activity нет. Ещё статья хорошо показывает, откуда берётся
LocalInspectionMode.current == true и как Studio потом связывает отрисованные пиксели с конкретными строками исходников через ViewInfo.Полезный разбор для тех, кто хочет не просто пользоваться Compose Preview, а понимать, почему он работает именно так — и почему иногда не работает.
Статья: https://doveletter.dev/preview/articles/compose-preview-internals 🇺🇸
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
