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é 23 oct.
🔥Jetpack CameraX теперь разрабатывается вместе с командой камеры Pixel Вышла первая альфа-версия Jetpack CameraX 1.6.0 Главное изменение — переход на унифицированный высокопроизводительный стек камеры, тот самый, что используется в приложении камеры Pixel. Этот стек известен как CameraPipe — и теперь CameraX и Pixel Camera развиваются совместно. Новый стек принесёт: 👉 более быструю и стабильную инициализацию камеры, 👉 консистентную обработку фреймов, 👉 и улучшенную совместимость между устройствами. Повод задуматься для миграции на CameraX для тех, кто не решался это сделать #android#jetpack#androidjetpack#camerax#camera
Publié 23 oct.
🚀Вышел Jetpack WorkManager 2.11.0 Что важного в новой версии: ❗️ minSdk: 23 (Marshmallow). Lollipop (API 21–22) больше не поддерживается. 🎉 Новое API: setRemoteSessionTimeoutMillis() в Configuration.Builder — задаёт время жизни сессии RemoteWorkManager после последнего использования. class App : Application(), Configuration.Provider { override fun getWorkManagerConfiguration(): Configuration { return Configuration.Builder() // Сколько живёт RemoteWorkManager-сессия после последнего использования .setRemoteSessionTimeoutMillis(TimeUnit.MINUTES.toMillis(5)) .build() } } 🎉 Тестирование: TestDriver.stopRunningWorkWithReason(...) — можно останавливать выполняющуюся работу с указанием причины. Зачем: удобно эмулировать внешние условия (остановку системой/приложением) и проверять, что код корректно реагирует на «принудительное завершение». // Arrange val request = OneTimeWorkRequestBuilder<MyWorker>().build() WorkManager.getInstance(context).enqueue(request).result.get() // Act val testDriver = WorkManagerTestInitHelper.getTestDriver(context)!! testDriver.stopRunningWorkWithReason( request.id, /* reason */ 0 // укажите код причины, например ваш тестовый/константу из проекта ) // Assert — далее проверяете ожидаемое состояние 🛠 Также сделали исправление багов #android#jetpack#workmanager#jetpackupdate#androidjetpack
Publié 20 oct.
🤖Как проверить, какие комбинации фичей поддерживает камера смартфона Современные смартфоны умеют снимать с HDR, 120 FPS и стабилизацией, но вот какая комбинация этих фич реально доступна — загадка. Например, стабилизация часто работает только при 1080p, а 60 FPS не всегда доступны в 4K. С выходом Jetpack CameraX 1.5 появилось API GroupableFeature и новые параметры для SessionConfig, которые позволяют из кода проверить, какие функции камера может использовать одновременно. // Пример проверки неподдерживаемых комбинаций val unsupportedFeatures = mutableSetOf<GroupableFeature>() val appFeatureOptions = setOf(HDR_HLG10, FPS_60, PREVIEW_STABILIZATION) appFeatureOptions .filterNot { it in currentFeatures } .filter { featureOption -> cameraInfo.isFeatureGroupSupported( SessionConfig( useCases = useCases, requiredFeatureGroup = currentFeatures + featureOption ) ) } .forEach { unsupportedFeatures.add(it) } Так можно заранее отсеять неподдерживаемые сочетания — например, когда HDR и стабилизация не работают вместе при 60 FPS 🎥 Подробнее в статье (EN) #android#camerax#Jetpack#androidjetpack
Publié 11 sept.
📸Вышла Jetpack CameraX 1.5.0 с новыми фичами и готовым UI для видоискателя камеры Что нового 🤖Camera Viewfinder - первый релиз стабильный релиз UI для показа камеры с простым встраиванием в UI (View и Compose) ⚙️ Первый релиз androidx.camera:camera-compose - работа с камерой в Compose UI 🛠 Исправление багов // Пример View Finder в Compose val currentSurfaceRequest: SurfaceRequest by viewModel.surfaceRequests.collectAsState() val coordinateTransformer = remember { MutableCoordinateTransformer() } CameraXViewfinder( surfaceRequest = surfaceRequest, // Can also use EMBEDDED implementationMode = ImplementationMode.EXTERNAL, modifier = modifier.pointerInput(Unit) { detectTapGestures { with(coordinateTransformer) { val surfaceCoords = it.transform() viewModel.focusOnPoint( surfaceRequest.resolution, surfaceCoords.x, surfaceCoords.y ) } } }, coordinateTransformer = coordinateTransformer ) #android#камера#jetpack#compose
Publié 11 sept.
🚀 Вышел Room 2.8.0 Самая важная (она и единственная) фича свежего релиза - получение SupportSQLiteDatabase, являющегося оберткой над RoomDatabase с SQLiteDriver. Честно, не знаю кому это пригодится, поэтому будет полезно узнать от вас в комментариях практический опыт. Менее масштабные, но всё же важные изменения: 👉 minSdk подняли с 21 до 23 👉 Добавили поддержку KMP таргетов: watchOS и tvOS 🛠 Исправили баги #android#jetpack#androidjetpack
Hashtags
Publié 14 août
‼️Google нашла решения проблем багов для конкретных устройств😂 Известно, что отдельные устройства под Android имеют собственные баги. Производители их не правят по разным причинам: закончилась поддержка, не хотят тратиться или предложили на форуме обход. Может просто идет долго доставка фикса до вашего устройства (всякое может быть) Команда Android Jetpack сделала библиотеку core-backported-fixes, чтобы помочь разработчикам проверить состояния бага для текущего устройства 😂 Пример кода проверки issue KI_398591036 (проблема с цветом в фото на Pixel устройствах) val fixManager = BackportedFixManager() if (fixManager.isFixed(KnownIssues.KI_398591036)) { Offer_experience_that_needs_fix() } else { Offer_experience_that_avoids_the_bug() } Все issue для проверки описаны в классе KnownIssues #android#jetpack
Publié 14 août
‼️Важно изменение Android Jetpack - minSdk повысили с Api Level 21 (Android 5.0) до 23 (Android 6.0). Пока только в следующих версиях библиотек, но это всего 1-2 месяца. Если ваше приложение поддерживает Android 5.0 и выше, то использовать новые версии библиотек уже не получится. Что можно сделать: 👉 Остаться на старых версиях 👉 Повысить minSdk до 23 или выше 👉 Поддерживать всё самостоятельно Источник - Ian Lake из команды Android Jetpack #android#jetpack
Publié 13 août
🚀Media3 1.8.0 — апдейт, который стоит внедрить прямо сейчас Google продолжает прокачивать медиа API, и в этом релизе есть фичи, которые экономят время разработки и улучшают UX. 📺ExoPlayer 👉 Плавная перемотка: новый ScrubbingMode делает скролл прогресс-бара без отрыва пальца супер-отзывчивым. Пользователь почувствует разницу. 👉Встроенная видео-реклама: нативная поддержка Ads Interstitials в стриминге — меньше костылей. 👉 Длительность видео без проигрывания: val duration = MetadataRetriever .Builder(context, mediaItem) .build() .use { it.retrieveDurationUs().await() } 👉PreCacheHelper — загрузка контента по частям для более быстрых стартов. 🎵 MediaSession 👉 Плеер в шторке не исчезает сразу после паузы — пользователю проще вернуться к просмотру. ✂️Transformer API 👉 Экспериментальная обрезка видео через MP4 edit list. 👉 Опция CodecDbLite — ускоряет кодирование, подбирая оптимальные настройки под чипсет: Transformer.Builder() .setEncoderFactory( DefaultEncoderFactory.Builder() .setEnableCodecDbLite(true) .build() ) .build() 💡Почему обновляться сейчас 👉 Меньше кастомного кода — больше нативных возможностей. 👉 Повышение отзывчивости плеера = выше удержание пользователей. 👉 Новые API для подготовки к интеграции рекламы и улучшенного UX. Подробнее в анонсе или в changelog #android#AndroidDev#Jetpack#Media3#ExoPlayer
Publié 31 juil.
Вышел новый стабильный релиз тестовых библиотек от Google 🚀Test Core 1.7.0 🚀Test Espresso 3.7.0 🚀Test Espresso Device 1.1.0 🚀Test JUnit Extensions 1.3.0 🚀Test Truth Extensions 1.7.0 🚀Test Monitor 1.8.0 🚀Test Orchestrator 1.6.0 🚀Test Runner 1.7.0 🚀Test Rules 1.7.0 🚀Test Services 1.6.0 Из основных изменений: 👉 Повышение minSdk = 21 👉 Обновление зависимостей 👉 Исправление багов #android#jetpack#тестирование
Hashtags
Publié 31 juil.
🚀 Выпустили стабильную версию библиотеки Security-App-Authenticator-Testing 1.0, позволяющую конфигурировать собственный AppAuthenticator для тестов #android#jetpack#безопасность
Hashtags
Publié 31 juil.
🚀Библиотека Jetpack Secuirty Crypto получила поддержку Android 5.0+ #android#jetpack#безопасность
Hashtags
Publié 31 juil.
🚀Jetpack Paging теперь поддерживает таргеты watchos, tvos, mingwX64, watchosDeviceArm64 и linuxArm64 #jetpack#kmp