Освой 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.

Разное

Compose. Начало

Разное

Теория

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

@Preview

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

Примеры

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

Чаевые

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

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

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

Число ПИ

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

Список котят

Примеры с Intent

Датчики

Батарея

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

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

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

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

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

Подключаем анимацию Lottie (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

Реклама