База знаний android
1 subscriber
2.48K photos
284 videos
2 files
3.77K links
Download Telegram
Android Skills — модульные AI-инструкции для разработки

Google выложила Android Skills — набор готовых markdown-инструкций для любой LLM (Claude, Gemini, GPT), которые проводят агента через рутинные архитектурные задачи в Android-проекте.

В наборе:
— View → Compose миграция с сохранением ViewModel-логики.
— Реализация adaptive-лейаутов под Android 17 (sw > 600 dp).
— Navigation 2 → Navigation 3 transformation.
— Миграция со старых camera-библиотек на CameraX.

Технически Skills — структурированные `.md` файлы с шагами, проверками и code patterns. LLM подключает их как контекст и идёт по чеклисту, не «вспоминая» Compose из памяти. Запуск — через новый Android CLI 1.0. Репо открытый, форкается под свой стек.

@mobi_dev (теперь и в Max)
🧳 Переезд с XML на Jetpack Compose на проде

Автор статьи рассказывает о переходе крупного многомодульного проекта с сотнями экранов на Jetpack Compose. Классический стек (XML, Cicerone, Dagger 2, MVVM) работал, но когда экранов стало несколько сотен, команда начала тратить больше времени на борьбу с неконсистентным состоянием UI. Потребовалось менять подход.

За полтора года миграции разработка ускорилась, а баги, связанные с состоянием экрана, практически исчезли.

В статье автор делится, как процесс был разделён на три этапа, что делали на каждом и к чему пришли. Материал будет полезен тем, кто уже знаком с Compose, хочет внедрить его в проект, но сомневается. Без разбора плюсов и минусов технологии — только практика.

👉 Читать статью

📌 Лучшие вакансии для мобильных разработчиков

🐸 Библиотека мобильного разработчика

#свежак #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
🔖 5 фич Jetpack Compose, которые изменят ваш подход к разработке Android-приложений

1️⃣ Анимации — профессионально выглядящие переходы с AnimatedContent

Раньше переключения видимости между состояниями UI могли выглядеть немного топорно. AnimatedContent позволяет задавать, как контент появляется и исчезает — затухание, сдвиг, масштабирование, что угодно!

AnimatedContent(
targetState = isLoggedIn,
transitionSpec = {
// Slide in from right, slide out to left
slideInHorizontally { it } togetherWith slideOutHorizontally { -it }
}
) { loggedIn ->
if (loggedIn) HomeScreen() else LoginScreen()
}


Да, переходы имеют значение — пользователи это замечают. Такой уровень проработки вызывает доверие.

2️⃣ Не пересоздавайте то, что не изменилось: LazyColumn и key

Большинство разработчиков используют LazyColumn без key. Это нормально — пока вы не измените порядок элементов списка, и тогда каждый элемент начнет мигать и перерисовываться.

Стабильные ключи позволяют Compose более явно понимать, какой элемент есть какой.

LazyColumn {
items(messages, key = { it.id }) { message ->
MessageRow(message)
}
}


3️⃣ derivedStateOf — избавьтесь от лишних рекомпозиций

Эту возможность используют редко и часто понимают неправильно. Если у вас есть состояние, зависящее от другого состояния, используйте derivedStateOf — тогда Compose будет выполнять рекомпозицию только при изменении результата, а не каждый раз при изменении исходного состояния.

val showScrollToTop by remember {
derivedStateOf { listState.firstVisibleItemIndex > 3 }
}


Научитесь правильно это использовать: это критически важно для UI-логики, завязанной на прокрутке./

4️⃣ Modifier.drawBehind — кастомные фоны без Box

Забудьте о вложенных layout-контейнерах только ради того, чтобы нарисовать собственную форму или градиент. drawBehind даёт вам прямой доступ к Canvas прямо внутри модификатора.

Text(
text = "Hello",
modifier = Modifier.drawBehind {
drawRoundRect(
color = Color(0xFF00D4AA),
cornerRadius = CornerRadius(12f)
)
}
)


5️⃣ SubcomposeLayout — измерение размеров дочерних элементов относительно других дочерних элементов.

Принцип, лежащий в основе ScaffoldBoxWithConstraints и наших кастомных систем компоновки, где размер одного компонуемого элемента необходимо измерить перед компоновкой другого, заключается в том, что компонуемые элементы не знают своего собственного размера.

Знание о его существовании обычно является большей частью необходимого — и большинству разработчиков никогда не приходится это писать — но это объясняет, как работают сложные компоновки.

📌 Лучшие вакансии для мобильных разработчиков

🐸 Библиотека мобильного разработчика

#свежак #MiddlePath #Kotlin
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
🔨 Android Performance Analyzer запускается как отдельное десктоп-приложение и не требует ни проекта в Android Studio, ни Gradle-сборки.

Google показала новый профайлер на I/O 2026. APA пришёл на смену Android GPU Inspector и сразу доступен в открытой бете. Поставляется в двух вариантах: лёгкое standalone-приложение под Windows, macOS и Linux, и встроенный System Trace viewer в Android Studio в канареечных сборках Panda 4 и новее.

В этом релизе доступен System Profiler. Он показывает CPU, GPU, память и энергопотребление приложения в одном окне.

Под капотом Perfetto для системного трейсинга, можно открывать и существующие Perfetto-трейсы. GPU-счётчики читаются с железа Qualcomm, Arm, Imagination и Samsung (про Tensor ничего), есть события SurfaceFlinger по конвейеру рендера, треки FPS и времени кадра. Из рабочих мелочей появились вкладки и сплит окна для сравнения трейсов, проектная модель для A/B-тестов и скриншоты для навигации по таймлайну.

🧠 APA анализирует трейсы через SQL-запросы и идёт с Perfetto SQL skill для ИИ-агентов, так что запрос строится без знания схемы Perfetto. Perfetto Analysis отвечает на высокоуровневые вопросы вроде «почему медленно стартует приложение».

По заявлениям разработчиков рендеринг трейса в APA в 6–26 раз быстрее, чем в Android GPU Inspector, и стабильнее на больших данных. Лучший опыт по системным метрикам и GPU-счётчикам — на устройствах с Android 12 и выше.

Меня радует здесь формат, а не сам профайлер. Standalone-инструмент, который ставится за минуту и не тянет за собой тяжёлую IDE, это правильное направление. Android GPU Inspector тоже был отдельным приложением, так что путь не новый, но APA впервые собрал в standalone не только графику, а ещё CPU, память и энергопотребление. Очень жду когда начнется распил инструментов из Android Studio.

#Android #AndroidDev #Производительность #Performance #AndroidStudio
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
😁 Android CLI получил stable 1.0, и его главная команда тянется обратно в Android Studio.

Android CLI это тонкая прослойка между ИИ-агентом и Android-тулчейном. Работает с любым агентом: Claude Code, Codex, Gemini, Antigravity. Обновляется командой android update.

Стоит понять, что CLI делает сам, а что нет. Сам он умеет то, чему не нужно понимание кода: создать проект, поставить зависимости, собрать, поднять эмулятор, задеплоить. Это обёртка над gradle, adb и SDK-тулзами, работает откуда угодно.

«Умные» операции CLI проксирует в запущенную Android Studio через новую команду android studio. Студия тут работает как бэкенд: analyze-file гоняет инспекции IDE, find-declaration и find-usages ищут символы через семантический индекс проекта, render-compose-preview отдаёт картинку Compose-превью из рендер-движка студии, version-lookup подтягивает актуальные версии зависимостей. Команда android studio check показывает pid живого процесса студии и статус проекта READY: CLI разговаривает с уже открытым инстансом по локальному каналу. Студия не запущена, у агента остаются только сборка и деплой, всё умное отваливается.

Ещё в релизе появились Journeys, сценарии на естественном языке для прогона по приложению, а библиотеку скиллов пополнили миграцией на CameraX, Perfetto SQL и Compose Style API.

Также появилась интеграция с Android разработкой в Antigravity на основе Android CLI

🤔 Меня в таких мостах к IDE смущает привязка к одной открытой папке проекта. MCP-сервер для Android Studio я по этой причине так и не стал использовать: работаю через git worktree, держу несколько папок-проектов одновременно, а мост видит только главную.

🔗 Источник Android Dev Blog

#Android #AndroidDev #AI #ИИ #AndroidStudio
Forwarded from Android Broadcast
🤖 ADB Wi-Fi 2.0

Беспроводной ADB наконец перестанет быть лотереей. С Platform Tools v37 и Android 17 устройство остаётся подключённым даже если сменить сеть или перезагрузить Mac. Просто продолжаешь работать.

Раньше при закрытии крышки ноутбука в устройство теряло соединение и подключайся снова. Теперь этот ритуал уходит. Устройства с включённым Wireless Debugging автоматически появляются в Device Manager Android Studio без каких-либо дополнительных действий.

Работает не только с телефонами, но и с часами, что актуально при разработке для Wear OS, где физическое подключение всегда было отдельной болью.

⚠️ Требования жёсткие: нужен Android 17 на устройстве и Android Platform Tools v37 или новее. Для большинства девайсов на руках это пока недоступно. Фича - задел на будущее.

#Android #AndroidDev #AndroidStudio
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕 Flutter 3.44

Команда Flutter представила версию 3.44, которая включает ряд значительных обновлений. Среди ключевых изменений — Hybrid Composition++ для Android, переход на Swift Package Manager в качестве стандартного менеджера пакетов для iOS/macOS и улучшенная поддержка Vulkan для Impeller.

Также представлена предварительная версия поддержки многооконного режима для настольных платформ. Canonical становится ведущим разработчиком проекта.

В рамках масштабной архитектурной эволюции Material и Cupertino отделяются от основного фреймворка. Внедряются новые подходы к UX для агентного взаимодействия с пользователями (GenUI) и инструменты для разработчиков: Agentic Hot Reload, Dart & Flutter Agent Skills.

Flutter 3.44 уже используется в мультимедийной системе Toyota RAV4 2026, а также готовится SDK для webOS от LG.

👉 Читать статью

📌 Лучшие вакансии для мобильных разработчиков

🐸 Библиотека мобильного разработчика

#свежак #Flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
Compose Multiplatform 1.11: iOS становится ближе к нативному ощущению

Кроссплатформенный UI часто ломается на мелочах: курсор в text field, selection handles, жесты, системное меню. В Compose Multiplatform 1.11 JetBrains как раз двигает эти детали на iOS, а не только добавляет ещё один общий API.

В релизе есть experimental native text input поверх UIView, concurrent rendering по умолчанию, обновлённые Compose UI test APIs v2 и переработанная обработка touch для web targets. Для мобильных команд это хороший набор сигналов: где shared UI уже зрелый, а где нужна проверка на устройстве.

Можно изучить релиз и выбрать, что тестировать в своём KMP-приложении. В деталях особенно полезны ограничения новых text input API и изменения в тестах.

@mobi_dev (теперь и в Max)
🤖 Google анонсировала ADK for Android 0.1.0 вместе с ADK for Kotlin

ADK (Agent Development Kit) - это open-source фреймворк для AI-агентов, и теперь у него есть Android-артефакт с поддержкой on-device моделей.

Ключевая архитектурная идея: облачный оркестратор ведёт диалог с пользователем и координирует работу. Когда нужно обработать приватные данные - документы, брони, личные файлы - он делегирует subagent'у, который работает на устройстве через ML Kit GenAI и AICore. Данные за пределы устройства не уходят.

В стек входят LLM-агенты, sequential agents, MCP tools, session state и long-term memory через Memory service, OpenTelemetry для наблюдаемости.

Можно использовать три варианта моделей:
👉 ML Kit GenAI для on-device Gemini Nano
👉 Firebase AI Logic для облачного Gemini
👉 Google GenAI для быстрого прототипирования.

‼️ ВАЖНО: версия 0.1.0, статус "В активной разработке". Это очень ранний экспериментальный релиз, не для продакшна.

Архитектурный паттерн с разделением на облачный оркестратор и on-device агент выглядит разумно - именно так я бы и хотел видеть подобный инструмент. Но внедрять в прод рано.

🔗 Источник Android Dev Blog

#Android #AI #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from StartAndroid
What's new in Android development tools, Google I/O 2026

#googleio #android

https://www.youtube.com/watch?v=N4GgGBKnHe4
Forwarded from Android Broadcast
🤖 R8 Configuration Analyzer - удобный способ изучить как ваша конфигурация R8 влияет на итоговый код в сборке

Keep rules из сторонних библиотек часто написаны с запасом: разработчик библиотеки не знает, как именно вы её используете, и кладёт широкое -keep class com.library.** { *; }. R8 видит это и выключает оптимизацию для всего пакета, даже если вашему приложению нужны оттуда три класса. AGP 9.3.0-alpha05 добавил инструмент, который это наконец показывает с цифрами.

Configuration Analyzer генерирует HTML-отчёт, в котором по каждому keep rule и по каждой библиотеке видны три метрики:
👉 Shrinking score - процент кода, доступного для удаления неиспользуемых классов и методов
👉 Optimization score - процент кода, доступного для инлайнинга, мёрджинга классов и прочих R8-оптимизаций
👉 Obfuscation score - процент кода, доступного для обфускации имён

Начиная с AGP 9.3.0-alpha05 отчёт генерируется автоматически в build/outputs/mapping/release/configanalyzer.html при каждом билде с квлюченной минификацией. Для AGP 9.2 и ниже нужно при запуске ./gradlew assembleRelease передать системный флаг com.android.tools.r8.dumpkeepradiushtmltodirectory с путём до папки куда сохранить отчет.

Помимо широких правил анализатор выделяет ещё два типа мусора:
👉 unused rules, которые не матчат ни один класс в текущем билде (обычно появляются после рефакторинга)
👉 subsumed rules, когда одно широкое правило перекрывает другое и делает его бессмысленным.

‼️ ВАЖНО: требует R8 9.3.7-dev, который идёт в комплекте только с AGP 9.3.0-alpha05. Это ранняя alpha. На продакшн-сборки без тщательной проверки не стоит.

Это первый инструмент с конкретными цифрами по влиянию сторонних библиотек на R8. Раньше это была область догадок и ручного анализа mapping-файлов. Теперь можно прийти к мейнтейнеру с отчётом и показать: вот твоё правило, вот 35% заблокированной оптимизации у нас в проекте. Круто если такой отчет можно будет получить как XML/JSON чтобы встраивать в другие инструменты.

#Android #AndroidDev #R8 #Performance #agp #Произодвительность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🏝 Вышел Kotlin 2.4.0 Stable

👉 Язык: стабильные контекстные параметры, явные backing-поля и несколько нововведений для use-site таргетов аннотаций.
👉 Стандартная библиотека: стабилизация UUID API
👉 Kotlin/JVM: поддержка Java 26 и аннотации в метаданных включены по умолчанию.
👉 Kotlin/Native: поддержка SPM как зависимостей, обновления Swift export и CMS GC включён по умолчанию.
👉 Kotlin/Wasm: инкрементальная компиляция включена по умолчанию и поддержка WebAssembly Component Model.
👉 Совместимость с Gradle 9.5.0.
👉 Компилятор Kotlin: более согласованное поведение inline-функций при компиляции в .klib.

🔗 Полный список изменений

#Kotlin #Kotlin240
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Вышла Gemma 4 12B и она запускается локально на 16GB RAM. Понимает текст, картинки и аудио в одной модели

До этого мультимодальные модели работали так: картинку сначала обрабатывает отдельный блок, аудио тоже через свой. Каждый такой блок ест память и добавляет задержку. Gemma 4 12B делает это без посредников. Картинка и звук идут прямо в модель. Один пайплайн для всего.

На практике это значит меньше памяти под инфраструктуру и выше скорость отклика. Модель запускается на железе с 16GB VRAM (не потребляет, а столько оперативки в компе надо) или unified memory, то есть MacBook Pro с M3 тянет без проблем. Apache 2.0, весы на Hugging Face и Kaggle, запуск через Ollama или LM Studio.

Задачи, которые это открывает:
👉 локальный агент с пониманием скриншотов и голоса
👉 анализ изображений без отправки данных в облако
👉 голосовой ввод прямо в агентный пайплайн.

Для тех, кто строит агентов с приватными данными или просто не хочет зависеть от API-ключей и облачных лимитов — это рабочий вариант.

Мне интересно попробовать именно в связке с локальным агентом: один инстанс, текст плюс скриншот плюс аудио, без облака. Посмотрим, насколько это работает на практике, а не только на бенчмарках.

🔗 Оф анонс

#AI #Gemma
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM