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

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

Шкодим

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

Compose

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

Что нового

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

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

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

Разное

Hello Kitty - первое приложение для Android

@Preview

Разное

Теория

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

Modifier

Жесты

Анимация

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

Shape/Фигуры

Navigation

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

Canvas

Графика

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

FlowRow/FlowColumn

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

ModalBottomSheet/ModalBottomSheetLayout

BottomDrawer

ModalNavigationDrawer/ModalDrawer

BadgeBox

LazyColumn/LazyRow

LazyVerticalGrid

ListItem

NavigationRail/NavigationRailItem

ConstraintLayout

MotionLayout

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

AndroidView

DatePicker, DateRangePicker

DatePickerDialog/TimePickerDialog (классический Android)

HorizontalPager/VerticalPager

SearchBar

TooltipBox

Примеры

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

Чаевые

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

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

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

Число ПИ

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

Список котят

Датчики

Батарея

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

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

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

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

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

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

Примеры с Intent

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

Справочник про котов (11)

Подключаем анимацию Lottie (11)

Уведомления (Notification) (11)

Drag & Drop (11)

Анимация стопки круглых карточек (11)

Broadcast. Режим полёта (11)

Broadcast. Посылаем широковещательное сообщение (11)

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

SmileyRatingBar

EmojiSlider

StateBox

DogEarCard

UmbrellaFab (Концепт)

Волны

HyperlinkText

SwipeButton

PageIndicator

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

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

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

Faradle: Игра Wordle на Jetpack Compose

Реклама