Coroutine Leak Detector — IDE-плагин для проверки кода корутин и Flow на предмет утечек:
👉
GlobalScope.launch / async👉
collect / collectLatest без repeatOnLifecycle / flowWithLifecycle👉
runBlocking (особенно на UI)👉
async { } без использования Deferred (исключения не будут перехвачены)👉
Job / SupervisorJob / CoroutineScope без .cancel() в onCleared/onDestroy👉 захардкоженные
Dispatchers.IO/Main/DefaultДоступны quick-fix (
Alt+Enter). Если код находится внутри ViewModel, плагин автоматически подставляет viewModelScope. В Fragment/Activity — lifecycleScope или оборачивает collect в repeatOnLifecycle(STARTED).Пока плагина нет в Marketplace. Установка выполняется через Gradle:
// сборка плагина, он появится в build/distributions/
./gradlew buildPlugin
// затем установить плагин через интерфейс IDE
Идея хорошая, но остался один вопрос: почему именно IDE-плагин? Нельзя ли было реализовать проверки через Android Lint или использовать другой анализатор? Тем более что с ИИ сейчас это можно сделать эффективно, а от IDE я уже совсем отошёл.
#Kotlin #Coroutines #AndroidStudio #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
С февраля 2027 года Google Play будет следить за новыми показателями приложения:
Для тех приложений, что не буду соответствовать новым планкам качества будут применяться санкции: пропадут из выдачи поиска, а потом и вовсе удалены.
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroiDev
Please open Telegram to view this post
VIEW IN TELEGRAM
В Android уже давно поддерживается стандарт Zero-Tap Sign-In - быстрый вход в приложение на любом Androidустрйостве пользователя, если хотя бы на одном из них уже пройдена. Также сюда включается и восстановление аккаунта при переносе данных между старым и новым Android устройством.
Все приложения должны начать соотвествовать политике с апреля 2027. За нарушение сначала последует скрытие из поисковой выдачи, а затем удаление.
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Кирилл Розов. Блог броадкастера
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Play начнет требовать оптимизацию кода через R8 и заранее предоставила инструменты анализа в рамках AGP 9.3.0. Запускаете
./gradlew :app:analyzeReleaseR8Config и получите отчет по 3 направлениям: shrinking, obfuscation, optimization.Для удобства Google сделала скилл r8-analyzer, который делает анализ отчета и выдает вам инсайты + предложения.
Рекомендуется обновиться дл AGP 9.3.0 или выше, но есть способ подключения для анализа на AGP 9.2
#AndroidDev #R8
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
// Пример форсирования структуры проекта через Aalekh
// build.gradle.kts (root project)
aalekh {
layers {
layer("domain") { modules(":core:domain", ":feature:*:domain") }
layer("data") {
modules(":core:data", ":feature:*:data")
canOnlyDependOn("domain")
}
layer("presentation") {
modules(":feature:*:ui", ":app")
canOnlyDependOn("domain", "data")
}
}
}
#Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
Честно, я не понимаю кому нужен такой перегруженный инструмент как IDE, особенно Android Studio, для разработки с AI агентами, разве что руками делаешь больше чем агентом
#AndroidStudio
Please open Telegram to view this post
VIEW IN TELEGRAM
Вы используете Android Studio
Final Results
2%
Не занимаюсь Android разработкой
86%
Использую Android Studio
8%
Перешел на работу с агентами через терминал/AI клиентов
1%
Другой вариант
2%
Не участвую в опросе
Forwarded from Кирилл Розов. Блог броадкастера
Из видео вы узнаете:
- Ключевые выводы о том, что я сделал за это время
- Как развиваться экспертом дальше, помимо навыков работы с ИИ
- Что мне интересно делать дальше
Все выпуски дневника можно найти тут
#AI
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Кирилл Розов. Блог броадкастера
🏆 Разыгрываю 2 билета на Podlodka Android Crew s16 под девизом "Android × AI: новый workflow разработки"
Подведу итоги розыгрыша 20 сентября в 10:00
С вас подписка на @rozov_blog и @android_broadcast
Подведу итоги розыгрыша 20 сентября в 10:00
С вас подписка на @rozov_blog и @android_broadcast
Jetpack Glance - библиотека для разработки с Android Desktop Widget и Wear Tile на Compose
Glance 1.2.0 вышел 26 августа 2026. С релиза 1.1 прошло больше года, в stable доехало то, что жили в альфе с мая 2025 🤯
Главное для виджетов на домашнем экране - генерация превью на Android 15+. Переопределяешь
GlanceAppWidget.providePreview, публикуешь через GlanceAppWidgetManager.setWidgetPreviews. Композиция одноразовая, без рекомпозиции и эффектов. На более старых версиях по-прежнему статическое превью.Что еще нового:
👉
alpha у Image (0f..1f)👉
MultiProcessGlanceAppWidget, если ресиверы живут в разных процессах👉 лямбды больше не experimental
👉
previewSize у requestPinGlanceAppWidget👉 повысили
minSdk до Android 6.0 (API level 23)Legacy
glance-wear-tiles deprecated в пользу androidx.glance.wear.#Android #AndroidDev #Compose #AppWidgets #AndroidJetpack #WearOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Google довёл Jetpack PDF до беты. Это не обёртка над
PdfRenderer, а готовый вьюер внутри своего UI: открыть документ, зум/скролл, поиск, выделение текста, стилус, двухстраничный режим на планшете, клавиатура и мышь.Точка входа:
PdfViewerFragment. Рядом Compose`PdfViewer` и PdfViewerState, но они ещё за @ExperimentalPdfApi.Редактирование тоже есть, и это главная причина смотреть библиотеку сейчас, а не через полгода.
EditablePdfViewerFragment даёт аннотации (перо, маркер, ластик, undo/redo через androidx.ink), заполнение форм и запись правок через PdfWriteHandle. Есть распознование данных (OCR)// просмотр + правки (experimental)
@OptIn(ExperimentalPdfApi::class)
class EditorFragment : EditablePdfViewerFragment()
// включить перо / маркер / формы
fragment.isEditModeEnabled = true
// сохранить драфт в файл
lifecycleScope.launch {
fragment.applyDraftEdits().use { handle ->
handle.writeTo(outputPfd)
}
}
Рендер и чтение бэкпортировали до
minSdk 28 (Android 9.0)Бета релиз значит публичные API просмотра зафиксировали, в прод можно тащить аккуратно. Теперь можно пробовать отказаться от коммерческих решений на замену стандартного решения, только вот minSdk не всем может позволить
🔗 Релизные заметки
🔗 Как встроить в приложение
#Android #AndroidDev #AndroidJetpack #PDF
Please open Telegram to view this post
VIEW IN TELEGRAM
Что уже сделали:
👉 размер метаданных: ~2.2 MB → ~80 KB
👉 аллокации на старте: 24 178 → 82
👉 ускорили сканирование доступных эмоджи
В прод тащить НЕ стоит. Имеет смысл смотреть, если профилируешь старт или видишь emoji2 в памяти.
#Android #AndroidDev #AndroidJetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
1. Encrypted Client Hello: сеть больше не видит, на какой домен вы переходите
HTTPS шифрует содержимое запроса. Но в самом начале TLS-рукопожатия телефон всё ещё сообщает серверу имя сайта в открытом виде. Это поле называется SNI (Server Name Indication). Оператору, офисному прокси и тому, кто слушает Wi-Fi, тело письма не видно, а адрес получателя виден. По нему собирают профиль и целят фишинг.
ECH (Encrypted Client Hello) как раз шифрует это имя с первого запроса. Вместе с Private DNS наблюдатель видит IP, но не домен. Работает только если сетевой стек приложения поддерживает ECH и сервер отдаёт конфиг в HTTPS-записи DNS. Иначе клиент шлёт заглушку GREASE, защиты нет.
Google просит обновиться на OkHttp 5.5.0 и включить ECH. В Network Security Config XML появился
<domainEncryption> для всей базы или для конкретного домена. HttpEngine / WebView должны подтянуть платформенные API сами.2. Local Network Protection форсируется
Для приложений с targetSdk 37 локальная сеть будет закрыта по умолчанию. Раньше любое приложение с
INTERNET могло просканировать домашнюю Wi-Fi и увидеть устройства. Теперь же потребуется запросить новое runtime permission ACCESS_LOCAL_NETWORK. Без него TCP-соединения в LAN уходят в таймаут, UDP возвращает EPERM. Касается сокетов, OkHttp, Cronet, mDNS, .local.Легаси-формат с
INTERNET и при target < 37 или на старых версиях ОС останется работать как было.3. Certificate Transparency по умолчанию
Публичные сертификаты должны быть в открытых CT-логах. Если центр сертификации скомпрометировали и выпустили фейковый сертификат «как у банка», это станет сложнее спрятать. Для обычного приложения это «просто заработало», пока вы не используете собственный CA или кривой прокси.
4. 2G выключает оператор, и это про SMS-бластеры
С Android 12 пользователь мог выключить 2G вручную (рекомендую сделать). В 17 это может сделать оператор по умолчанию для своих абонентов. К API приложения это не относится, но объясняет, зачем фича вообще есть. В 2G есть уязвимости, но никто не собирается их латать из-за устаревания стандарта.
Из четырёх пунктов прямо сейчас ломает продукт только локальная сеть. ECH даёт пользу, когда обновили клиент и бэкенд. Остальное фоном.
🔗 Источник - блог Google
#Android #Android17 #Security #Privacy
Please open Telegram to view this post
VIEW IN TELEGRAM