Освой Compose играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Compose

Новый способ создания приложений для Android (и других платформ) при помощи набора инструментов для разработки пользовательских интерфейсов, который позволяет писать приложения с меньшим количеством кода и интуитивно понятных API на Kotlin.

Что нового

Compose 1.6. [implementation platform('androidx.compose:compose-bom:2024.01.00')]

Compose 1.4.0...1.4.7. Требуется Kotlin 1.8.10-1.8.21.

Разное

Разное

State (Состояние)

Modifier

Жесты

Navigation

ViewModel & Flow

Accompanist

Google Maps

SwipeToDismiss

Функция movableContentOf() (Compose 1.2.0)

Photo Picker (Android 13). Выбираем картинки котов

Activity Result API: Обработка результатов

Используем Room для работы с базой данных

Пакет androidx.compose.material3.windowsizeclass

Подключение к док-станции

Slot API

Корутины, LaunchedEffect, SideEffect

Работаем со шрифтами

Компоненты и макеты

Column/Row

Text, ClickableText

Button, IconButton, OutlinedButton, IconToggleButton, TextButton, ElevatedButton, FilledTonalButton, SegmentedButton

FloatingActionButton

ExtendedFloatingActionButton

Checkbox

RadioButton

Switch

Slider

RangeSlider

TabRow и Tab

Image

Box

BoxWithConstraints

Surface

Card

DropdownMenu/DropdownMenuItem

ExposedDropdownMenu

FilterChip

LinearProgressIndicator, CircularProgressIndicator

AlertDialog

TopAppBar

BottomAppBar

Snackbar

Scaffold

BackdropScaffold

BottomSheetScaffold

ModalBottomSheet/ModalBottomSheetLayout

BottomDrawer

ModalNavigationDrawer/ModalDrawer

BadgeBox

LazyColumn/LazyRow

LazyVerticalGrid

LazyVerticalStaggeredGrid/LazyHorizontalStaggeredGrid

ListItem

NavigationRail/NavigationRailItem

ConstraintLayout

MotionLayout

Разрабатываем собственный макет

AndroidView

DatePicker, DateRangePicker

HorizontalPager/VerticalPager

SearchBar

TooltipBox

PullToRefreshBox

HorizontalDivider/VerticalDivider

FlowRow/FlowColumn

Примеры

Счётчик котов

Чаевые

Конвертер температуры

Поваренная книга

Цифровые часы

Число ПИ

Когда мимиметры зашкаливают

Список с котами Часть первая. LazyColumn

Список с ленивыми котятами и детальная информация о каждом котёнке Часть вторая. LazyColumn

Датчики

Батарея

Работа с файлами

Поле чудес (Колесо фортуны)

Прокручиваемая галерея картинок с котиками (HorizontalPager, Coil)

MirrorImage (Отражение в воде)

Масштабирование картинки

Intent - явные и неявные намерения

Intent - приём данных

Собственные компоненты

SmileyRatingBar

EmojiSlider

StateBox

DogEarCard

UmbrellaFab (Концепт)

Волны

SwipeButton

PageIndicator

Эффект печатной машинки

ExpandableText: Расширяемый текст

ExpandableSection: Раскрывающие секции

Jetpack Compose Desktop - пишем приложения для десктопа.

GitHub

DinoCompose: Chrome's Dino T-Rex game developed in Jetpack Compose - динозавик из Chrome. Дополнительное видео.

GitHub - oleksandrbalan/pagecurl: This library allows to create an effect of turning pages, which can be used in book reader applications, custom on-boarding screens or elsewhere - листаем страницы

GitHub - wajahatkarim3/Flippable: A Jetpack Compose library for animating a flip transition between the front and back of something, such as a card. - переворачивающиеся карточки

GitHub - hiteshchopra11/JetCalendarView: A calendar library for Jetpack Compose - календарь

GitHub - umutsoysl/ComposeCreditCardView: Jetpack Compose Credit Card View Library - банковские карточки

GitHub - vanpra/compose-material-dialogs: A Material Dialog Builder for Jetpack Compose - диалоговые окна для выбора даты, времени, цвета.

Игры

GitHub - kaajjo/LibreSudoku: LibreSudoku - Sudoku app for android built with Kotlin + Jetpack Compose + Material3

Тетрис (ещё один вариант)

GitHub - alexjlockwood/android-2048-compose: 2048 implemented using Jetpack Compose - Игра "2048"

Faradle: Игра Wordle на Jetpack Compose

Реклама