Показано как искать проблемы на версиях Android с 12 и выше, а также на Android 11, Android 10 и ниже. Разница вызвана тем, что внутри ОС защиты разные инструменты для анализа.
#Android #AndroidDev #Оптимизация #UI
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍1
В блоге Android Developers рассказали про большой пакет обновлений по Google Play Billing, который будет раскатываться постепенно.
Из уже доступного всем явно называют только In-App Messaging API: всплывающие уведомления внутри приложения, чтобы починить отклонённую карту или предупредить о смене цены подписки.
Все анонсы связаны с изменением способов продажи. Изменения направлены на удобство пользователей и повышение доходов разработчика.
👉 Multi-Quantity — покупаешь несколько копий подписок один раз и можно раздать их семье, команде или студентам. Это то, чего B2B и EdTech на Play не хватало годами.
👉 Usage-Based Billing — предоплата + автопополнение, когда баланс падает ниже порога. Направлено на тип "Pay as You Go", например, генерация картинок/видео. Также убирает зависимость от платёжки картой и в теории должно повысить процент успешного оформления.
👉 Mixed Carts — подписка и one-time purchase в одной оплате и одном API-вызове. Можно добавлять скидку, если берут бандл.
👉 Cross-Developer Bundling — связка двух подписок, в том числе с чужим приложением. Коллабы становится делать выгоднее.
#Android #AndroidDev #GooglePlay
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥8❤1
Отладочные инструменты часто вызываются из
src/main: логирование экрана, свой интерцептор OkHttp. По умолчанию такой код попадает в релиз, а пользователю он не нужен. Чтобы оставить его только в отладочных сборках, обычно прячут каждый вызов под if (DEBUG), разносят сами вызовы по разным src или заводят плагинную архитектуру.NoOp проще. Две реализации одного публичного API: одна рабочая, вторая с теми же методами, но без работы. Вызов в общем коде не меняется, в релизе он ничего не делает. По исходникам разделяется только место, где создаётся реализация.
interface ScreenTracer {
fun trace(screen: String)
object NoOp : ScreenTracer {
override fun trace(screen: String) = Unit
}
}// src/release
fun createScreenTracer(): ScreenTracer = ScreenTracer.NoOp
// src/debug. Этот класс в release не попадает.
fun createScreenTracer(): ScreenTracer = DebugScreenTracer()
class DebugScreenTracer : ScreenTracer {
override fun trace(screen: String) {
Log.d("Screen", screen)
}
}
class AppContainer(
val screenTracer: ScreenTracer = createScreenTracer(),
)
// Одна и та же строка в debug и в release
screenTracer.trace("Checkout")
Пример маленький, но так же собираются целые модули. Правила те же:
1. Публичное API совпадает целиком: те же типы, методы и сигнатуры.
2. Если метод что-то возвращает, NoOp отдаёт нейтральное значение, от которого дальше ничего не запускается:
null, пустую коллекцию, константу DISABLED, -1.3. Методы NoOp не делают работу: не пишут логи, не ходят в сеть, не держат состояние.
// Подключение зависимостей с разной реализацией
debugImplementation(project(":lib:debug"))
releaseImplementation(project(":lib:noop"))
Оба модуля отдают одни и те же публичные типы. В сборку попадает один из них.
NoOp можно сочетать с вырезанием кода на этапе R8, чтобы в релизе не осталось даже заглушки. Если пост наберёт 200 огоньков 🔥 , разберу, как совместить оба подхода.
#Android #AndroidDev #Архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥92👍10❤3
В видео разбираю подробности и эффект первой волны, ну и конечно же делюсь своим мнение касательно хорошей затеи во во славу безопасности пользователей!
#AndroidBroadcast #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤3🔥3
👨🏻💻 Строим мультиагентные системы для разработки на Podlodka AI Crew
Инженерные задачи редко состоят из одного действия.
В традиционной разработке их распределяют между специалистами. Мультиагентный подход переносит эту логику в ИИ: вместо одного исполнителя работают несколько виртуальных агентов. Как построить такую систему и сделать её эффективной?
Эксперты Podlodka AI Crew ответят на этот вопрос в новом сезоне «Мультиагентные системы» с 12 по 16 октября. Генеральный партнёр — RWB.
Что узнаете:
🧩 Как построить внутреннюю ИИ-платформу разработки
🧠 Как устроен «мозг» агента
🔄 Как убрать себя из агентского цикла с помощью оркестрации
🏭 Как построить «завод» из ИИ-агентов с узкими задачами
🔍 Как быстро находить ошибки и не тратить лишние токены
Формат: онлайн, 5 дней, утренние и вечерние сессии в Zoom. Много практики и обсуждений в закрытом Telegram-канале. Цена ниже привычных конференций.
🎟 Промокод
#реклама
Инженерные задачи редко состоят из одного действия.
В традиционной разработке их распределяют между специалистами. Мультиагентный подход переносит эту логику в ИИ: вместо одного исполнителя работают несколько виртуальных агентов. Как построить такую систему и сделать её эффективной?
Эксперты Podlodka AI Crew ответят на этот вопрос в новом сезоне «Мультиагентные системы» с 12 по 16 октября. Генеральный партнёр — RWB.
Что узнаете:
🧩 Как построить внутреннюю ИИ-платформу разработки
🧠 Как устроен «мозг» агента
🔄 Как убрать себя из агентского цикла с помощью оркестрации
🏭 Как построить «завод» из ИИ-агентов с узкими задачами
🔍 Как быстро находить ошибки и не тратить лишние токены
Формат: онлайн, 5 дней, утренние и вечерние сессии в Zoom. Много практики и обсуждений в закрытом Telegram-канале. Цена ниже привычных конференций.
🎟 Промокод
AI_BROADCAST — скидка на сайте#реклама
👍3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31
Что нового:
👉 Из Generate Signed App Bundle можно сразу залить билд в тестовые треки Play Console. В том числе первый релиз нового приложения во внутренний трек
👉 Gemini в Studio теперь можно гонять в корпоративном Google облаке, а внутри вашего Google Cloud проекта: свой VPC, регион данных и счёт компании (нужна подписка Gemini Enterprise)
👉 Параллельная синхронизация: на Gradle 9.4+ при
org.gradle.tooling.parallel=true Studio по умолчанию тянет модели IDEA параллельно — Gradle Sync в больших мультимодульных проектах заметно быстрее#AndroidStudio #AndroidDev #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Android CLI - терминальная утилита от команды Android из Google для более эффективной работы агентов с Android задачами
Android Device Streaming - облачная ферма устройств от Firebase (Google)
#Android #AndroidDev #AI #CLI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤1