Обновление Android Jetpack
👉 Browser 1.7.0 с большими возможностями для кастомизации Custom Tab
👉 Activity 1.8.1 с исправлениями Predictive Back
👉 Compose 1.6.0 перешел в Beta
👉 Media2 пометели deprecated в пользу Media3
👉 Media3 1.2.0 с огромным списком улучшений аудио, видео и др. возможностей
👉 Window 1.2.0 добавляет возможность управлять внешним экраном складных устройств (только на Android 14)
👉 Новые библиотеки Compose Material3 Adaptive пока без особых деталей
#jetpack #jetpackupdate
👉 Browser 1.7.0 с большими возможностями для кастомизации Custom Tab
👉 Activity 1.8.1 с исправлениями Predictive Back
👉 Compose 1.6.0 перешел в Beta
👉 Media2 пометели deprecated в пользу Media3
👉 Media3 1.2.0 с огромным списком улучшений аудио, видео и др. возможностей
👉 Window 1.2.0 добавляет возможность управлять внешним экраном складных устройств (только на Android 14)
👉 Новые библиотеки Compose Material3 Adaptive пока без особых деталей
#jetpack #jetpackupdate
👍21👎6
Google Выложила руководство по адаптации Android приложения для работы с оконном режиме как в Desktop, который есть на Chrome и уже тестируется в Google Pixel Tablet, но и без него уже производители делали этот функционал
#adaptive #планшет #ui
#adaptive #планшет #ui
👍22 10❤7🔥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
Media is too big
VIEW IN TELEGRAM
Очень полезный доклад про разработку адаптивного приложения по дизайну, фичам и поведению. Учитывая, стойкий тренд перехода Android разработки в KMP это как никогда актуально!
#android #adaptive #material3 #jetpack #googleio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20
Команда Android Дизайна выкатила на своей странице в фигме дизайн 4 приложений, который адаптирован под разны размеры экрана: смартфоны, маленькие и большие планшеты, складные устройства, ноутбуки и телевизоры
Рекомендую всем посмотреть, чтобы посмотреть на подходы, а они на самом деле просты. Если хотите отдельный пост про техники адаптации дизайна - ставьте ❤️
#android #дизайн #adaptive #ui #material
Please open Telegram to view this post
VIEW IN TELEGRAM
❤106👍8🔥1
Android-приложения запускаются на экранах с разными размерами и ориентацией. Чтобы интерфейс выглядел хорошо в любых условиях, стоит учитывать несколько простых правил, которые я выработал за годы опыта 👇
Фиче может быть выделен весь экран, часть окна или вообще маленький контейнер. Пусть она сама решает: занять всё пространство или только необходимое. Остальное — задача хоста, который через параметры (например, Modifier в Compose) подстроит отображение или сама правильно разместит (например, по центру).
Вместо
LazyColumn — лучше LazyVerticalGrid, а для RecyclerView — GridLayoutManager. Они умеют подстраивать сетку под свободное место на экране.Пользователь может менять скейл интерфейса: Google позволяет масштабировать всё, увеличивая DP → PX. Поэтому всегда предусмотрите скролл, если контента может стать больше.
Фича отвечает только за свой UI. А вот приложение решает, как её показать: в одну панель или, например, в связке через
ListDetailPaneScaffold, где на экране могут быть сразу несколько экранов.Даже если дизайнер подготовил макет только под смартфон в вертикали — попробуйте включить воображение. Немного гибкости и масштабирования дадут пользователям куда более удобный опыт без больших трудозатрат.
📚 Что почитать:
- Практики по построению адаптивных приложений
- Compose Material 3 Adaptive
- Jetpack WindowManager
- Как строить адаптивный UI через layout
💬 Делитесь в комментариях своими советами и болями адаптивности UI
#android #ui #compose #adaptive #ux #material3
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍48🔥8❤3🤯3
Если коротко про изменения — Material3 Adaptive всё ближе к полноценному “Responsive Compose”. Теперь можно писать интерфейсы, которые одинаково естественно ведут себя на телефоне, планшете и десктопе.
Главное:
🪶 Levitate-стратегия для ThreePaneScaffold — превращает панель в плавающее окно (popup).
↔️ Reflow-стратегия для ThreePaneScaffold — позволяет при узком экране уводить одну панель под другую, сохраняя UX.
👉 PaneScaffoldScope.saveableStateHolder — сохраняет состояние между разными конфигурациями экрана.
👉 Modifier.preferredHeight() — теперь можно задать предпочтительную высоту панели.
📏 Новые WindowSizeClasses: API currentWindowAdaptiveInfo() теперь распознаёт Large и ExtraLarge окна — важный шаг к поддержке планшетов и десктопов.
👉 Drag-to-resize получил настройку пользовательского поведения и поддержку a11y (accessibility).
#compose #material3 #adaptive #android #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤9🔥2
Media is too big
VIEW IN TELEGRAM
Повышайте узнаваемость и рейтинг вашего приложения в Google Play, адаптируя его под разные форм-факторы. В этом видео вы получите практическое руководство по созданию отзывчивых интерфейсов, которые одинаково хорошо работают не только на смартфонах, но и на устройствах с большими экранами и виджетах — с использованием ключевых техник, таких как window size classes и canonical layouts.
#android #adaptive #googleplay #оптимизация
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2🤯2