Читаем Разработка Android приложении с Jetpack Compose полностью

Разработка Android приложении с Jetpack Compose

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

Денис Сергеевич Попков

Учебная и научная литература / Образование и наука18+

Денис Попков

Разработка Android приложении с Jetpack Compose

Вступление

Верстка экранов – неотъемлемая часть создания мобильных приложений. Долгое время разработчики использовали для этого язык текстовой разметки XML. Данный подход себя хорошо зарекомендовал, но зачастую для решения тривиальных задач необходимо писать много boilerplate кода.

Задача отображения списка новостей требует в XML проектах: адаптер, делегат, верстку элемента списка + фрагмента, Presenter/ViewModel. Слишком много кода для повседневной задачи.

JetpackCompose значительно упрощает процесс верстки, он позволит справится с задачей выше, менее чем в 200 строк. Помимо лаконичности, фреймворк предоставляет возможности писать мультиплатформенный легко поддерживаемый reusable код.

Нововведения из последних версий Android быстрее приходят в фреймворк, нежели в XML. Google заинтересована в развитие нового видения и предлагает использовать современный стэк технологий, который входит в состав Jetpack: MVVM, Coroutines, Jetpack Compose, Room, Hilt, Ktor, DataStore, WorkManager, Coil.

В стэке технологий также представлены 3rd party библиотеки и архитектурное решение MVVMModel-View-Model.

Для кого это руководство?

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

Главное отличие этого руководства от других книг – это обзор всех возможностей фреймворка и его компонентов.

Настройка проекта

Процесс создания проекта схож со стандартным FileNewNew project. Выберите Empty Compose Activity, далее укажите название проекта, пакет, версию Android и нажмите Finish. Обновите версии библиотек до последних версий.



Код зависимостей вы можете найти по ссылке – .

Основные аспекты

Все построение UI в Jetpack Compose завязано на функциях, помеченных аннотацией Composable, она указывает компилятору на то, что эта функция должна быть сконвертирована в UI.

Composable функции могут быть вызваны только из других Composable функций или лямбд.

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

Compose предоставляет возможность переиспользовать элементы, так же как и в custom XML View. Для этого нужно создать package c базовыми компонентами, задать некоторые параметры Composable функции, а поведение определять через параметры.

Preview

Аннотация Preview отображает в боковом меню сверстанные элементы. Если необходимо отобразить дополнительно фон View, укажите showBackground = true. После внесения изменений нужно нажать build&refresh для обновления Preview, если изменения небольшие, то Preview обновится автоматически.

Учтите, что Preview не будет работать, если Composable функция принимает какие-либо параметры и они при этом не заданы по умолчанию.

PreviewParameter позволит это исправить, также упростит использование mock файлов в проекте для тестирования верстки.



Так для создания provider-класса необходимо наследоваться от PreviewParameterProvider<T> и переопределить значение по умолчанию. Preview Parameter принимает provider класс и параметр – максимальное количество элементов, которые он должен отобразить.

В случае, если provider класс возвращает объект, обернутый в список, то Preview отобразится единожды, что порой удобно для анализа верстки.



Класс CollectionPreviewParameterProvider принимает в конструктор коллекцию, в отличие от PreviewParameterProvider, которой требует переопределять каждый раз переменную value типа Sequence.

Несколько provider классов можно объединить в Pair при помощи класса обертки. В качестве provider классов можно использовать как CollectionPreviewParameterProvider, так и PreviewParameterProvider. Данный подход полезен, когда необходимо отобразить один и тот же mock в разном окружении, например в темной и светлой теме – и проанализировать – как элемент будет себя вести в каждой из них.

Перейдите в Notion, чтобы подробнее рассмотреть код создания mock, provider классов– .



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

Перейти на страницу:

Похожие книги

Павел I
Павел I

Библиотека проекта «История Российского государства» – это рекомендованные Борисом Акуниным лучшие памятники исторической литературы, в которых отражена биография нашей страны от самых ее истоков.Павел I, самый неоднозначный российский самодержец, фигура оклеветанная и трагическая, взошел на трон только в 42 года и царствовал всего пять лет. Его правление, бурное и яркое, стало важной вехой истории России. Магистр Мальтийского ордена, поклонник прусского императора Фридриха, он трагически погиб в результате заговора, в котором был замешан его сын. Одни называли Павла I тираном, самодуром и «увенчанным злодеем», другие же отмечали его обостренное чувство справедливости и величали «единственным романтиком на троне» и «русским Гамлетом». Каким же на самом деле был самый непредсказуемый российский император?

Казимир Феликсович Валишевский

История / Учебная и научная литература / Образование и наука
За степным фронтиром. История российско-китайской границы
За степным фронтиром. История российско-китайской границы

Российско-китайская граница – одна из самых протяженных сухопутных границ в мире, однако в современной историографии ей уделяется незаслуженно мало внимания. Пытаясь восполнить этот пробел, Сёрен Урбански в своей книге рассматривает формирование и изменение контуров границы в длительной хронологической перспективе, начиная с XVII столетия – времени существования фронтирной территории без четко установленного размежевания – и заканчивая XX веком, когда линия границы обрела геополитическое значение и превратилась в плотно патрулируемый барьер. Повествуя о повседневной жизни общин на российско-китайском пограничье, автор демонстрирует, как государствам удалось навязать контроль над родственными, культурными, экономическими и религиозными связями по обе стороны границы посредством законодательных мер, депортаций, принудительной ассимиляции и пропаганды. Сёрен Урбански – историк, научный сотрудник Германского исторического института в Вашингтоне и директор его филиала в Калифорнийском университете в Беркли.

Сёрен Урбански

История / Учебная и научная литература / Образование и наука
Поэзия как волшебство
Поэзия как волшебство

Трактат К. Д. Бальмонта «Поэзия как волшебство» (1915) – первая в русской литературе авторская поэтика: попытка описать поэтическое слово как конструирующее реальность, переопределив эстетику как науку о всеобщей чувствительности живого. Некоторые из положений трактата, такие как значение отдельных звуков, магические сюжеты в основе разных поэтических жанров, общечеловеческие истоки лиризма, нашли продолжение в других авторских поэтиках. Работа Бальмонта, отличающаяся торжественным и образным изложением, публикуется с подробнейшим комментарием. В приложении приводится работа К. Д. Бальмонта о музыкальных экспериментах Скрябина, развивающая основную мысль поэта о связи звука, поэзии и устройства мироздания.

Александр Викторович Марков , Константин Дмитриевич Бальмонт

Языкознание, иностранные языки / Учебная и научная литература / Образование и наука
Эстетика
Эстетика

В данный сборник вошли самые яркие эстетические произведения Вольтера (Франсуа-Мари Аруэ, 1694–1778), сделавшие эпоху в европейской мысли и европейском искусстве. Радикализм критики Вольтера, остроумие и изощренность аргументации, обобщение понятий о вкусе и индивидуальном таланте делают эти произведения понятными современному читателю, пытающемуся разобраться в текущих художественных процессах. Благодаря своей общительности Вольтер стал первым художественным критиком современного типа, вскрывающим внутренние недочеты отдельных произведений и их действительное влияние на публику, а не просто оценивающим отвлеченные достоинства или недостатки. Чтение выступлений Вольтера поможет достичь в критике основательности, а в восприятии искусства – компанейской легкости.

Виктор Васильевич Бычков , Виктор Николаевич Кульбижеков , Вольтер , Теодор Липпс , Франсуа-Мари Аруэ Вольтер

Детская образовательная литература / Зарубежная классическая проза / Прочее / Зарубежная классика / Учебная и научная литература