- Jetpack Compose это отдельный набор инструментов разработанный для упрощения разработки UI. Он соединяет модель реактивного программирования с лакончностью и лёгкостью использования языка программирования Kotlin
- ПРИМЕЧАНИЕ: Jetpack Compose в настоящее время находится в стадии ранних исследований, пре-альфа. Его API ещё не завершено и поэтому не следует использовать его в продакшене
- от переводчика: внизу статьи ссылка на видео с докладом о Jetpack Compose на конференции "Google I/O'19"
Основные принципы
Краткость и стиль Kotlin
- использует преимущества Kotlin — краткий, безопасный, и полностью совместимый с Java. Разработан для существенного уменьшения количества стандартного кода, что позволяет сфокусироваться на вашем коде, и помогает избежать внутренних ошибок классов
Декларативный
- полностью декларативное определение компонентов UI, включая отрисовку и создание собственных размещений. Просто описывает ваш UI как набор компонуемых функций, а платформа управляет оптимизацией UI и автоматически обновляет виджет-иерархию
Совместимый
- совместим с существующими виджетами так что можно смешивать и комбинировать, а также адаптироваться так как вам нужно имея прямой доступ ко всем API Android и Jetpack
Позволяет создавать красивые приложения
- поддерживает Material Design из коробки, а так же анимацию, так что позволяет легко создавать красивые приложения наполненные движением
Ускоряет разработку
- ускорьте разработку через написание меньшего количества кода и использование инструментов на подобие Apply Changes и через просмотр изменений в реальном времени
Быстрый обзор
- Jetpack Compose разработан на базе Android Open Source Project. Он содержит два главных компонента:
- UI-библиотеку Compose, которая содержит основной набор инструментов UI т.е. разметку, поля ввода, текстовые поля, анимации, стили, виджеты и графику
- компилятор Compose, собственный Kotlin-компилируемый плагин содержащий функции компоновки и автоматически обновляющий UI-иерархию
- Compose-приложение состоит из компонуемых функций которые трансформируют данные приложения в UI-иерархию. Функции это все что вам необходимо для создания нового UI-компонента
для создания компонуемой функции, просто добавьте аннотацию @Composable к имени функции. Под капотом, Compose использует собственный Kotlin-компилируемый плагин так что когда изменяются фоновые данные, компонуемые функции могут быть вызваны повторно для генерации обновлений UI-иерархии. Простой пример ниже печатает строку на экране:
import androidx.compose.* import androidx.ui.core.* @Composable fun Greeting(name: String) { Text ("Hello $name!") }
- API библиотеки располагается в AOSP-директории по адресу frameworks/support/ui. Compose-компилятор и runtime-код доступен по следующей ссылке frameworks/support/compose
Библиотека Compose UI
- библиотека Jetpack Compose UI содержит следующие модули:
- android-text/ — специфические для Android имплементации работы с текстом
- android-view/ — обёртки и адаптеры для существующих виджетов Android
- animation/ — компоненты анимации
- animation-core/ — внутренние компоненты системы анимации
- core/ — базовые классы системы включающие примитивы, графику и рисование
- framework/ — базовые компоненты предоставляемые системой, используемые как строительные блоки. Содержит классы Draw, Layout, Text и др.
- layout/ — базовые компоненты разметки
- material/ — набор UI-компонентов созданных с учётом спецификации Material Design
- platform/ — внутренние имплементации позволяющие отделить Android-имплементацию от тестов на стороне хоста
- test/ — тестирование фреймворка
- text/ — текстовый движок
От переводчика
Видео доклада с рассказом о Jetpack Compose на "Google I/O'19"