Фотография
нажмите — покажем
нажмите — покажем
Видео
image1786546522.mp4 · 1.7 МБ · нажмите — покажем
image1786546522.mp4 · 1.7 МБ · нажмите — покажем
Видео
image1786546567.mp4 · 228 КБ · нажмите — покажем
image1786546567.mp4 · 228 КБ · нажмите — покажем
🚀 Jetpack Compose 1.12.0 [update]
https://android-developers.googleblog.com/2026/08/jetpack-compose-august-2026-release.html
Google выпустил стабильный Jetpack Compose 1.12.0 - релиз с крупным набором новых возможностей: mesh-градиенты, HDR/Wide Color Gamut, ускоренные `SideEffect, продакшен-готовые deferred-анимации, программное форматирование текста и интеграция с Credential Manager.
🟢 Mesh Gradients
Новый MeshGradientPainter позволяет строить многоточечные органические цветовые градиенты. Вершины сетки задаются через setVertex() с координатами строки/столбца и смещением позиции.
🟢 Wide Color Gamut и HDR
Полный пайплайн рендеринга теперь поддерживает Display P3 и HDR без клэмпинга цветов вне sRGB-пространства. На устройствах без поддержки (и на API ниже 28) цвета автоматически и безопасно откатываются к sRGB.
🟢 LayerOutsets
Новый параметр LayerOutsets в GraphicsLayer и Modifier.graphicsLayer расширяет визуальные границы слоя за пределы измеренного размера - полезно для теней, свечения и других эффектов, которые раньше обрезались неявным clipToBounds.
🟢 SideEffect с ключами
SideEffect теперь поддерживает key-аргументы для одноразовых эффектов, срабатывающих только при изменении конкретных ключей. По бенчмаркам команды Compose - до 90% быстрее LaunchedEffect и примерно на 20% быстрее DisposableEffect.
SideEffect(key = userId) {
analytics.logUserChanged(userId)
}
🟢 Deferred-анимации перешли в стабильный статус
DeferredTargetAnimation вышел из experimental. Добавлены DeferredAnimatedContent и DeferredAnimatedVisibility - composable для gesture-driven анимаций с плавной передачей в автоматический переход, ручным управлением свойствами на deferred-фазе и передачей velocity. Для shared element transitions добавлен флаг permitTransformDuringDeferredTransition.
🟢 Rich-text редактирование и Selection API
BasicTextField научился программному rich-text форматированию через SpanStyle`/`ParagraphStyle и addStyle() в TextFieldBuffer, с методами getSpanStyles() и getP
1.8K · Фотография
нажмите — покажем
1.7K · нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Пока просто порадуюсь, что мой первый личный релиз приложения состоялся на Авроре и в RuStore
А завтра еще и пост вам накатаю как это было
2.8K · Фотография
нажмите — покажем
нажмите — покажем
🐤 Android 18 Canary — три API, которые можно попробовать уже сейчас
https://freedium-mirror.cfd/https://medium.com/@androidlab/android-18-canary-preview-the-new-apis-every-android-developer-should-try-now-7a889aa14a8a
Автор обращает внимание на то, что Google, по его словам, отказался от прежней модели Developer Preview в пользу непрерывных ежемесячных Canary-сборок - пропустил билд, пропустил API.
3️⃣ Три вещи из свежих канареек, которые он выделяет:
1. AppFunctions (Android MCP) - приложение само становится on-device MCP-сервером. Gemini или любой другой агент вызывает функции приложения через чёткий интерфейс вместо скрейпинга UI:
@AppFunction(description = "Add an item to the user's grocery list")
suspend fun addGroceryItem(
itemName: String,
quantity: Int = 1
): AppFunctionResult {
val entry = GroceryEntry(name = itemName, qty = quantity)
groceryRepository.insert(entry)
return AppFunctionResult.success("Added $itemName x$quantity")
}
2. Hybrid Inference в Firebase AI Logic - динамическая маршрутизация между on-device и облаком вместо выбора на этапе сборки: PREFER_ON_DEVICE, PREFER_CLOUD, ONLY_ON_DEVICE.
val config = InferenceConfig.Builder()
.setOrchestrationMode(OrchestrationMode.PREFER_ON_DEVICE)
.build()
3. Zero-config peer-to-peer сеть эмуляторов для мультидевайс-тестирования без ручного проброса портов, и ADB Wi-Fi 2.0, который не рвётся при смене сети или сне машины.
——————
💭 Эти API уже в SDK Manager - может быть что-то полезно).
Telegram | Селеба | YouTube
1.6K · Фотография
нажмите — покажем
нажмите — покажем
🧑💻 Claude Code для мобильной разработки - сетап одной команды
https://freedium-mirror.cfd/https://levelup.gitconnected.com/claude-code-for-mobile-developers-d464d87fbf15
Автор разбирает, как в своей команде настроили Claude Code под iOS/Android-кодовые базы - от выбора между подпиской и API до конкретных плагинов и конфигов, которые реально дают эффект на мобильном проекте.
☝️В статье — практическое правило по выбору модели под задачу (архитектура vs рутина), как собрать CLAUDE.md так, чтобы он не жрал контекст впустую, разница между skills/plugins/MCP и конкретные рекомендации под мобильную разработку.
🔒 Отдельный и самый ценный блок — про безопасность плагинов: разбор популярного Superpowers и предупреждающая история с другим фреймворком, где вскрылись реальные проблемы с доверием. Плюс задокументированные атаки на экосистему плагинов Claude Code и практическая гигиена, как от них защититься.
——————
💭 Интересный разбор сетапа Claude Code под мобильную разработку, с реальными деталями про безопасность. Думаю, всем будет полезно и что-то можно взять для себя.
Пишите в комментарии свои советы)
Telegram | Селеба | YouTube
1.5K · Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
OpenMattermost (Аврора) в RuStore
Итак, это пятая и заключительная часть моего приключения по переносу приложеньки из Реакт Натива (смешанного со всяким) в Аврора Flutter приложение. Приключение получилось забавным и не сказать, что очень сложным, поэтому теперь, я надеюсь, что это попробуют и остальные инженеры, но прежде, чем перейти к выводам, я хотел бы рассказать про релиз
В общем и целом, релиз в RuStore оказался реально простым для Авроры и тут ребята постарались.
Вам нужно будет
1. Залогиниться (это легко)
2. Получить специальный сертификат разработчика под Аврору (им будут подписаны приложения)
3. Залить два вида файлов под 32х-битную и под 64х-битную архитектуру
4. Заполнить описания, скриншоты и тд (обязательно предоставьте тестовые данные, если у вас есть логин, меня первый раз завернули именно за это)
5. Пройти модерацию и хопа, вы уже в релизе!
Собственно, я все это проделал и теперь вы можете видеть мое приложение вот на картинках, ну или скачать по ссылкам ниже. Для именно Аврора пути у Рустора мне кажется не хватает еще немного тестирования, видимо крайне редко этим путем пользуются, но в целом все отработало на 95%. Я думаю, что чем больше вы будете засылать свои приложения, пользуясь путем, который я описал, тем лучше этот путь будет работать
У меня еще уточняли данные по ИНН, прежде чем выдать мне сертификат. Ну и я уже получил некоторый фидбэк по приложению от первых скачавших. Если вкратце, то мелкие косячки есть, но, в целом, ничего критичного, так что я думаю, что эксперимент можно признать состоявшимся
В этом мире очень много сервисов с открытым API, поэтому вы можете уже сегодня дать экосистеме Авроры много отличных приложений без особых вложений с вашей стороны (сегодня нейронка есть уже у всех вообще, а токены часто жгутся на какую-то фигню). Тут вы можете сделать вклад в развитие нашей экосистемы
Безусловно есть над чем еще работать, но первый шаг сделан, думаю, что нейронки сильно изменят подход к новым ОС, но об этом
1.8K · Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
Фотография
нажмите — покажем
1.8K · нажмите — покажем
Фотография
нажмите — покажем
нажмите — покажем
🎯 Матрица снапшот-тестов: parameterized JUnit vs TestBalloon
https://freedium-mirror.cfd/https://emartynov.medium.com/the-snapshot-test-matrix-two-ways-parameterized-junit-vs-testballoon-d4015c495efc
27 состояний экрана × 5 конфигураций (baseline, тёмная тема, самая длинная локаль, планшет, увеличенный шрифт) = 135 golden-картинок. Автор показывает два способа сгенерировать эту матрицу тестов на одном и том же стеке - Roborazzi на Robolectric.
🛤🛣Первый - устоявшийся путь через ParameterizedRobolectricTestRunner. Второй - DSL на TestBalloon, где сьют это просто Kotlin-выражение, а не аннотации, и матрица собирается обычным циклом.
В статье - рабочий код обоих подходов, чем композиция в TestBalloon отличается от «переговоров с фреймворком» в JUnit, и честная ложка дёгтя в конце - баг в текущем публичном релизе TestBalloon, из-за которого автор сидит на экспериментальной ветке.
——————
💭 Хороший практический разбор двух моделей тестирования на реальной задаче. Полезно тем, кто пишет snapshot-тесты на Compose.
Telegram | Селеба | YouTube
645 ·