Compose Broadcast
Відкрити в Telegram
Все о Jetpack Compose и Compose Multiplatform По сотрудничеству - @ab_manager
Показати більше5 890
Підписники
+124 години
-77 днів
-1330 днів
Архів дописів
5 890
🤖 Instagram Direct (мессенджер внутри приложения) переписали на Compose и результаты ВАУ
Meta с Google сделали мессенджер "AI native" на Compose. Это значит что теперь агенты лучше пишут код и тратят на это меньше времени и токенов. Ключ - меньше способов агенту давать смешивать императивное (XML/View) с декларативным (Compose) и нагенерить багов.
Какие заявленные итоги:
👉 UI-кода стало меньше примерно наполовину меньше
👉 После перехода статистика: расход токенов сократился на 33%, время на выполнение задач сократилось на −35% (очень спорная метрика), инженеры стали меньше вмешиваться в сессии на −32%
👉 Заявляют об улучшение производительности UI
На самом деле - это всё мифы! Там не просто переход на Compose помог, а еще оптимизация кода вокруг него, но вот "AI native" - это кажется новый подход к коду, чтобы с ним эффективно работали агент. Сюда же идут Quality Gate и контроль качества через CI/CD
🔗 Источник - официальный блог Android Developers
#Compose #AndroidDev #AI
5 890
⚡️⚡️Когда API недостаточно: хардкорные доклады на Mobius
Mobius — профильная конференция по мобильной разработке: здесь встречаются разработчики, архитекторы, DevOps-инженеры, тестировщики и тимлиды, чтобы разбирать технологии iOS, Android, Аврора ОС, Flutter и Kotlin Multiplatform.
📅21–22 октября, Санкт-Петербург + online
Собрали в карточках несколько докладов для тех, кому интересно заглянуть глубже готовых API и библиотек. Внутри — внутреннее устройство Kotlin Flow, NFC internals в Android, Liquid Glass и Metal, шейдеры, портирование KMP-приложения на Аврора ОС и инструмент для AI-агентов.
Это только небольшая часть программы Mobius — в ней еще десятки докладов и разные форматы для мобильных разработчиков.
Листайте карточки и переходите на сайт, чтобы посмотреть полное расписание.
🌟По промокоду
composebroadcast персональные билеты дешевле
[Купить билет]
Реклама. ООО «Джуг Ру Груп». ИНН 78013414465 890
🤖 Wear Compose 1.7.0: жесты одной рукой и айтемы, которые уезжают за край, а не фейдятся
👉 Одноручные жесты теперь официально через API: оснвое действие — double-pinch, отмена — поворот запястья. На кнопках, карточках, списках и пейджерах рисуются индикаторы, когда жест доступен.
👉 В
TransformingLazyColumn уходящий айтем может сдвинуться за край вместо анимации fade.
👉 SwipeToReveal перестал ломаться на nested scroll и быстрых флингах.
Тестировать надо на реальных часах, надетых на руку человека.
#Compose #WearOS #JetpackCompose5 890
👨🏻💻 ИИ в разработке: как выбрать модель и не сломать себе мозг?
Подключить нейросеть к IDE — полдела. Сложнее — получать рабочий код, а не мусор. Всё решают выбор инструмента и чёткое ТЗ.
🗓 8 октября в 20:00 по мск встречаемся на открытом вебинаре курса «Android-разработчик. Продвинутый уровень».
💡Разберём:
— Классы ИИ-моделей и задачи для делегирования.
— Сравнение моделей под ваш стек.
— Prompt Engineering: как ставить задачу без «галлюцинаций».
— Интеграцию моделей в Android Studio: нюансы настройки.
На примерах посмотрим, что учитывать при подключении и использовании ИИ в среде разработки.
❗️Кому полезно: Разработчикам с опытом, кто уже использует ИИ или только планирует — и хочет делать это осознанно.
После вебинара вы поймёте, как выбрать модель и как ставить ей чёткие запросы, чтобы получать рабочий результат.
👉 Зарегистрироваться по ссылке
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
5 890
⚙️ Эффект размытия и стекла для Compose Multiplaftom - вышел Haze 2.0
```kotlin
Modifier.hazeGlass(
input = HazeInput.Sources(hazeState),
style = GlassStyle.regular.then {
shape(RoundedCornerShape(20.dp))
tint(Color.White.copy(alpha = 0.16f))
},
)
🔗 Документация библиотеки
🔗 Бенчмарки как работают эффекты
🔗 Миграция с Haze 1.0 на 2.0
#Compose #CMP
5 890
🐱 SIGO (Should I go outside?) - самое правильное приложение про погоду, дающее важный ответ - стоит ли выходить на улицу. Еще бы рассказала как стоит одеться или нет 😁
Из плюсов - всё open source и на современном стеке Compose Multiplatform и Kotlin Multiplatformс с поддержкой Android, iOS, Desktop
🔗 Можно поставить из 🛒 Google Play и App Store
#Compose #Android #Desktop #iOS #Пример
5 890
⚙️ Вышел Compose HotSwan 2.0.0 - Hot Reload для Android, iOS и Desktop. В новой версии прокачали движок определения изменений.
Полезно как для людей, так и для разработки с AI агентами, так как не приходится прокликивать приложение до экрана при каждых изменениях, что экономит токены.
💰Решение платное - 5$/месяц, есть триал на 2 недели.
💬 Если кто уже пробовал - делитесь опытом в комментариях
#Compose #CMP #Android #Desktop #iOS
5 890
⚙️ Compose Web можно выложить как офлайн-приложение
В Issue CMP-10781 в официальном баг-трекере CMP Константин Цховребов расписал рецепт офлайн-приложения Compose Web: после Gradle-задачи
wasmJsBrowserDistribution отдельная задача (исходный код в issue) копирует статику, вычисляет SHA-256 по путям и содержимому и генерирует service-worker.js.
Что получается на практике:
👉 index.html, JS, Wasm и Compose Resources кладутся в Cache Storage
👉 SW перехватывает только эти файлы
👉 запросы к API идут в сеть как обычно
👉 новая сборка меняет версию кэша и удаляет старый
Ограничения:
👉 cache.addAll() падает, если не скачался хотя бы один файл из списка
👉 source maps тоже попадают в кэш, если не отфильтровать
👉 новая версия подхватится только при следующем запуске
Это не официальная задача в плагине CMP и не «PWA из коробки», а лишь рецепт, который вполне может стать частью официального плагина в будущем.
#Compose #CMP #Wasm5 890
Repost from Aurora Developers
🚀 Вышла новая альфа-версия адаптации CMP для ОС Аврора (v0.0.5)
Прошёл квартал — а значит, вышла новая альфа-версия адаптации CMP для ОС Аврора. Рассказываем, что изменилось.
🛠 Инструментарий разработчика
- Плагин для IntelliJ IDEA для быстрого старта
- Автопринятие разрешений при запуске приложений
- Возможность указать дополнительные файлы при сборке RPM
✨ Расширение возможностей фреймворка
- Создания обложек приложения используя Compose
- Открытие URI с системным диалогом выбора приложения
- Поддержка ориентаций приложения
- Новая библиотека адаптивных иконок ОС Аврора
- Полная поддержка экранной клавиатуры — предиктивный ввод и автокоррекция
🚗 Аврора автомобильная
- Поддержка обложек/виджетов
- Улучшена стабильность работы фреймворка
📱 Референсные приложения
- Новое демо-приложение «Погода»
- Темплейт для быстрого старта разработки
- Обновление всех демострационных приложений
✅ Качество и стабильность
- Исправления и общая стабилизация фреймворка
Новая версия уже доступна для разработчиков.
Пробуйте прямо сейчас — все примеры и API в документации.
👉 Документация
Проект по адаптации CMP для ОС Аврора продолжает развиваться как открытый проект на mos.hub — присоединяйтесь к разработке, чтобы внести свой вклад и повлиять на будущее фреймворка. Мы открыты к вашему коду и экспертизе. Только #ВМЕСТЕ мы сможем сделать инструмент максимально полезным для всего сообщества.
👉 Репозиторий
5 890
🐱 compose-recomposition-highlighter - отслеживание статистики рекомпозиций в Android
Следит за теми Composable где проведете инициализацию
@Composable
fun AppContent() {
Box(modifier = Modifier.fillMaxSize()) {
YourMainNavigation()
// Attach floating Recomposition HUD & Bottom Sheet
ComposeRecompositionOverlay()
}
}
#Compose5 890
⚙️ Compose Multiplatform 1.12.0 вышел, а tvOS в списке поддерживаемых платформ как не было, так и нет: Android, iOS, macOS, Windows, Linux, веб. Дыру закрывает compose-tvos, и интересен он не столько самим tvOS, сколько приёмом.
Плагин через
ComponentMetadataRule подвешивает available-at вариант с tvOS-klib к официальному org.jetbrains.compose.*. Дальше решает штатный variant resolution Gradle: tvOS-таргет забирает форк, а iOS/Android/Desktop продолжают резолвить артефакт JetBrains.
Отдельно перехватывается маркер плагина через pluginManagement.resolutionStrategy.eachPlugin, чтобы работала упаковка Compose Resources.
// settings.gradle.kts
plugins {
id("dev.sajidali.compose-tvos") version "1.3.0"
}
Всё, dependencies {} не меняешь. Приём годится далеко за пределами tvOS: так же можно подсунуть свою пересборку любой чужой библиотеки, у которой не хватает таргета.
⚠️ Под капотом форк 15 групп библиотек Compose и AndroidX, опубликованный одним человеком. Автор прямо пишет, что тянет его ровно настолько, насколько нужно для собственного приложения: ни обязательств, ни расписания релизов. Держать compose.runtime и compose.ui в проде из такого источника решение уровня «мы понимаем, на что подписались». Форк сейчас держит линию 1.12, но догонять апстрим ему придётся руками
Смотреть стоит ради механики. Тащить в прод - явным фанатам поддержки tvOS из CMP.
#Compose #ComposeMultiplatform #KMP #Gradle5 890
⚙️ Compose Remote добрался до первой Альфы. Это реализация BDUI (верстка приходит с сервера) на основе Compose от Google!
💬 Нужно ли оно вам?
#Compose #Android #Remote #BDUI
5 890
⚙️ Новый выбор текста Compose 1.12 — SelectionContainer и SelectionState API
В Compose 1.12 у SelectionContainer появился hoisted-state: SelectionState. Раньше весь механизм выделения был спрятан внутри текстовых полей. Теперь же стало возможно:
👉 читать выбранный текст реактивно
👉 выделять программно: всё / диапазон / по словам
👉 сбрасывать выделение
👉 искать цитату по всему контейнеру, даже если она размазана по нескольким
Text
// Один SelectionState нельзя шарить между несколькими SelectionContainer
val state = rememberSelectionState()
SelectionContainer(state = state) {
Text("Text to be selected...")
}
val selectedTexts : List<AnnotatedString> = state.selectedTexts
Text("Выбрано символов: ${selectedTexts.sumOf { it.text.length }}")
По умолчанию перевод фокуса сбрасывает выделение, поэтому интерактивные элементы, которые не должны это сделать, стоит помечать Modifier.disableSelectionClearOnTap().
@Composable
fun ProgrammaticSelectionExample() {
val state = rememberSelectionState()
Column {
Button(
onClick = { state.clear() },
modifier = Modifier.disableSelectionClearOnTap()
) { Text("Clear") }
SelectionContainer(state = state) {
Text("Text content to be selected programmatically.")
}
Text("Selected: ${state.selectedTexts.joinToString { it.text }}")
}
}
#Compose5 890
⚙️ Compose Multiplatform 1.12.0: AI агент наконец видит, что написал
Вышел стабильный CMP 1.12.0.
Главное в релизе - MCP в Compose Desktop Hot Reload 1.2.0. Раньше агент правил
@Composable вслепую: не знал, прошёл ли reload, что на экране, не упало ли. Теперь есть сервер с нормальными тулами. Поднимается таской, в .mcp.json достаточно hotMcpServer:
{
"mcpServers": {
"compose-hot-reload": {
"command": "./gradlew",
"args": ["--no-daemon", "--quiet", "--console=plain", "hotMcpServer"]
}
}
}
Много фиксов и улучшений для Desktop, Web, iOS. Еще отдельно расскажу постами в @compose_broadcast
🔗 Полный список изменений
#Compose #CMP #Desktop #AI5 890
Vercel представил Agent Plugins 1.0.0 — открытый стандарт для плагинов, расширяющих AI-агентов
Те, кто делал плагины для ИИ-кодинг-агентов, знают про неудобство с поддержкой плагинов для всех инструментов. Теперь должно стать легче! Agent Plugins — это общий, вендор-нейтральный стандарт упаковки Agent Skills (инструкции и ресурсы) и MCP-серверов (инструменты и сервисы) в единый дистрибутив.
Как это работает?
Плагин — это директория с манифестом
plugin.json и фиксированной структурой:
my-plugin/ ├── plugin.json ├── skills/ │ └── summarize/ │ ├── SKILL.md │ ├── scripts/ │ └── references/ ├── mcp.json └── com.example.client/Клиенты проверяют
plugin.json, находят Skills в skills/, а конфигурацию MCP — в mcp.json. Компоненты валидируются независимо — ошибка в одном не ломает другие.
Ключевые особенности:
📦 Один пакет для всех клиентов — больше не нужно переупаковывать компонент под каждый формат.
🎯 Small on purpose — стандарт определяет только контракт обнаружения и загрузки, оставляя клиентам свободу в UX, политиках и инновациях.
🔧 Гибкость для клиентов — через механизм неймспейсов можно добавлять клиент-специфичные расширения без загрязнения общего формата.
🏢 Открытый мультивендорный проект — инициатива Vercel, доработанная совместно с AWS, Anysphere (Cursor), GitHub, Microsoft и OpenAI. Технический комитет состоит из AWS, Cursor, Microsoft, OpenAI и Vercel.
Где уже поддерживается:
- ChatGPT и Codex
- Cursor
- GitHub Copilot
- Kiro
- VS Code
Плагины, упакованные по этому стандарту, автоматически работают во всех перечисленных клиентах.
Для авторов расширений (подключение) — документация и схемы JSON на agent-plugins.org.
Для разработчиков AI-агентов (интеграция формата) — чеклист соответствия в репозитории спецификации.
#AI