🎯 Обучающая платформа c AI: AndroidSprint.ru
Для модификаторов критически важен порядок.
Они применяются снизу вверх, как цепочка преобразований.
Сделал clip(CircleShape) после clickable - ripple останется квадратным, потому что он применился раньше.
Поставил clip перед clickable - ripple обрежется вместе с элементом.
Порядок имеет значение.
#JetpackCompose #Модификаторы #ОшибкиНовичков #AndroidDev #ВерсткаUI #БестПрактис #Программирование
🎯 Обучающая платформа c AI: AndroidSprint.ru
Как сделать кнопки одинаковой ширины в Row?
Добавь Modifier.weight(1f) к каждой кнопке. Это говорит, что элемент должен занимать равную долю доступного пространства.
Три кнопки с weight(1f) - каждая займёт 1/3 ширины контейнера.
Адаптивная вёрстка без костылей.
#JetpackCompose #Weight #Модификаторы #АдаптивнаяВёрстка #AndroidDev #ВерсткаUI #Программирование
🎯 Обучающая платформа c AI: AndroidSprint.ru
Alignment и Arrangement часто путают.
Alignment управляет тем, ГДЕ именно элемент находится внутри контейнера - слева, справа, по центру.
Arrangement определяет, КАК распределяется пространство МЕЖДУ элементами - SpaceEvenly, SpaceBetween, SpaceAround.
Разные задачи, разные инструменты.
#JetpackCompose #Layout #Alignment #AndroidDev #ВерсткаUI #МобильнаяРазработка
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Ставишь horizontalAlignment = Alignment.CenterHorizontally, а ничего не меняется.
Проблема в том, что ширина контейнера по умолчанию равна ширине контента, wrap_content по сути. Центрировать особо нечего.
Добавь модификатор fillMaxWidth() - и элементы выровняются по центру как надо.
#JetpackCompose #Alignment #AndroidDev #ОшибкиНовичков #ВерсткаUI #МобильнаяРазработка #Программирование
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Первое с чем сталкивается каждый новичок - элементы накладываются друг на друга.
Compose по умолчанию не знает как располагать элементы.
Нужно явно указать с помощью layout контейнеров.
Column - вертикально друг под другом, Row - горизонтально в ряд.
Это основа основ.
#JetpackCompose #ОшибкиНовичков #Layout #AndroidDev #ВерсткаUI #МобильнаяРазработка #Программирование
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Preview - одна из киллер-фич Compose.
Composable функции отрисовываются прямо в Android Studio, без сборки проекта и установки APK.
Добавляешь аннотацию @Preview, жмёшь Split - и видишь результат. Изменил код - обновил превью.
Экономия времени колоссальная по сравнению с XML.
#JetpackCompose #AndroidStudio #Preview #Productivity #AndroidDev #МобильнаяРазработка #ЭкономияВремени
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Scaffold - это базовый каркас экрана, строительные леса если дословно.
Он автоматически рассчитывает системные отступы, чтобы контент не перекрывал статусбар и навбар.
Можешь добавить TopBar, BottomBar, FAB. Android Studio при создании проекта сразу предлагает использовать Scaffold, это хорошая практика.
#JetpackCompose #Scaffold #AndroidDev #ВерсткаUI #БестПрактис #МобильнаяРазработка #Программирование
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Пишешь 16.dp и оно просто работает. Что это вообще такое?
dp - это свойство-расширение класса Int в Kotlin. Оно преобразует число в пиксели, независимые от плотности экрана.
dp для размеров элементов, sp для размеров шрифтов.
Удобный синтаксис вместо Resources.getDimensionPixelSize().
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Зачем нужен Modifier, если у Text и так куча параметров?
Параметры функции отвечают за внешний вид самого текста - цвет, размер, шрифт.
А Modifier управляет поведением и размещением - отступы, фон, размеры, можно повесить слушатель кликов.
Модификатор универсален и работает с любыми элементами.
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Composable функция ничего не возвращает.
Нет return View, нет return Layout.
UI рисуется исключительно за счёт вызова метода.
Вызвал функцию - отрисовался элемент.
Это декларативность в чистом виде, непривычно для тех, кто пришёл с XML.
#JetpackCompose #Декларативность #AndroidDev #КотлинРазработка #МобильнаяРазработка #ITОбразование
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Composable функции можно вызывать только из других Composable. Это как с suspend функциями - нельзя вызвать из обычной функции.
Зато обычные функции внутри Composable вызывать можно.
Если провалиться в любую Composable функцию, увидишь аннотацию @Composable.
#JetpackCompose #AndroidDev #КотлинРазработка #ОшибкиНовичков #Coroutines #Программирование #ITОбразование
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Открываешь Compose проект в Android Studio - а каталога layout нет. Его действительно больше нет.
Весь UI теперь на Kotlin, никаких XML файлов для разметки. Можно создать гибридный проект, где часть на XML, часть на Compose, но это уже для миграции.
#JetpackCompose #AndroidDev #КотлинРазработка #МобильнаяРазработка #СовременныйAndroid #Программирование
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Потому что они описывают сущности - элементы интерфейса. Концептуально это нечто осязаемое на экране.
Поэтому по стилю Compose они пишутся как классы, с заглавной буквы.
#JetpackCompose #KotlinDev #AndroidDev #Программирование #Compose #AndroidРазработка
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Compose - это не просто новый синтаксис, это новая философия! 🚀
СТАРЫЙ СПОСОБ (XML):
❌ Пишем XML layout
❌ findViewById для каждой View
❌ Вручную обновляем UI при изменении данных
❌ 50+ строк для простого экрана
НОВЫЙ СПОСОБ (Compose):
✅ Всё в одном месте (Kotlin)
✅ Никаких findViewById
✅ UI обновляется автоматически
✅ 20 строк для того же экрана
Секрет: вместо описания "КАК" создать UI (императивно),
вы просто декларируете "ЧТО" хотите видеть!
Compose сам разбирается как это нарисовать. Магия? Нет, декларативность! ✨
#compose #android #jetpackcompose #kotlin #androidразработка
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Ситуация: пишешь код в Compose, всё вроде правильно, а компилятор ругается на .weight() — "не найдено" ❌
Разгадка: Каждый контейнер в Compose = отдельная "комната" 🏠
Это как зайти в мастерскую с молотком и гвоздями — покрасить стены не получится, нет краски 🎨
Понял концепцию = никогда больше не получишь эту ошибку! 💪
#compose #android #jetpackcompose #kotlin #androidразработка #мобильнаяразработка
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Trailing lambda в Kotlin — фундаментальная фича для создания DSL!
Суть: если последний параметр функции — лямбда, можно вынести её за скобки в { }.
Это превращает обычный код в читаемый синтаксис как в Jetpack Compose, Gradle Kotlin DSL, Ktor и других библиотеках.
#kotlin #dsl #kotlindsl #android #программирование #jetpackcompose
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
Мощный DSL скрыл всю сложность: тебе не нужно лезть в дебри Android UI.
Есть готовые компоненты (Button, Text, Column) — собираешь их как детали Lego и радуешься результату. ✨
Никакой магии, только удобство и скорость разработки!
#compose #android #jetpackcompose #kotlin #androidразработка
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
В Compose нет инфлейтинга XML! Весь UI создается напрямую через
методы, без промежуточных преобразований.
Результат: меньше операций = быстрее отклик приложения, особенно
на сложных экранах. Производительность на максимум!
💡 Вот почему Compose обходит классический View подход.
#compose #android #jetpackcompose #производительность #androidразработка
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
В Compose не нужно вручную подписываться на LiveData или StateFlow.
UI автоматически реагирует на изменения данных через декларативный подход.
Описываешь как должен выглядеть интерфейс → Compose сам обновляет его
при изменении состояния. Умная перерисовка: только то, что изменилось. ⚡
#compose #android #jetpackcompose #kotlin #androidразработка
🎯 Обучающая платформа c AI: https://androidsprint.ru/?utm_source=rutube&utm_medium=video&utm_campaign=shorts
View классы в Android — это огромные монстры с тысячами строк кода!
Сложная иерархия, перегруженная логика, а создание кастомных
компонентов превращается в ад.
Результат? Разработка тормозит,
часы летят впустую.
Особенно больно тем, кто делает кастомные View — знаешь эту боль?
#android #view #androidразработка #программирование #compose




