🔥 Android-разработчик, твоё приложение — это песочница, но пользователь может пробить в ней дыру в любой момент.
Многие думают, что разрешения — это просто диалог «Разрешить / Запретить». На самом деле это многослойная система с двумя уровнями проверок, временными разрешениями, автоматическим отзывом и политиками Google Play, которые могут заблокировать твоё приложение ещё на этапе публикации.
В этом видео мы копаем глубже документации и разбираем:
👉 Скрытый фреймворк AppOps — второй слой защиты, который может тихо заблокировать доступ, даже если у тебя есть грант.
👉 URI Permission Grants — механизм делегирования доступа без необходимости запрашивать широкие разрешения.
👉 Как проектировать архитектуру, чтобы приложение не падало, когда пользователь говорит «Нет».
Разрешение — это не гарантия доступа. Это формальное разрешение внутри сложной многоуровневой системы ограничений. Если твоя фича не работает без разрешения — это не проблема пользователя. Это баг архитектуры.
🎯 Кому смотреть:
👉 Android-разработчикам, которые хотят строить стабильные и устойчивые приложения
👉 Техлидам и архитекторам, которые проектируют приватность-first системы
👉 Всем, кто устал от крашей после отзыва разрешений в настройках
👉 Хочет лучше формировать требования для AI агентов и понимать что происходит
📌 В видео:
👉 Реальный путь разрешения — от манифеста до системного сервиса
👉 Почему
👉 Как обходиться без разрешений через системные пикеры
👉 Google Play политики, которые могут забанить твоё приложение
Разрешения — это не техническая деталь. Это контракт доверия между твоим продуктом и пользователем.
———
Ставь 🔥, если хочешь видеть больше глубоких разборов Android-архитектуры! (будут только под платной подпиской)
🪙 Полный разбор на Boosty
Многие думают, что разрешения — это просто диалог «Разрешить / Запретить». На самом деле это многослойная система с двумя уровнями проверок, временными разрешениями, автоматическим отзывом и политиками Google Play, которые могут заблокировать твоё приложение ещё на этапе публикации.
В этом видео мы копаем глубже документации и разбираем:
👉 Скрытый фреймворк AppOps — второй слой защиты, который может тихо заблокировать доступ, даже если у тебя есть грант.
👉 URI Permission Grants — механизм делегирования доступа без необходимости запрашивать широкие разрешения.
👉 Как проектировать архитектуру, чтобы приложение не падало, когда пользователь говорит «Нет».
Разрешение — это не гарантия доступа. Это формальное разрешение внутри сложной многоуровневой системы ограничений. Если твоя фича не работает без разрешения — это не проблема пользователя. Это баг архитектуры.
🎯 Кому смотреть:
👉 Android-разработчикам, которые хотят строить стабильные и устойчивые приложения
👉 Техлидам и архитекторам, которые проектируют приватность-first системы
👉 Всем, кто устал от крашей после отзыва разрешений в настройках
👉 Хочет лучше формировать требования для AI агентов и понимать что происходит
📌 В видео:
👉 Реальный путь разрешения — от манифеста до системного сервиса
👉 Почему
checkSelfPermission — это только начало👉 Как обходиться без разрешений через системные пикеры
👉 Google Play политики, которые могут забанить твоё приложение
Разрешения — это не техническая деталь. Это контракт доверия между твоим продуктом и пользователем.
———
Ставь 🔥, если хочешь видеть больше глубоких разборов Android-архитектуры! (будут только под платной подпиской)
Please open Telegram to view this post
VIEW IN TELEGRAM
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