Рубрика: Compose

  • В чём разница между remember и rememberSaveable? Когда использовать каждый?

    Что делает remember remember хранит значение внутри композиции (в slot table), живёт, пока компонент находится в Composition и переживает рекомпозиции. Но значение теряется, когда: Composable вышел из дерева (ветка if выключилась, сменился экран и т.п.) или Activity/Process был уничтожен (например, поворот экрана). remember как бы говорит компилятору «помни, пока этот кусок UI живёт». Что делает…

  • Что такое State Hoisting? Почему это ключевая практика в Compose?

    State hoisting в Compose — это просто поднятие состояния наверх по дереву, из дочернего @Composable в его родителя. Формула очень простая: Компонент не хранит state, а получает его «сверху» и сообщает о изменениях «наверх». И это одна из ключевых практик в Compose, потому что она обеспечивает один источник истины, повторное использование, тестируемость и предсказуемость UI.…

  • Объясни жизненный цикл Composable-функции. Когда происходит initial composition, recomposition, когда функция уходит из композиции?

    Давайте разложим это без магии: у любой @Composable по сути три состояния жизни: Compose-рантайм не даёт onCreate/onDestroy, но даёт правила, по которым вызывается код и срабатывают эффекты. 1. Initial composition — первый заход функции в композицию Когда происходит: Что реально происходит при initial composition: 2. Recomposition — повторный вызов функции при изменении состояния Когда происходит:…

  • Что такое Composable-функция? Какие правила работы у неё есть?

    @Composable‑функция — это специальная функция в Jetpack Compose, предназначенная для декларативного описания UI. Это функция, которая: Что делает @Composable? Основные правила и ограничения Правило Объяснение Обязательная аннотация @Composable Без неё функция не участвует в рекомпозиции и не может вызывать другие composable Имя с заглавной буквы (PascalCase) Не обязательно, но рекомендуется (Google style guide) Нет возвращаемого…

  • В чём принципиальное отличие Jetpack Compose от View-системы? Как работает рекомпозиция?

    Jetpack Compose — это декларативная UI-система, принципиально отличающаяся от императивной View-системы Android. Это не просто замена TextView на Text() — это полностью другой способ мышления и рендеринга UI. Главное отличие это «Декларативность» Compose как бы говорит: «Если у тебя новый state, то перерисуй UI так, чтобы он соответствовал ему. Не важно, что было раньше.» Принципиальные…