Jetpack Compose

Автор оригинала: developer.android.com
  • Перевод

image


  • 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"


Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Насколько больно разрабатывать в настоящее время UI под Android?

Поделиться публикацией
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 0

Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое