Всем выйти из сумрака: как добавить тень на Android
Разработчик дизайн системы просветит вас о тенях в Android:
👉 зачем нужны
👉 параметр elevation
👉 MaterialShapeDrawable
👉 Создание 9-patch Drawable в коде динамически
👉 системные тени против кастомных
#ui
Разработчик дизайн системы просветит вас о тенях в Android:
👉 зачем нужны
👉 параметр elevation
👉 MaterialShapeDrawable
👉 Создание 9-patch Drawable в коде динамически
👉 системные тени против кастомных
#ui
👍33🤔3⚡1😁1
Лучшие практики и что НЕ стоит делать при оптимизации вашего приложения для больших экранов
👉 Несколько приложения могут работать одновременно и запрашивать доступ к одним и тем же ресурсам, например камерам
👉 Аксессуары могут быть подключены по USB и отключены в любой момент
👉 Приложение в onPause() всё еще видно до вызова onStop()
👉 Не полагайтесь на флаги из ресурсов "isTable". Отталкивайтесь от размеров экранов в dp
👉 Используйте CameraX по возможности
👉 Соотношение сторон окна приложения может меняться в любой момент
👉 Правильно указывайте требования к железу устройства в AndroidManifest корректно: что обязательно, опционально и вовсе неважно
👉 Window Insets не меняются на больших экранах
👉 Не полагайтесь на сенсорный экран. Устройство может его не иметь
#ui #tablet #foldable #chromeos
👉 Несколько приложения могут работать одновременно и запрашивать доступ к одним и тем же ресурсам, например камерам
👉 Аксессуары могут быть подключены по USB и отключены в любой момент
👉 Приложение в onPause() всё еще видно до вызова onStop()
👉 Не полагайтесь на флаги из ресурсов "isTable". Отталкивайтесь от размеров экранов в dp
👉 Используйте CameraX по возможности
👉 Соотношение сторон окна приложения может меняться в любой момент
👉 Правильно указывайте требования к железу устройства в AndroidManifest корректно: что обязательно, опционально и вовсе неважно
👉 Window Insets не меняются на больших экранах
👉 Не полагайтесь на сенсорный экран. Устройство может его не иметь
#ui #tablet #foldable #chromeos
👍17👎8🤔4🤯4
This media is not supported in your browser
VIEW IN TELEGRAM
Layout Inspector теперь встроен в раздел "Running Devices". Заявляют что до 2 раз быстрее стал работать
#androidstudio #инструменты #ui
#androidstudio #инструменты #ui
👍44🔥5
Forwarded from Compose Broadcast
Разбор (EN, 7м) сложностей тестирования UI на Compose со стандартным решением от Google.
Сделал автор библиотеки для тестирования Ultron и показывает как можно делать их удобнее
#автотесты #ui #compose #ultron #тестирование
Сделал автор библиотеки для тестирования Ultron и показывает как можно делать их удобнее
#автотесты #ui #compose #ultron #тестирование
👍4
Объект Configuration, который приходит разработчикам в параметрах размеров не включает размеры системных панелей. Из-за форсирования Edge-to-Edge в Android 15 вносятся изменения в Configuration:
👉 Configuration.screenWidthDp и screenHeightDp теперь будут включать размер системных панелей
👉 Configuration.smallestScreenWidthDp задевается из-за изменения размеров Configuration.screenWidthDp и screenHeightDp
👉 Configuration.orientation также будет вести отлично на квадратных и близких к ним дисплеях
#android15 #ui
👉 Configuration.screenWidthDp и screenHeightDp теперь будут включать размер системных панелей
👉 Configuration.smallestScreenWidthDp задевается из-за изменения размеров Configuration.screenWidthDp и screenHeightDp
👉 Configuration.orientation также будет вести отлично на квадратных и близких к ним дисплеях
#android15 #ui
👍3
Одно из официальных приложений-примеров Compose в Android - Jetcaster, обновили и добавили поддержку складных смартфонов, Chrome OS, больших экранов, Android TV и часов на WearOS. Также появились App Widget на Compose с помощью либы Glance
Подробно об процессе поддержки и шаринга кода между платформами читайте в статье (EN, 12м)
#compose #android #androidtv #wearos #foldable #ui #chromeos
Подробно об процессе поддержки и шаринга кода между платформами читайте в статье (EN, 12м)
#compose #android #androidtv #wearos #foldable #ui #chromeos
👍34🔥4❤2
Google Выложила руководство по адаптации Android приложения для работы с оконном режиме как в Desktop, который есть на Chrome и уже тестируется в Google Pixel Tablet, но и без него уже производители делали этот функционал
#adaptive #планшет #ui
#adaptive #планшет #ui
👍22 10❤7🔥3
🚀 Вышел Jetpack WindowManager 1.4 - библиотека с API для построения адаптивного UI в Material3 (можно применить и к другим UI Kit): WindowSizeClass, Activity embedding, WindowsInfoTracker и др.
Про изменения отдельными постами дальше
#jetpack #ui #material
Про изменения отдельными постами дальше
#jetpack #ui #material
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13👎3
Сделали рефакторинг API, чтобы оно позволило добавлять собственные значения в будущем (помимо NORMAL, LARGE, EXPANDED), а также отказались от WindowWidthSizeClass и WindowHeightSizeClass.
// Было. Теперь deprecated
val sizeClass = WindowSizeClass.compute(widthDp, heightDp)
when (sizeClass.widthSizeClass) {
COMPACT -> doCompact()
MEDIUM -> doMedium()
EXPANDED -> doExpanded()
else -> doDefault()
}
// Стало в 1.4
val sizeClass = WindowSizeClass.BREAKPOINTS_V1
.computeWindowSizeClass(widthDp, heightDp)
// Проверяем от самого большого размера к наименьшему
when {
sizeClass.isWidthAtLeastBreakpoint(WIDTH_DP_EXPANDED_LOWER_BOUND) -> {
doExpanded()
}
sizeClass.isWidthAtLeastBreakpoint(WIDTH_DP_MEDIUM_LOWER_BOUND) -> {
doMedium()
}
else -> {
// Ветка по умолчанию должна быть для
// самого маленького поддерживаемого UI
doCompact()
}
}
#jetpack #material #adaptive #ui
Please open Telegram to view this post
VIEW IN TELEGRAM
👎10👍9😢2