This media is not supported in your browser
VIEW IN TELEGRAM
#ui
Android Edge to Edge 101 (7 мин)
Разбор организации безрамочного UI (edge-to-edge) в вашем приложение, чтобы полностью использовать всю площадь экрана для показа информации.
Android Edge to Edge 101 (7 мин)
Разбор организации безрамочного UI (edge-to-edge) в вашем приложение, чтобы полностью использовать всю площадь экрана для показа информации.
🔥41👍14👏2
#безопасность #ui
Визуальная защита контента Android приложения
Описание подхода для визуальной защиты контента приложения, пока ожидается ввод пароля или прохождения биометрической авторизации.
Визуальная защита контента Android приложения
Описание подхода для визуальной защиты контента приложения, пока ожидается ввод пароля или прохождения биометрической авторизации.
🔥13👍4👎1
Яндекс выпускает DivKit — фреймворк для server-driven UI с открытым кодом
Яндекс выложил свой движок для динамического создания UI. Кому это будет полезно? Для начала - это каталоги чего-либо в приложении. В Яндексе движок используется Едой, Маркетом, Яндекс ТВ и др. продуктами.
Что включается в себя DivKit:
👉 SDK для Android, iOS и Web
👉 DSL для создания UI на сервере
Исходный код опубликован на Гитхабе под лицензией Apache 2.0, а это значит его можно использовать в коммерческих проектах
#ui
Яндекс выложил свой движок для динамического создания UI. Кому это будет полезно? Для начала - это каталоги чего-либо в приложении. В Яндексе движок используется Едой, Маркетом, Яндекс ТВ и др. продуктами.
Что включается в себя DivKit:
👉 SDK для Android, iOS и Web
👉 DSL для создания UI на сервере
Исходный код опубликован на Гитхабе под лицензией Apache 2.0, а это значит его можно использовать в коммерческих проектах
#ui
👍48👎22🤔1
Optimizing RecyclerView : Pre-inflated ViewPool (6 мин)
Ускорение RecyclerView через рендеринг элементов списка наперед в фоновом потоке
#performance #ui
Ускорение RecyclerView через рендеринг элементов списка наперед в фоновом потоке
#performance #ui
👍74👎12🤔5🔥1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Готовим Window Inset под соусом Jetpack Compose и щепоткой View
Я обожаю приложения, которые используют всю поверхность экрана от края до края. В статье разбирается как это сделать при использовании Compose
#ui #compose
Я обожаю приложения, которые используют всю поверхность экрана от края до края. В статье разбирается как это сделать при использовании Compose
#ui #compose
🔥65👎8👍6❤1
Всем выйти из сумрака: как добавить тень на 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
👍21 10❤6🔥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
👍12👎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👍8😢2
👉 Изменение размера панелей теперь поддерживается из коробки
val splitAttributesBuilder: SplitAttributes.Builder = SplitAttributes.Builder()
.setSplitType(SplitAttributes.SplitType.ratio(0.33f))
.setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT)
if (WindowSdkExtensions.getInstance().extensionVersion >= 6) {
splitAttributesBuilder.setDividerAttributes(
DividerAttributes.DraggableDividerAttributes.Builder()
.setColor(getColor(context, R.color.divider_color))
.setWidthDp(4)
.setDragRange(
DividerAttributes.DragRange.DRAG_RANGE_SYSTEM_DEFAULT)
.build()
)
}
val splitAttributes: SplitAttributes = splitAttributesBuilder.build()
👉 Управление затемнением интерфейса под диалогом диалога
👉 Возможность закрепить Activity Task (набор Activity) по id в части экрана
fun pinActivityStackExample(taskId: Int) {
val splitAttributes: SplitAttributes = SplitAttributes.Builder()
.setSplitType(SplitAttributes.SplitType.ratio(0.66f))
.setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT)
.build()
val pinSplitRule = SplitPinRule.Builder()
.setDefaultSplitAttributes(splitAttributes)
.build()
SplitController.getInstance(applicationContext)
.pinTopActivityStack(taskId, pinSplitRule)
}
#jetpack #ui #material #activity
Please open Telegram to view this post
VIEW IN TELEGRAM
👎7👍6
This media is not supported in your browser
VIEW IN TELEGRAM
В рамках The Android Show I/O Edition показали "самый большой редизайн Android за всё время" (со слов спикера). Нас ждет Material 3 Expressive - обновленная версия Material 3 на основе существующих токенов
Буду садиться разбираться и рассказывать на
#android #android16 #material #ui #material3expressive
Please open Telegram to view this post
VIEW IN TELEGRAM
❤33👍17🔥11🤔1🤯1
🤯 Navigation Drawer становится Deprecated
В Material 3 Expressive делают deprecated компонент "Navigation Drawer". Заменой ему предлагают "Navigation Rail", предлагающий ту же функциональность, но лучше адаптирующийся под разные размеры окна
#ui #material #material3 #material3expressive
В Material 3 Expressive делают deprecated компонент "Navigation Drawer". Заменой ему предлагают "Navigation Rail", предлагающий ту же функциональность, но лучше адаптирующийся под разные размеры окна
#ui #material #material3 #material3expressive
🤯64🔥28👍16🤔11
👍36🔥8🤔8
This media is not supported in your browser
VIEW IN TELEGRAM
Google активно продвигает поддержку больших экранов и теперь тестировать UI на Compose в Android Studio будет проще. Изменять размер окна превью можно прямо в IDE и интерфейс будет подстраиваться под текущий размер.
Попробовать можно в свежей версии Android Studio Narhwall Feature Drop или новее. В Compose Preview надо переключить на режим "Focus"
#androidstudio #compose #ui
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55🔥28