TGINSIGHT CHAT
Android Broadcast
@android_broadcast
TechnologiesПодборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab#MQRZR
Posts récents
Tag : #jetpack · 98 posts
Publié il y a 28 jours
🚀 Вышел Jetpack Paging 3.5.0 где добавили возможность получения данных как StateFlow // В ViewModel val pager = Pager(pagingConfig, pagingSourceFactory) val pagerFlow: Flow<ItemSnapshotList> = pager.flow.asState() // Пример в Compose val snapshotFlow = viewModel.pagerFlow.collectAsStateWithLifecycle(initialList) val snapshot = itemsFlow.value LazyColumn { items(items = snapshot.items) { ... } } Также появилась возможность явно вызвать загрузку новых страниц через методы append() и prepend(), а также refresh() и retry() LazyColumn { item { LaunchedEffect(viewModel) { viewModel.prepend() } } items(snapshot.items) { item -> Text("Item: $item") } item { LaunchedEffect(viewModel) { viewModel.append() } } } Кажется, что сделали жизнь проще, но мой опыт с Paging всегда упирался в проблемы кэширования и удобной работы в Data слое. Всегда считал эту библиотеку архитектурно неудачной и ждал когда же ее переделают полностью. #Android#Jetpack#AndroidDev
Hashtags
Publié 1 avr.
🤖 Вышла Jetpack Media3 1.10.0 Вышла новая версия Media3, и там заметное обновление для тех, кто строит плеерный UI на Compose. Главное в этом релизе — продолжение развития модуля media3-ui-compose-material3. Добавили готовый Player composable, который объединяет ContentFrame с настраиваемыми элементами управления сверху, по центру и снизу. Рядом появился ProgressSlider для перемотки через жесты и PlaybackSpeedControl с кнопкой переключения скорости. На мой взгляд, это уже почти полноценный out-of-the-box плеер на Compose Material3. Breaking changes: 👉FrameExtractor вынесен в отдельный модуль media3-inspector-frame 👉LottieOverlay переехал в media3-effect-lottie 🔗 Источники: android-developers.googleblog.com #Android#AndroidDev#Jetpack#Медия
Publié 26 mars
🤖Вышла CameraX 1.6.0 с крутыми улучшениями Вышел стабильный релиз CameraX 1.6.0. Цикл разработки был долгим, зато список изменений получился весомым. 👉Переход на CameraPipe — CameraX теперь работает на том же стеке, что и приложение камеры Pixel. Все оптимизации и новые computational photography фичи отныне приходят в CameraX автоматически. 👉Media3 Muxer по умолчанию — видеозапись через VideoCapture теперь использует Media3 Muxer. Если приложение упадёт во время записи, файл не повредится. Плюс более эффективный процессинг в целом. 👉Feature Group обновился — GroupableFeatures пополнился константами VIDEO_STABILIZATION и UHD_RECORDING. Теперь их можно комбинировать с другими фичами в одном SessionConfig, туда же вписываются CameraEffect и ImageAnalysis. 👉SessionConfig стал стабильным API — вышел из experimental вместе с HighSpeedVideoSessionConfig. Появился isSessionConfigSupported для проверки совместимости конкретной комбинации фич до биндинга к lifecycle. Также появился ExtensionSessionConfig для работы с CameraX Extensions. Также исправили баг на Android 17. Версия 1.5.2 падает. 🔗 Источник - developer.android.com 🐱Примеры на Github #Android#AndroidDev#CameraX#Jetpack#Камера
Publié 16 mars
🚀Начали разработку Room 3.0, который станет полностью KMP-библиотекой с поддержкой JS и WASM, а также избавится от легаси. Разработчики популярного ORM для Android и KMP решили выпустить мажорную версию, чтобы отразить всю важность изменений: 👉 Полный переход на androidx.sqlite driver API. 👉 Генерация кода будет только на Kotlin, никакой больше Java. 👉 APT и KAPT больше не будут поддерживаться. Остается только KSP. 👉 Room API теперь будет делаться в подходе "Kotlin Coroutines first", делая весь ORM асинхронным по умолчанию. Что нас ждет из новых фичей и возможностей: 👉 Появится полноценная поддержка JS и WASM-таргетов. 👉 Можно будет добавить собственные возвращаемые типы в Room. Например, Room, RxJava, Paging и пр. Новая версия Room будет выпущена под новым пакетом androidx.room3. Room 2.X не получит новых фичей, только багфиксы. 🔗 Источник - блог Android Developers. 🔗Release Notes Room 3.0.0-alpha01 #Android#AndroidDev#Room#SQLite#Jetpack#AndroidJetpack#KMP
Publié 21 déc.
🚀Media3 1.9.0: 4 новых модуля, Compose UI и умная предзагрузка Вышел крупный релиз Jetpack Media3 1.9.0. В центре обновления — четыре новых модуля и значительные улучшения производительности: 👉 Новый модуль media3-inspector — извлечение метаданных (длительность, формат) и кадров (превью) без запуска воспроизведения. Заменяет MediaMetadataRetriever. 👉 Новый модуль media3-ui-compose-material3 — готовые Compose-компоненты в стиле Material 3 для быстрой сборки UI плеера. 👉 Переписали media3-cast — автоматическое управление переходами между локальным (ExoPlayer) и удалённым (Chromecast) воспроизведением. 👉 Переписали media3-decoder-av1 (переписан) — стабильный AV1-декодер на основе библиотеки dav1d от автором VLC плеера. ⚡️ Умный PreloadManager - Добавлена интеграция с кэшем на диске и автоматическое управление памятью. Можно предзагружать большие очереди, не боясь превысить лимит оперативной памяти. ⏳Детектор «зависшего» плеера — автоматически сообщает об ошибке, если воспроизведение не прогрессирует. 👉 Упрощённая настройка кнопок в уведомлениях (Android Auto, Wear OS) через Player.COMMAND_*. 🔮 CompositionPlayer - экспериментальное API для реального превью видеомонтажа перед экспортом через Transformer. Подробности в официальном блоге #Android#Jetpack#Media#Chromecast
Publié 19 déc.
🚀Обновление для WebView с упором на производительность и контроль Вышла версия 1.15.0 библиотеки AndroidX WebKit (WebView). Главное изменение — повышение minSdk с API 21 до API 23 😁 🎯 Ключевые новые возможности: ⚡️ Ускорение загрузки 👉prerenderUrlAsync() — предварительная загрузка (prerender) страниц для мгновенного открытия. 👉Profile.preconnect()— предварительное установление соединения с origin. 👉Profile.addQuicHints() — подсказка WebView использовать протокол QUIC/HTTP3 для ускорения. 🔧 Больше контроля 👉setHyperlinkContextMenuItems() — кастомизация контекстного меню для ссылок. 👉 setBackForwardCacheSettings() — настройка Back/Forward кэша (таймауты, лимиты). 👉Profile.addCustomHeader() — установка кастомных HTTP-заголовков для запросов. 🔒 Безопасность и отладка 👉 Новый WebViewBuilder API для создания WebView с неизменяемой конфигурацией, что повышает безопасность при использовании addJavascriptInterface. 👉 Улучшенные API для отладки асинхронной инициализации WebView. 👉 Также возвращена отправка заголовка X-Requested-With, а старый API для его исключения помечен как deprecated. #WebView#AndroidDev#Jetpack
Hashtags
Publié 18 déc.
🚀Core-Backported-Fixes 1.0: Умная проверка исправлений системных багов Google выпустил новую библиотеку Core-Backported-Fixes 1.0. Она помогает приложениям определить, установлены ли на устройстве пользователя критические исправления системных ошибок от Google. Когда Google выпускает исправление системной ошибки Android, его распространение на все устройства занимает месяцы. Эта библиотека позволяет приложению проверить, применено ли конкретное исправление на текущем устройстве, и в зависимости от этого выбрать безопасную стратегию работы. Библиотека предоставляет API для проверки статуса известных проблем (KnownIssues) по их ID. val fixManager = BackportedFixManager() if (fixManager.isFixed(KnownIssues.KI_398591036)) { // Исправление установлено, можно использовать функцию useFeatureSafely() } else { // Исправления нет, включаем обходной путь useFallbackWorkaround() } Пока что библиотека содержит информацию об одной известной проблеме - KI_398591036: Аномальные цветовые тона при съёмке в формате JPEG-R на некоторых устройствах Pixel. Рекомендация — использовать обычный JPEG, пока проблема не исправлена. 👨💻 Кому это будет полезно? 👉 Разработчикам, чьи функции зависят от конкретных системных исправлений. 👉 Приложениям, работающим с аппаратными возможностями (камера, датчики), где часто встречаются специфичные для устройств баги. 👉 Тем, кто хочет повысить стабильность и избежать сбоев, связанных с прошивкой. #AndroidDev#Jetpack#Pixel
Hashtags
Publié 18 déc.
🚀Jetpack Ink 1.0 стабильна! Библиотека для работы с рукописным вводом и графикой Google выпустил стабильную версию Jetpack Ink 1.0 — библиотеку для создания продвинутых функций рукописного ввода (inking) и рисования в Android-приложениях. Это многомодульная библиотека, которая обрабатывает цифровые штрихи (strokes) от ввода (стилус или палец) до их показа. Она предоставляет все необходимые инструменты для создания реалистичного и отзывчивого опыта письма или рисования. 👨💻 Кому будет полезна? 👉 Разработчикам приложений для заметок, скетчей, цифровых подписей. 👉 Образовательным приложениям, требующим аннотирования документов или изображений. 👉 Любому продукту, где нужен реалистичный, выразительный пользовательский ввод поверх контента. Библиотека берет на себя сложности обработки графики, физики мазков и обработки жестов, позволяя легко добавить профессиональные функции рисования. #Jetpack#AndroidDev#Android
Hashtags
Publié 4 déc.
🚀 Google выпустила androidx.webgpu:webgpu:1.0.0-alpha01 — WebGPU нативно в Android-приложения. WebGPU — это новый графический и вычислительный API, который приходит на смену устаревающему WebGL. Его цель — дать разработчикам современный доступ к GPU для тяжёлых визуальных и вычислительных задач как в вебе, так и теперь — в Android, благодаря androidx.webgpu. Если упрощённо — WebGPU открывает дверь к автоматически оптимизированной работе с видеокартой без необходимости использовать низкоуровневые графические движки. Что даёт WebGPU разработчикам: 🧩 Современная графика уровня Vulkan/Metal/DX12 ⚙️ Compute-шейдеры для вычислений прямо на GPU 🚀 Высокую производительность рендеринга и ML-вычислений 🔁 Кроссплатформенность: единый подход Web + Android (и не только) 📦 Потенциально меньше нативного кода на C++/NDK 🧪 Удобный доступ к GPU-фичам для прототипов и экспериментов Версия для Android пока в alpha, API нестабилен, документации немного. Но это важный шаг: Google фактически легализует WebGPU как будущий GPU-базис на Android. #AndroidDev#Android#Jetpack#AndroidJetpack#WEB#GPU
Publié 4 déc.
🚀Вышла SwipeRefreshLayout 1.2.0 — важные исправления для "pull-to-refresh" Google выпустил обновление библиотеки SwipeRefreshLayout до версии 1.2.0. В основном релиз содержит исправления багов, которые улучшают работу жеста обновления. Исправление визуальных артефактов - Иконка обновления теперь полностью убирается после сворачивания (исчезает её тень) - Сброс всех свойств иконки после сворачивания, чтобы она корректно отображалась при следующем вызове 👍Корректная обработка Touch-событий. Метод requestDisallowInterceptTouchEvent() теперь работает как в обычных ViewGroup. Это важно для вложенных scroll-контейнеров. Если новое поведение с обработкой touch-событий ломает ваше приложение, можно вернуть старое через: swipeRefreshLayout.setLegacyRequestDisallowInterceptTouchEventEnabled(true) #AndroidDev#Jetpack#UI
Hashtags
Publié 3 déc.
🚀Jake Wharton рекомендует использовать Beta и RC версии Android Jetpack библиотек Легенда разработчик Джейк Уортон призвал использовать Beta и RC версии Android Jetpack библиотек, а не ждать стабильных релизов. Далее про причины 🚀Beta ≠ "сырая версия". В экосистеме Android Jetpack бета-версии — это по сути стабильные релизы, которые прошли альфа-тестирование. 👍Фиксы багов будут быстрее. Beta и RC получают исправления багов быстрее, чем стабильные релизы. 🔍Раннее обнаружение проблем. Вы можете найти и сообщить о багах до выхода стабильного релиза и помочь сообществу раньше. Такие причины сподвигнут вас брать Beta и RC? Ну точно нет. Некоторые ждут по 1-2 неделе после выхода Stable, чтобы обновляться! #AndroidDev#Jetpack#BestPractices#JakeWharton
Publié 3 déc.
🤖Jetpack Navigation 3: Полный гид по новой библиотеке навигации от Google Гугл выпустил Navigation 3 — это новая глава в построении навигации для Android-приложений. Всё, что вы знали, теперь стало мощнее, гибче и композабльнее! 00:00 — Базовые принципы Navigation 3 02:09 — NavEntry и entryProvider 03:29 — Разбор API на практике 07:17 — Навигация в многомодульном приложении 11:27 — Модуляризация: пишем код 15:57 — Анимации экранов 16:15 — Погружаемся в анимации 19:44 — Адаптивные макеты (Scenes) 23:01 — Scenes в действии 24:39 — Краткий итог и выводы 🔗Официальное руководство 🔗Рецепты для работы с Nav3 (Code recipes) Навигация больше не будет болью! Смотрите, внедряйте и делитесь впечатлениями в комментариях. #Android#AndroidDev#Jetpack#Compose#KMP