Разработка Android приложений с Jetpack Compose - стр. 2
Перейдите в Notion, чтобы подробнее рассмотреть код создания mock, provider классов– [https://inky-belief-259.notion.site/Preview-909c458b613f49eabbd7dc67235382e5].
В Preview можно производить какие-то действия в боковом меню, без запуска в эмуляторе, для этого нужно нажать на иконку с указательным пальцем. Вторая кнопка запускает экран в эмуляторе.
Еще одной полезной фичей в Preview является группирование. Внутри аннотации укажите group и присвойте ей любое название. Так вы сможете быстро отыскать определенную группу элементов в Preview.
Стиль написания кода
JetpackCompose обязывает писать название функций с заглавной буквы, далее все как в camelcase стиле. У всех Composable, функций есть набор параметров, именованные параметры должны идти в верном порядке во избежание ошибок. Прочие названия ресурсов, таких как цвет, шрифт и т.п, должны следовать той же логике.
Структура проекта
В отличии от проектов, где используется XML, вы не встретите пакета layout. Теперь весь интерфейс расположен внутри самого проекта. Помимо этого, JetpackCompose предоставляет дополнительные файлы для стилей, шрифтов, тем. Первый файл в пакете ui.theme – Color. Внутри располагаются цвета, которые можно вызвать внутри интерфейса по их имени.
Сперва указывается 0x, после прозрачность FF и сам хэш код цвета.
Второй файл – Shape. Для XML приложений часто приходилось создавать множество файлов с различными формами для элементов. В JetpackCompose это располагается в одном месте и вам при этом необходимо передать внутрь только параметр, на сколько нужно закруглить View.
Для указания размера шрифта или другого элемента, используют следующий синтаксис: число.dp, число.sp.
Третий файл отвечает за цветовую схему в приложение, background, цвет текста и так далее. DarkColorPalette содержит в себе цвета для темной темы, можно дополнительно переопределить другие цвета, если это необходимо. LightColorPalette содержит цвета для светлой темы.
После определения светлой и темной темы, расположена Composable функция, которая отвечает за цвета в проекте. Таких функций может быть бесчисленное множество. Они вызываются внутри лямбда-блока setContent как это было реализовано в начальном проекте, который сгенерировала Android-студия.
Файл Type содержит настройки для шрифтов, внутри функции TextStyle можно задать название шрифта, вес, размер и т.д.
Жизненный цикл и рекомпозиция
Отрисовка элементов в JetpackCompose разделяется на три этапа. Composition, Layout, Drawing.
1. Composition: какой UI показывать. Compose запускает