Существует ли в Jetpack Compose аналог базового класса View из XML

«Существует ли в Jetpack Compose аналог базового класса View из XML» — вопрос из категории Jetpack Compose, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Jetpack Compose аналогом View является Composable функция. Вместо наследования от базового класса, как в View, Compose использует функции с аннотацией @Composable.

Ключевые отличия:

  • Декларативный подход: Compose описывает UI через функции, а не через иерархию классов.
  • Отсутствие наследования: Вместо ViewGroup и View — композиция функций (Column, Row, Box и т.д.).

Пример аналога TextView:

@Composable
fun MyText(text: String) {
    Text(text = text) // Аналог TextView
}

Для кастомных элементов — создаётся @Composable функция, а не класс, наследующий View.