Интеграция Developer Verification Support - это встраивание с инициативой Android Developer Identity. IDE теперь позволяет проверить статус регистрации приложения прямо перед его распространением.
По сути это очередной допил AI-возможностей, и видно что весь фокус команды Android Studio ушёл именно туда. Старые болячки при этом, скорее всего, так и не полечат, на них просто забьют. Учитывая сколько всего идёт в AI, IDE превращается в AI-обвес на стеройдах поверх всего остального. И здесь Cursor ближе к пониманию того, какой должна быть современная IDE - лёгкий просмотрщик с AI в центре, а не тяжёлый комбайн со сложным дебагом, профилировщиками и всем этим наследием. Классические IDE для разработки будут умирать. Я сам Android Studio запускаю редко и по большей части работаю через Claude Code.
Отдельно интересно как отработает Agent Web Search. Google всё-таки поисковая компания, и как они встроили это в Gemini, будет видно в бою. Я сам часто подключаю Perplexity, чтобы подтягивать актуальную инфу в ответы с исследованием, так что любопытно сравнить качество.
#Android #AndroidStudio #AI
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👎29👍9
Media is too big
VIEW IN TELEGRAM
Главное новшество — unified coverage and test reports. Плагин теперь умеет генерировать HTML-дашборд, который объединяет результаты unit и instrumentation тестов по всем модулям и вариантам сборки в одном месте. Пока это эксперимент: нужно включить флаг
android.experimental.reportAggregationSupport=true в gradle.properties.🛠 Из фиксов стоит выделить несколько практически значимых: починили переименование APK через новый AGP DSL, исправили падение JdkImageTransform при использовании JDK 26, починили поведение Android Lint с флагом
--quiet и сломанную работу кастомных lint-правил, скомпилированных под Java 21 bytecode.Совместимость: Gradle 9.4.1, SDK Build Tools 36.0.0, JDK 17, максимальный API level 36.1.
Единый тест-дашборд — нужная штука для проектов с большим количеством модулей, где сейчас результаты разбросаны по папкам. Подожду stable прежде чем трогать в рабочем проекте, но направление правильное.
#Android #AGP #Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23👎5
Forwarded from Compose Broadcast
Что нового:
👉 Визуальная отладка переходов Shared Elements
👉 Переработанная поддержка трекпадов — теперь работают как мышь и распознают жесты
👉 Preview Wrappers для более быстрой работы с превью
👉 Host Defaults для KMP-проектов
👉 Testing APIs v2 для корутин
👉 Экспериментальные API: Styles, MediaQuery, Grid, FlexBox
Подробности по каждому пункту — отдельными постами в @compose_broadcast
#Compose #Android #AndroidJetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35👎4
Google начала выпускать криптографически верифицированные email credentials прямо на Android-устройства. Получить их можно через Credential Manager API, который реализует стандарт W3C Digital Credentials API.
Механика простая: пользователь тапает "Sign up" или фокусируется на поле ввода email, появляется нативный bottom sheet с описанием запрашиваемых данных, один тап на "Agree and continue" - и приложение получает верифицированный адрес мгновенно. Никакого перехода в почту, никаких кодов.
Три сценария, где это применимо:
👉 Регистрация - вместе с получением email сразу инициировать создание passkey
👉 Восстановление аккаунта - больше не нужно искать письмо с recovery кодом в спаме
👉 Step-up аутентификация - для подтверждения чувствительных действий без OTP
‼️ ВАЖНО: верифицируется только email. Имя, фамилия, фото профиля доступны, но не верифицированы. Поддерживаются только личные аккаунты.
#Android #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55👎6
C начала 2026 года я активно сел изучать практическим путем решения задач в проектах и также создания новых идей. Много неудач, проб заново, изменяя подход, и первые результаты. Всё это я освещаю на Boosty в виде дневника.
Все видео погружения я выкладываю на
P.S. Cкоро уже начну делать стримы/видео на Boosty чтобы показывать вживую Videcoding т.к. уже получил достаточный навык.
#AndroidBroadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
18👎114👍31
До этого «Войти через Telegram» на Android означало либо открытие браузера, либо самостоятельную реализацию OIDC-флоу. Теперь есть отдельная библиотека login-sdk:1.0.0 — она запускает нативный экран подтверждения прямо из установленного Telegram.
Библиотека распространяется через GitHub Packages, а не Maven Central. Подключение требует GitHub Personal Access Token с read:packages — неудобно для командных проектов и CI.
Минимальная версия — API 23 (Android 6.0). Репо свежее: 2 коммита, 4 звезды. Стабильности пока ждать не стоит, но направление понятное.
Для сервисов, которые уже сидят в Telegram-экосистеме — ботов, мини-аппов, каналов с платным доступом — это логичное решение. Для остальных порог входа через GitHub Packages немного портит картину.
#Android #Telegram #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍89👎6
Forwarded from Kotlin Multiplatform Broadcast
Решение вобрало в себя всё самое лучшее от Dagger, Anvil и kotlin-inject, чтобы стать тем стандартом для KMP-проектов, который искали после Dagger.
Metro DI не использует KSP или KAPT. Вся генерация осуществляется с помощью плагина компилятора Kotlin.
#Kotlin #KMP #DI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍60👎6
Android Broadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👎5
С 1 по 11 мая включительно скидки до -20% на мебель и аксессуары Ergostol для вашего домашнего офиса.
🔥 Акция суммируется с промокодами.
В акции участвуют популярные модели: стол Оптима 3.0, стол Ультима, кресло Экзо Флекс и много другого. Это отличная возможность приобрести их выгодно!
ANDROID10 на сайте Ergostol.Так же промокод действует и на Ozon
Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262
Please open Telegram to view this post
VIEW IN TELEGRAM
👎8👍4
Установить можно из
#Android #OpenSource
Please open Telegram to view this post
VIEW IN TELEGRAM
👎75👍35
🤯 Те кто использовал Jetpack Paging 3 знают насколько он может справиться только с базовыми сценариямми. Шаг влево или вправо - уже боль!
Сегодня хочу познакомить вас с альтернативой — библиотекой🐱 Paginator. Это KMP-решение для пагинации, которое решает те самые проблемы, где Paging 3 начинает "буксовать".
Paginator построен на отличной модели от Jetpack Paging 3: страница — это адресуемая ячейка в кэше, кэш — обычная структура данных, а навигация — обычные методы.
1️⃣ ✅ Адресуемые страницы
Прямые методы
2️⃣ ✅ Мутации по запросу
3️⃣ ✅ Сохраняемое состояние
Кэш — обычная структура данных, которую можно сериализовать через
4️⃣ ✅ Библиотека, а не фреймворк
Написан на чистом Kotlin без платформенных зависимостей и живёт в
5️⃣ ✅ Курсорная пагинация "из коробки"
Отдельный класс
🔗 Оригинальная статья на Хабре
🐱 Репозиторий Paginator
#Android #AndroidDev #KMP
Сегодня хочу познакомить вас с альтернативой — библиотекой
Paginator построен на отличной модели от Jetpack Paging 3: страница — это адресуемая ячейка в кэше, кэш — обычная структура данных, а навигация — обычные методы.
Прямые методы
goNextPage(), goPreviousPage() и jump(Bookmark). Deeplink на сообщение из пуша решается одной строкой.MutablePaginator предоставляет CRUD-операции: replace { it.id == 42 }, removeWhere { it.deleted }. Один лайк меняет один элемент без инвалидации всей страницы.Кэш — обычная структура данных, которую можно сериализовать через
kotlinx.serialization. Методы serializeToJson() и restoreFromJson() решают проблему Process Death без плясок с бубном.Написан на чистом Kotlin без платформенных зависимостей и живёт в
commonMain. Логика пагинации становится частью общего доменного слоя KMP, не копируется между платформами и не имеет двух реализаций.Отдельный класс
CursorPaginator с единой моделью состояний, транзакций и сериализации.Paginator — это не обёртка над Paging 3. Это другая модель, переосмысливающая ключевые типы. Обёртка просто не смогла бы дать ни мутации элемента, ни сериализации кэша.
🔗 Оригинальная статья на Хабре
#Android #AndroidDev #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍77👎3
NoSuchMethodError или ClassNotFoundException, знакома многим. Причина — тихий конфликт версий. Gradle по умолчанию старается брать самую новую версию из всех найденных, но срабатывает не всегда. В разных модулях одного проекта могут спокойно жить разные версии одной библиотеки (например, okhttp 4.9.0 в модуле А и 4.11.0 в модуле Б). Gradle не считает это конфликтом, потому что модули изолированы. В рантайме при передаче объекта между модулями — ClassCastException. Особенно больно это бьет в KMP, где общая бизнес-логика связывает всё в единую цепочку.Плагин
# Пример работы плагина
Version conflict detected: org.slf4j:slf4j-api
- version 2.0.17 via:
- project :app -> ch.qos.logback:logback-classic:1.4.11 -> org.slf4j:slf4j-api:2.0.17
...
- version 1.7.25 via:
- project :app -> org.apache.logging.log4j:log4j-slf4j-impl:2.17.1 -> org.slf4j:slf4j-api:1.7.25
Такая проактивная проверка помогает фиксить конфликты еще на этапе разработки и писать более стабильный код. Попробуйте.
#Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍59👎8
Продолжаю разбор как избавится на Android от слежки Google. /e/OS - это не просто форк AOSP, но и развитие экосистемы альтернативых сервисов, а также свои эталонные устройств на собственной ОС из коробки
Все подробности в новом видео на
#AndroidBroadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
👎42👍27
Данные официального бенчмарка Google
#AI #Benchmark
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81👎30
// В 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👎6
👉 minSdk поднят до 24 (Android 7.0) — учитывайте при апгрейде.
👉 Async-старт WebView вышел из experimental. startUpWebView вместе с ProcessGlobalConfig позволяют прогреть WebView в фоне до того как он понадобится UI. Эту штуку давно ждали в стабильной версии — для меня самое ценное обновление этого релиза.
👉 Navigation API тоже стабильный. Больше не надо
@OptIn — addNavigationListener даёт колбэки на разных стадиях навигации, ошибку загрузки через Navigation.webResourceError, URL текущей страницы через Page. Главное — теперь FCP и LCP метрики прилетают напрямую из WebView без инъекции JS:// Перед использованием проверь
// WebViewFeature.isFeatureSupported(WebViewFeature.NAVIGATION_LISTENER)
WebViewCompat.addNavigationListener(webView, object : NavigationListener {
override fun onFirstContentfulPaintMillis(page: Page, millisFromNavStart: Long) {
analytics.report("FCP", millisFromNavStart, page.url)
}
override fun onLargestContentfulPaintMillis(page: Page, millisFromNavStart: Long) {
analytics.report("LCP", millisFromNavStart, page.url)
}
override fun onNavigationCompleted(navigation: Navigation) {
navigation.webResourceError?.let { err ->
Log.w("WV", "load failed: ${err.errorCode}")
}
}
})
На один WebView можно вешать несколько листенеров и прокидывать свой Executor если нужны колбэки в фоновом потоке.
👉
WebViewCompat.saveState теперь умеет ограничивать размер state. Если ловили TransactionTooLarge при сохранении состояния — это для вас.👉 Подвезли
addJavaScriptOnEvent для инъекции JS на загрузку документа и инъекцию скриптов в isolated worlds без конфликтов со страницей. Гибридным приложениям пригодится.👉 [EXPERIMENTAL] BackForwardCacheSettings полностью переписали. Если использовали старый Builder через WebSettingsCompat.setBackForwardCacheSettings — ловите ошибку компиляции при апгрейде. Теперь так:
val settings = WebSettingsCompat.getBackForwardCacheSettings(webView.settings)
settings.setMaxPagesInCache(5)
👉
Profile.setSpeculativeLoadingConfig депрекейтнут, замена через Profile.setMaxPrerenders плюс PrefetchCache.setMaxPrefetches и setPrefetchTtlSeconds (тоже experimental).#Android #Webview #Web #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28👎4
Android Show 2026, ставший традицией перед Google I/O, снова привлек наше внимание. В прошлом году нам показали Material 3 Expressive, а в этом году мы увидели три ключевых направления развития. Давайте разберемся с каждым из них по порядку.
1️⃣ Наконец-то Google представил свой собственный аналог Apple Intelligence, получивший название Gemini Intelligence. Это интерфейс, работающий поверх Android, который анализирует контекст экрана и выполняет действия на его основе. Например, если долго зажать кнопку питания над списком заметок, Gemini автоматически добавит товары в корзину для доставки. Если в Gmail найдено расписание курса, Gemini поместит необходимые книги в корзину. Также он интегрируется с Chrome, обеспечивая автобраузинг на мобильных устройствах; с Gboard — очищая голосовой ввод от мычания и повторов; а также с генеративными виджетами для домашнего экрана и плитками Wear OS.
Летом на свет появятся новые модели Pixel и Galaxy, а затем последуют часы, очки, автомобили и ноутбуки.
Неожиданно, что обычный Gemini не обладал этими возможностями сам по себе. Пришлось вынести их в отдельный продукт под собственным брендом. С маркетинговой точки зрения это логично: создать «премиум-решение с продвинутыми AI-функциями» для дорогих устройств, чтобы бюджетные Android-смартфоны не получили к ним доступ. Тем не менее, остался небольшой осадок.
#Google #Gemini
Летом на свет появятся новые модели Pixel и Galaxy, а затем последуют часы, очки, автомобили и ноутбуки.
Неожиданно, что обычный Gemini не обладал этими возможностями сам по себе. Пришлось вынести их в отдельный продукт под собственным брендом. С маркетинговой точки зрения это логично: создать «премиум-решение с продвинутыми AI-функциями» для дорогих устройств, чтобы бюджетные Android-смартфоны не получили к ним доступ. Тем не менее, остался небольшой осадок.
#Google #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
👎40👍10
Редизайн Android Auto в стиле Material 3 Expressive: новые шрифты, анимации, обои, поддержка виджетов. Оптимизировали круглые, прямоугольные и овальные дисплеи — теперь поддерживается любая форма. Immersive Navigation в Картах с 3D-зданиями, разметкой полос и светофорами. На поддерживаемых автомобилях теперь доступно видео в разрешении FHD с частотой 60 кадров в секунду на парковке, а также поддержка Dolby Atmos.
Виджеты в машине действительно удобны, их давно ждали. Это позволит реализовать различные интеграции.
Для России и Беларуси тема малоактуальна. Рынок сейчас почти полностью китайский, а там с Android Auto просто никак. Какая разница, как Google прокачал систему, если в вашей машине её всё равно не будет? Большие машины себе установят и поедут, остальным — мимо.
Круглые дисплеи — дело вкуса. Прямоугольный кажется самым простым, понятным и удобным.
#Android #AndroidAuto
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎6
🤯 Самый громкий анонс шоу - Googlebook. Новая категория ноутбуков на базе гибрида Android и ChromeOS, с Gemini в самом ядре.
Запуск осенью. И тут главная боль. Я ждал, что Google наконец возьмёт ноутбуки под свой контроль, сделает эталонный девайс, как делает с Pixel смартфонами. А оказалось — партнёрская программа. Собирать будут Acer, Asus, Dell, HP, Lenovo. То есть нас ждёт стандартная история Android-смартфонов: разброс по качеству, цене, поддержке. Кто-то выпустит сырую дешёвку, кто-то нормальный дорогой девайс, и общее впечатление от платформы размажется.
Со смартфонами Google это уже поняла и Pixel делает качественно. С ноутбуками — почему-то наступила на те же грабли. На мой взгляд — это главный провал шоу. Слово громкое, но точнее не подобрать.
Что касается самой ОС, то пока выглядит как прокачанный ChromeOS с глубокой интеграцией с Android: общие файлы, объединённые подходы между смартфоном и ноутом. Деталей мало, всё решат софт и реальные сценарии. Но желания пойти купить нет от слова совсем. Вендорам, которые это будут собирать, доверия мало.
Подождём первые девайсы. Если эталонного от Google не будет — буду грустить.
#Android #Geminie #ChromeOS #Googlebook #Google
Запуск осенью. И тут главная боль. Я ждал, что Google наконец возьмёт ноутбуки под свой контроль, сделает эталонный девайс, как делает с Pixel смартфонами. А оказалось — партнёрская программа. Собирать будут Acer, Asus, Dell, HP, Lenovo. То есть нас ждёт стандартная история Android-смартфонов: разброс по качеству, цене, поддержке. Кто-то выпустит сырую дешёвку, кто-то нормальный дорогой девайс, и общее впечатление от платформы размажется.
Со смартфонами Google это уже поняла и Pixel делает качественно. С ноутбуками — почему-то наступила на те же грабли. На мой взгляд — это главный провал шоу. Слово громкое, но точнее не подобрать.
Что касается самой ОС, то пока выглядит как прокачанный ChromeOS с глубокой интеграцией с Android: общие файлы, объединённые подходы между смартфоном и ноутом. Деталей мало, всё решат софт и реальные сценарии. Но желания пойти купить нет от слова совсем. Вендорам, которые это будут собирать, доверия мало.
Подождём первые девайсы. Если эталонного от Google не будет — буду грустить.
#Android #Geminie #ChromeOS #Googlebook #Google
👍27👎20