Android Broadcast
14.2K subscribers
3.49K photos
331 videos
11 files
5.85K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
#ui

Android Edge to Edge 101 (7 мин)

Разбор организации безрамочного UI (edge-to-edge) в вашем приложение, чтобы полностью использовать всю площадь экрана для показа информации.
🔥41👍14👏2
#безопасность #ui

Визуальная защита контента Android приложения

Описание подхода для визуальной защиты контента приложения, пока ожидается ввод пароля или прохождения биометрической авторизации.
🔥13👍4👎1
Яндекс выпускает DivKit — фреймворк для server-driven 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
👍74👎12🤔5🔥1💯1
This media is not supported in your browser
VIEW IN TELEGRAM
Готовим Window Inset под соусом Jetpack Compose и щепоткой View

Я обожаю приложения, которые используют всю поверхность экрана от края до края. В статье разбирается как это сделать при использовании Compose

#ui #compose
🔥65👎8👍61
Всем выйти из сумрака: как добавить тень на Android

Разработчик дизайн системы просветит вас о тенях в Android:
👉 зачем нужны
👉 параметр elevation
👉 MaterialShapeDrawable
👉 Создание 9-patch Drawable в коде динамически
👉 системные тени против кастомных

#ui
👍33🤔31😁1
Статья с разносом того что все плюсы, которые несет темная тема в приложении несущественны, а ее поддержка несет много дополнительной работы при разработке, хотя можно вложиться в фичи.

Вывод - делайте только светлую тему, либо темную. Но решать вам!

#ui
👎165👍22🌚11🤔7🥱5🤣4🤬1
Лучшие практики и что НЕ стоит делать при оптимизации вашего приложения для больших экранов

👉 Несколько приложения могут работать одновременно и запрашивать доступ к одним и тем же ресурсам, например камерам
👉 Аксессуары могут быть подключены по 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
👍44🔥5
Forwarded from Compose Broadcast
Разбор (EN, 7м) сложностей тестирования UI на Compose со стандартным решением от Google.

Сделал автор библиотеки для тестирования Ultron и показывает как можно делать их удобнее

#автотесты #ui #compose #ultron #тестирование
👍4
Объект Configuration, который приходит разработчикам в параметрах размеров не включает размеры системных панелей. Из-за форсирования Edge-to-Edge в Android 15 вносятся изменения в Configuration:
👉 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
👍34🔥42
Google Выложила руководство по адаптации Android приложения для работы с оконном режиме как в Desktop, который есть на Chrome и уже тестируется в Google Pixel Tablet, но и без него уже производители делали этот функционал

#adaptive #планшет #ui
👍21106🔥3
🚀 Вышел Jetpack WindowManager 1.4 - библиотека с API для построения адаптивного UI в Material3 (можно применить и к другим UI Kit): WindowSizeClass, Activity embedding, WindowsInfoTracker и др.

Про изменения отдельными постами дальше

#jetpack #ui #material
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👎3
🚀 Изменения в WindowSizeClass

Сделали рефакторинг 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
🚀 Обновления Activity Embedding

👉 Изменение размера панелей теперь поддерживается из коробки
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
🤖 Редизайн Android - Material 3 Expressive

В рамках The Android Show I/O Edition показали "самый большой редизайн Android за всё время" (со слов спикера). Нас ждет Material 3 Expressive - обновленная версия Material 3 на основе существующих токенов

Буду садиться разбираться и рассказывать на 🪙 Boosty про что будет в обновлении

#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
🤯64🔥28👍16🤔11
Можно ли использовать ChatGPT для создания дизайна пользовательского интерфейса? Да!

Разработчик подробно рассказал как с помощью ChatGPT делал дизайн проекта, какие запросы писал и важные аспекты!

Подробности тут (перевод на русский), оригинал тут

#ai #ui #chatgpt
👍36🔥8🤔8
This media is not supported in your browser
VIEW IN TELEGRAM
🔨 Превью Compose можно будет изменять прямо в IDE

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