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

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

Шкодим

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

Compose

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

Что нового

Compose 1.4.0-alpha02. Пока не использовать.

Compose 1.3.1. Появилась поддержка drawText() в Canvas.

Compose 1.2.0: Требуется Kotlin 1.7.0. Новый компонент LazyLayout, функция movableContentOf(). Модификатор Modifier.overscroll. Поддержка загружаемых шрифтов GoogleFont.

Compose 1.1.0: Требуется Kotlin 1.6.0+. Немного изменились размеры некоторых компонентов (Switch, Checkbox). Некоторые экспериментальные функции получили статус стабильных, можно убирать аннотацию @ExperimentalAnimationApi и другие.

Компоненты

Compose. Начало

Разное

Теория

@Preview

Column/Row

Modifier

Text, ClickableText

TextField, OutlinedTextField

Button, IconButton, OutlinedButton, IconToggleButton, TextButton

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

ModalBottomSheetLayout

BottomDrawer

ModalDrawer

BadgeBox

LazyColumn/LazyRow

LazyVerticalGrid

ListItem

Анимация

Темы и стилизация (Material Design)

Shape/Фигуры

Navigation

NavigationRail/NavigationRailItem

ConstraintLayout

Конфигурация

Canvas

Графика

AndroidView

Вызываем DatePickerDialog

ViewModel & Flow

Accompanist

Google Maps

SwipeToDismiss

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

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

Примеры

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

Чаевые

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

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

Число ПИ

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

Список котят

Примеры с Intent

Датчики

Батарея

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

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

EmojiSlider

StateBox

DogEarCard

UmbrellaFab (Концепт)

Волны

GitHub

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

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 - alexjlockwood/android-2048-compose: 2048 implemented using Jetpack Compose - Игра "2048"

Faradle: Игра Wordle на Jetpack Compose

Реклама