Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
🚀 Google выпустила androidx.webgpu:webgpu:1.0.0-alpha01 — WebGPU нативно в Android-приложения.

WebGPU — это новый графический и вычислительный API, который приходит на смену устаревающему WebGL. Его цель — дать разработчикам современный доступ к GPU для тяжёлых визуальных и вычислительных задач как в вебе, так и теперь — в Android, благодаря androidx.webgpu. Если упрощённо — WebGPU открывает дверь к автоматически оптимизированной работе с видеокартой без необходимости использовать низкоуровневые графические движки.

Что даёт WebGPU разработчикам:
🧩 Современная графика уровня Vulkan/Metal/DX12
⚙️ Compute-шейдеры для вычислений прямо на GPU
🚀 Высокую производительность рендеринга и ML-вычислений
🔁 Кроссплатформенность: единый подход Web + Android (и не только)
📦 Потенциально меньше нативного кода на C++/NDK
🧪 Удобный доступ к GPU-фичам для прототипов и экспериментов

Версия для Android пока в alpha, API нестабилен, документации немного. Но это важный шаг: Google фактически легализует WebGPU как будущий GPU-базис на Android.

#AndroidDev #Android #Jetpack #AndroidJetpack #WEB #GPU
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥91
📹 Архитектура, которая не ломается | FlowMVI Часть 2

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

#Android #KMP #MVI #Архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔20👍8🔥3🆒1
🤖 Android 16 QPR2: системный шаринг наконец стал интерактивным

Раньше системный шузер для шаринга был «односторонним»: вы собрали Intent, отдали его в Intent.createChooser(...) — и дальше всё полностью контролирует система.

После открытия sharesheet вы уже не можете:
👉 обновить текст или вложения;
👉 убрать/добавить таргеты;
👉 синхронизировать состояние с продолжающимся действием в приложении.

Если пользователь что-то поменял (например, отредактировал текст или выбор вложений), приходилось закрывать шузер и открывать его заново.

Не так давно была возможность изменить контент для шаринга из шузера (сделали похожим как в iOS), а также добавить действия.

В Android 16 QPR2 / API 36.1 появился новый механизм — Interactive Chooser Sessions. Теперь приложение может держать живую сессию шаринга, обновлять её и получать события, пока открыт системный sharesheet. Для этого используются ChooserManager и ChooserSession.

// Базовый пример: запуск интерактивной сессии (Kotlin)
val chooserManager: ChooserManager = context.getSystemService()

val shareIntent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(Intent.EXTRA_TEXT, "This is a message that will be shared.")
}

val chooserIntent = Intent.createChooser(shareIntent, null)

val session: ChooserSession = chooserManager.startSession(context, chooserIntent)
val token: ChooserSessionToken = session.token


token можно сохранить в ViewModel или savedStateHandle, чтобы потом восстановить сессию после поворота экрана или пересоздания Activity.

val existingToken: ChooserSessionToken = /* restore from state */
val existingSession: ChooserSession = chooserManager.getSession(existingToken) ?: return


Управление сессией через ChooserSession API

val executor: Executor = ContextCompat.getMainExecutor(context)

session.addStateListener(executor, object : ChooserSession.StateListener {
override fun onStateChanged(state: Int) { }

override fun onBoundsChanged(bounds: Rect) { }
})


Временное отключение таргетов на время долгой операции:
session.setTargetsEnabled(false)

val updatedShareIntent = Intent(Intent.ACTION_SEND).apply {
type = "text/plain"
putExtra(Intent.EXTRA_TEXT, "Updated message generated in runtime")
}

val updatedChooserIntent = Intent.createChooser(updatedShareIntent, null)
session.updateIntent(updatedChooserIntent)

session.setTargetsEnabled(true)

// Завершение сессии, когда шаринг больше не нужен:
session.endSession()


#Android #Android16
Please open Telegram to view this post
VIEW IN TELEGRAM
👍306
🤖 Секреты под защитой: как мы спрятали ключи приложения с помощью Gradle-плагина

Автор статьи показа пример написания Gradle плагина который кладет секретный ключи в код и выполняет их минимальную защиту через побитовый сдвиг. Не панацея, но как минимум стоит делать такое

#Android #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔16👍61
🏝 Основы AGSL для android разработчика (17м)

AGSL (Android Graphics Shading Language) — это язык программирования фрагментных шейдеров, представленный в Android 13 (API 33), который позволяет разработчикам создавать сложные графические эффекты, настраивать отрисовку  Canvas  и фильтровать содержимое  View. Он глубоко интегрирован в графический движок Android (Skia), что позволяет применять GPU-ускоренные эффекты напрямую к стандартным элементам интерфейса .


Классная статья, которая описывает простым языком как рабоатет AGSL и какие преимущества дает разработчикам, а также как его начать использовать

#Android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍86
🔨 Вышла стабильная Android Studio Otter 2 Feature Drop

Команда Android Studio выпустила финальный стабильный релиз 2025 года — Otter 2 Feature Drop. Это большое обновление которое в основном строится вокруг AI

Главные нововведения:
⭐️ Прокачали AI функции с Gemini 3
🔁 Бэкап и синхронизация настроек
🤖 Прямо в Android Studio можно получить новости от Android команды про новинки (зачем???)
🛠 Основана на IntelliJ IDEA 2025.2: Kotlin K2 Mode, прокачанный терминал

#AndroidStudio #Android #AndroidDev #AI #ИИ #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥4👎1
🤖 Samsung выпустила TriFold - трикладушка с 2 экранами. Снаружи смартфон с вытянутым экраном, а внутри - планшет на 10". Цена - около 2500$ в Кореи

Складные смартфоны стали чем-то новым и реально классным, но они не взлетили. Основные причины - софт, который оставляет ждать лучшей адаптации от разработчиков, а также стоимость таких устройств.

Я хочу себе такое устройство в пользование, но вот его стоимость пока меня останавливает 😔

Вам интересно увидеть видео про историю раскладушек и почему они не взлетели и сможет ли iPhone Fold тригернуть покупателей на приобретение такого устройства? Если да - ставь ❤️ под постом
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1136👍10🤯9👎1
🪙 Все кто не считает, что мой труд стоит 300 рублей подписки на Boosty, может первым кинуть мне чек её оплаты 😁

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

Оформить подписку можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔42🤝8🤯6👍3👎2🔥2
🤖 Готовьтесь к Android Gradle Plugin 9.0 — грядут большие перемены!

Совсем скоро состоится релиз Android Gradle Plugin 9.0 (AGP), который полностью меняет подход к конфигурации Android‑проектов: удаляет устаревшие API, упрощает настройку и пересматривает организацию конфигурации.

Ключевые изменения:
👉 Переход на Gradle 9.X
👉 Поддержка Kotlin теперь встроена в AGP — подключение org.jetbrains.kotlin.android больше не требуется и даже будет рушить сборку. Из плюсов — минус один плагин.
👉 Плагин org.jetbrains.kotlin.multiplatform больше не будет работать с com.android.library и com.android.application. Используйте com.android.kotlin.multiplatform.library, а для приложения создавайте отдельный модуль.
👉 Массовые изменения в API — множество удалений без прямых альтернатив. В целом идёт отказ от старых публичных интерфейсов, ведь новые уже давно доступны, и авторы плагинов могут их использовать.
👉 Некоторые возможности конфигурации теперь будут доступны только в библиотечном плагине.

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

Подробнее обо всех изменениях — в документации

Надеюсь, Android Studio добавит ассистента по миграции. А вот авторам плагинов, похоже, прибавится работы 😅

Как вам перемены? Пойдут ли они на пользу скорости сборки и удобству использования AGP?

#Android #AndroidDev #Gradle #AGP #AndroidStudio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍367🔥5👎1
Новый игрок на рынке - Jolla Phone от создателей ОС Sailfish, которая является предком Аврора ОС

Новая модель устройства позиционируется разработчиками как преемница оригинального телефона Jolla Phone 2013 года и создана с учётом давних тенденций компании к конфиденциальности и контролю пользователей.

Jolla была основана в 2011 году бывшими сотрудниками Nokia. В 2012 году компания представила операционную систему Sailfish, которая поддерживала приложения для ОС Android.
👍184🎉2👎1
🤖 AGP 9.0: Fused Library Plugin — новый способ публикации нескольких модулей как один AAR

В Android Gradle Plugin (AGP) 9.0 и новее появился инструмент, которого ждали многие разработчики SDK и библиотек. Встречайте плагин Fused Library (com.android.fused-library). Пока в экспериментальном режиме.

Раньше, если вы разбивали свой код на много модулей, перед вами вставала дилемма: заставлять пользователя подключать 5 разных зависимостей или использовать неофициальные "fat-aar" скрипты. Теперь Google предлагает нативное решение.

Fused Library плагин позволяет взять несколько Android Library модулей и упаковать их в один AAR [1].

1️⃣ Для включения фичи надо будет добавить флаг в gradle.properties:
android.experimental.fusedLibrarySupport=true


2️⃣ Затем создаем модуль для публикации (например, my-sdk-fused). В его build.gradle.kts добавляем:

plugins {
id("com.android.fused-library")
`maven-publish`
}

androidFusedLibrary {
namespace = "dev.androidbroadcast.mysdk"
minSdk = 23
}

dependencies {
// Указываем модули для "слияния"
include(project(":core"))
include(project(":ui-components"))
// Можно вливать даже внешние либы!
include("dev.androidbroadcast:cool-fonts:1.0")
}

Обратите внимание на include — это ключевая команда для упаковки.

3️⃣ Используем компонент fusedLibraryComponent при публикации артефакта:

publishing {
publications {
register<MavenPublication>("release") {
groupId = "dev.androidbroadcast"
artifactId = "fat-sdk"
version = "1.0.0"
from(components["fusedLibraryComponent"])
}
}
}


Инструмент мощный, но есть особенности:
Data Binding не поддерживается.
⚠️ Ресурсы: При совпадении имен побеждает ресурс из зависимости, указанной первой.
⚠️ Build Types: Нельзя слить debug и release в один проход, нужны разные fused-модули.
🐞 Source JAR: Пока есть известные проблемы с генерацией исходников.

Подробнее читайте в [документации](https://developer.android.com/build/publish-library/fused-library)

#Android #AndroidDev #Gradle #AGP #Maven
Please open Telegram to view this post
VIEW IN TELEGRAM
👍38🔥165👎1
🚀 Cash App перевел Android-приложение на Metro — новый DI фреймворк для Kotlin

Команда Cash App (Block) успешно мигрировала своё Android-приложение с Anvil/Dagger на Metro — современный фреймворк для dependency injection, разработанный Zac Sweers.

Metro — это compile-time DI фреймворк, вдохновленный Dagger и Anvil, но реализованный как Kotlin compiler plugin. Он Kotlin-first, поддерживает K2 и работает значительно быстрее традиционных решений. Вобрал в себя всё лучшее от Dagger, Anvil и Kotlin-Inject

Почему перешли на Metro?
- Скорость сборки — ускорение инкрементальных сборок на ~60%
- Поддержка Kotlin K2 — возможность использовать новейший компилятор Kotlin
- Упрощение стека — отказ от kapt и Java-ориентированных инструментов
- Современный подход — Kotlin-first дизайн и улучшенный DX
- Более строгая валидация DI-графа
- Улучшена безопасность типов (нуллабельность)
- Поддержка KMP

📊 Результаты по скорости сборки:
- Инкрементальные сборки → ускорение на 58-60%
- Чистые сборки → ускорение на 17%
- ABI-изменения → сборка за 11.9s вместо 28.8s

Миграция 1500 модулей проводилась постепенно с двойной поддержкой двух DI фреймворков для безопасного перехода. В зависимости от настройки Gradle менялся DI и генерация кода.

Впервые вижу подход, когда был описан граф для 2 разных DI с целью постепенной миграции. Миграцию с Koin на Metro так не сделать, но вот с Koin Annotations на Metro вполне может получится.

#DI #KMP #Dagger #Metro #Android #AndroidDev #Anvil
👍43🔥185👎1
📹 Его уволили за гонки состояний... | FlowMVI Часть 3

Никита @nek_12 случайно сделал скам-приложение, которое снимает все деньги с кошельков пользователей и чуть не оказался уволен, после чего первым делом записал видос о том, как избавиться от гонок данных во вьюмоделях. В третьей части курса по FlowMVI начнем с того, как настраивать вашу бизнес логику, а потом на горьком опыте Никитоса разбираем, как базы данных связаны со State Flow, как забыть про ANR, и откуда взялись баги в продакшене и плохие отзывы, которые НЕ воспроизводятся у тестировщиков.

#FlowMVI #Архитектура
Please open Telegram to view this post
VIEW IN TELEGRAM
21🔥9👍8🎉2👎1
🏝 Play Integrity API: Защита вашего приложения от злоумышленников

Play Integrity API — это сервис Google Play для верификации подлинности и целостности вашего приложения. Простыми словами, это инструмент безопасности, который позволяет убедиться, что взаимодействие пользователя с вашим приложением происходит честно и легитимно


Суть работы API - на запрос из приложения вернуть вердикт о различных типах рисков:
👉 Несанкционированный доступ — проверяет, был ли установлено или оплачено через Google Play.
👉 Модификация кода — убеждается, что код приложения не был изменен. Поддельные устройства — проверяет, работает ли приложение на подлинном, сертифицированном Android-устройстве.
👉 Кроме того, API обнаруживает непатченные устройства — проверяет, установлены ли на девайсе свежие обновления безопасности.
👉 Опасные приложения — выявляет программы, которые могут контролировать экран или перехватывать данные.
👉 Автоматизированные атаки — определяет, не генерирует ли устройство аномально много запросов. И повторные попытки — проверяет, не пытается ли это же устройство совершить злоупотребление еще раз.

С помощью Play Integrity API вы можете предотвращать мошенничество — блокировать несанкционированные платежи и финансовые операции. Можно защищать от взлома — обнаруживать модифицированные версии приложения, распространяемые пиратами. API помогает бороться с читингом — предотвращать использование взломанных версий в играх. И, наконец, защищать пользователей — выявлять опасные приложения на устройстве, которые могут украсть данные.

По данным Google, приложения, использующие Play Integrity API, видят на 80% ниже несанкционированное использование по сравнению с другими приложениями. Крупные компании вроде Uber, TikTok, Stripe, Paytm уже интегрировали его себе.

⚠️ Play Integrity API работает не только на сертифицированных Google устройствах на базе Android, а значит там точно должны быть Google Play Services.

‼️ВАЖНО Никакая защита не может дать абсолютной гарантии безопасности, но это не значит что не нужно интегрировать решения, а то что надо следить за безопасностью вашего продукта, вовремя обновлять его защиту и предотвращать небезопасное использование, позвляющее украсть данные и имущество пользователя

#GooglePlay #Безопасность #GMS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥4👎2🎉2
🎉 Rust теперь официально в Linux!

Android ведь на ядре Linux, которое пишут на C/C++. Эти языки сложные — баги сами лезут, потому что средний скилл разработчика уменьшается 🥲. А Rust упрощает жизнь и делает код безопаснее.

Надеюсь, ядро от этого выиграет. Хотя знаю: староверы будут стоять на C/C++, а новички — мечтать о доработке ядра через AI 😏

🔗 Источник тут

#Linux #Rust
29🔥7👍5👎1
🛑 JetBrains признает поражение: легендарный Fleet уходит в историю. Вот что будет вместо него

Компания JetBrains объявила о прекращении разработки среды разработки Fleet. С 22 декабря 2025 года продукт больше нельзя будет скачать, а выпуск обновлений прекращается.

Fleet создавался как эксперимент по созданию IDE нового поколения с легкой архитектурой и современным UI. Хотя технически проект был успешен, он не нашел своей ниши как продукт по причинам:
👉 Не смог заменить полнофункциональные IDE на базе IntelliJ (IDEA, PyCharm и др.)
👉 Не стал достаточно убедительным «легким редактором»
👉 Создавал путаницу у пользователей, которым было сложно выбрать между двумя продуктами JetBrains
👉 KMP вовсе перестали поддерживать из-за разных наборов фичей в Fleet и KMP плагине для IDEA

Команда Fleet не распускается, а переключается на создание принципиально нового продукта. Фокус смещается на агентскую разработку (agentic development) — среду, где разработчик ставит задачи AI-агентам (например, на рефакторинг или написание тестов), асинхронно получает результат и проводит ревью. Скорее всего это и есть недавно показанная Air IDE

Скачать Fleet будет нельзя после 22 декабря 2025 года. Уже установленные версии продолжат работать, но сервисные функции (например, AI Assistant) со временем могут отключиться.

#JetBrains #Fleet #IDE #AI
👍256🎉6👎1
Media is too big
VIEW IN TELEGRAM
📹 Использование разных моделей в Android Studio (Bring your own model) - Android Developers Backstage

В новом выпуске Android Developers Backstage обсудили крутейшую фичу — «Bring Your Own Model» в Android Studio.

Теперь в Agent Mode можно использовать любые AI-модели, а не только Gemini! Это открывает огромные возможности:
👉 Модели от OpenAI, Anthropic и других — подключайтесь через свой API-ключ.
👉 Локальные модели через Ollama и LM Studio — для приватности и кастомизации.
👉 Больше гибкости в разработке с AI-ассистентами.

Обсуждают насущное: контекст, планирование, генерацию кода и будущее агентов в разработке.

0:00 - Вступление
0:49 - Суть фичи "Bring Your Own Model"
4:13 - Как подключить свой API-ключ
7:24 - Работа с Anthropic Claude
13:17 - Как часто нужно напоминать модели контекст?
17:40 - "Thinking" vs "Planning" — в чём разница?
20:25 - Если API нужно дать несколько ответов на сложный вопрос
24:14 - Какие модели поддерживаются
31:18 - Есть ли ограничения при использовании сторонних моделей?
34:07 - Поддержка автодополнения кода
38:16 - GitHub и AI-агенты
44:35 - Использование агентов в разработке
56:36 - Studiobot
57:56 - Итоги

#AI #AndroidStudio #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍9👎1
Forwarded from AvitoTech
«Знаете, что звучит ещё круче, чем AvitoTech?
AvitoTechno!»
🔥

Подумали мы, и собрали мега крутую, верховную онлайн-вечеринку уходящего рабочего 2025 для всего ИТ-комьюнити!

В последнюю рабочую пятницу 26 декабря выдыхаем, собираем коллег и врываемся к нам на стрим AvitoTechno!

В лайн-апе:
🕚сеты от разработчиков Dj команды AvitoTech;
🕚крышесносное выступление BÖRIS REDWÄLL;
🕚и девчонок из LAVBLAST.

А ещё во время вечеринки проведём розыгрыш лимитированного AvitoTechno-бокса (внутри свитер, снежный шар с нашим котиком Б/У, шапка и обвес).

Главный вопрос: как попасть на AvitoTechno и поучаствовать в розыгрыше?


Бегом в бот за бесплатным билетом и ссылками на стрим!
И коллегам не забудьте отправить этот пост.

🚀 Затусим вместе на AvitoTechno!

#tl #backend
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥3👎1