Денис Сергеевич Попков - Разработка Android приложений с Jetpack Compose стр 2.

Шрифт
Фон

Перейдите вПерейдите вПерейдите вПерейдите в, Перейдите вПерейдите в [https://inky-belief-259.notion.site/Preview-909c458b613f49eabbd7dc67235382e5].



В Preview можно производить какие-то действия в боковом меню, без запуска в эмуляторе, для этого нужно нажать на иконку с указательным пальцем. Вторая кнопка запускает экран в эмуляторе.

Еще одной полезной фичей в Preview является группирование. Внутри аннотации укажите Preview и присвойте ей любое название. Так вы сможете быстро отыскать определенную группу элементов в Preview.

Стиль написания кода

JetpackJetpack обязывает писать название функций с заглавной буквы, далее все как в JetpackJetpack стиле. У всех Jetpack, функций есть набор параметров, именованные параметры должны идти в верном порядке во избежание ошибок. Прочие названия ресурсов, таких как цвет, шрифт и т.п, должны следовать той же логике.

Структура проекта

В отличии от проектов, где используется XML, вы не встретите пакета XML. Теперь весь интерфейс расположен внутри самого проекта. Помимо этого, XMLXML предоставляет дополнительные файлы для стилей, шрифтов, тем. Первый файл в пакете XML.XML XML. Внутри располагаются цвета, которые можно вызвать внутри интерфейса по их имени.



Сперва указывается 00, после прозрачность 0 и сам хэш код цвета.

Второй файл Shape. Для Shape приложений часто приходилось создавать множество файлов с различными формами для элементов. В ShapeShape это располагается в одном месте и вам при этом необходимо передать внутрь только параметр, на сколько нужно закруглить Shape.



Для указания размера шрифта или другого элемента, используют следующий синтаксис: число.число., число.число..

Третий файл отвечает за цветовую схему в приложение, background, цвет текста и так далее. background содержит в себе цвета для темной темы, можно дополнительно переопределить другие цвета, если это необходимо. background содержит цвета для светлой темы.

После определения светлой и темной темы, расположена Composable функция, которая отвечает за цвета в проекте. Таких функций может быть бесчисленное множество. Они вызываются внутри лямбда-блока setContent как это было реализовано в начальном проекте, который сгенерировала Android-студия.



Файл Type содержит настройки для шрифтов, внутри функции Type можно задать название шрифта, вес, размер и т.д.



Жизненный цикл и рекомпозиция

Отрисовка элементов в JetpackJetpack разделяется на три этапа. Jetpack

1. Composition: какой Composition показывать. Composition запускает Composition функции и создает описание вашего UI.

2. Layout: где размещать Layout. Этот шаг состоит из двух: измерение и размещение. Элементы верстки измеряют и помещают самих себя и все дочерние элементы.

3. Drawing: как рендерить. Drawing-элементы отрисовываются в Drawing, обычно на экране устройства.

JetpackJetpack не всегда выполняет все эти три этапа при обновлении данных или отображении элементов. Будут перерисованы только те Jetpack функции, в которых произошли изменения, что хорошо отражается на производительности.

Внутри каждого из состояний происходит считывание состояния, опишем, что происходит внутри каждого из них.

Этап 1:Этап 1:.

Чтение состояния в Composable функции или лямбда-блоке влияет на Composable и потенциально на следующие этапы. Когда значение состояния меняется, Composable планирует перезапуск всех Composable функций, которые его считывали. Обратите внимание, что среда выполнения может решить пропустить некоторые или все Composable функции, если входные данные не изменились.

В зависимости от результата Composition, Compose Composition запускает этапы Composition и Composition. Эти этапы могут быть пропущены, если контент не изменился, и, следовательно, общий размер элементов не изменится.



Этап 2:Этап 2:.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке

Скачать книгу

Если нет возможности читать онлайн, скачайте книгу файлом для электронной книжки и читайте офлайн.

fb2.zip txt txt.zip rtf.zip a4.pdf a6.pdf mobi.prc epub ios.epub fb3