Android Broadcast
14.2K subscribers
3.49K photos
332 videos
11 files
5.85K links
Подборка новостей и статей для Android разработчиков.

Связь с автором @android_broadcast_bot
Реклама @android_broadcast_bot

РКН https://abdev.by/rkn_tg_ab
Download Telegram
🏝 Проблемы с порядком Gradle Task при использовании KSP 2.0.2

Продолжаю разработку проекта FrameIO - Kotlin Multiplatform клиента для сервиса frame.io и стоклнулся с падением сборки из-за порядка задач (ниже стек с примером проблемы):

Some problems were found with the configuration of task ':module:kspDebugKotlinAndroid' (type 'KspAATask').
- Gradle detected a problem with the following location: './module'.

Reason: Task ':module:kspDebugKotlinAndroid' uses this output of task ':module:javaPreCompileDebug' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.

Possible solutions:
1. Declare task ':module:javaPreCompileDebug' as an input of ':module:kspDebugKotlinAndroid'.
2. Declare an explicit dependency on ':module:javaPreCompileDebug' from ':module:kspDebugKotlinAndroid' using Task#dependsOn.
3. Declare an explicit dependency on ':core:user-session:javaPreCompileDebug' from ':module:kspDebugKotlinAndroid' using Task#mustRunAfter.

For more information, please refer to https://docs.gradle.org/8.14.2/userguide/validation_problems.html#implicit_dependency in the Gradle documentation.


Стек для сборки: Gradle 8.14.2, Kotlin 2.2.0, KSP 2.2.0-2.0.2, AGP 8.11.0

Решения проблемы пока нету в KSP (одно из issue), поэтому я задаю порядок Gradle Task сам:

// build.gradle.kts модуля где подключен ksp
afterEvaluate {
android.libraryVariants.forEach { variant ->
val variantCapitalized = variant.name.capitalized()
tasks.named("ksp${variantCapitalized}KotlinAndroid") {
dependsOn(
"${variant.name}AssetsCopyForAGP",
"process${variantCapitalized}Manifest",
"write${variantCapitalized}AarMetadata",
"javaPreCompile${variantCapitalized}",
"merge${variantCapitalized}Assets",
"merge${variantCapitalized}JniLibFolders",
"merge${variantCapitalized}NativeLibs",
"copy${variantCapitalized}JniLibsProjectOnly",
"generate${variantCapitalized}EmptyResourceFiles",
"copy${variantCapitalized}JniLibsProjectAndLocalJars",
"prepare${variantCapitalized}ArtProfile",
"write${variantCapitalized}LintModelMetadata",
"extractProguardFiles",
"prepareLintJarForPublish",
)
}
}
}


#android #kmp #koltin #ksp
Please open Telegram to view this post
VIEW IN TELEGRAM
👍97🤯6
Как много приложений уже используют BDUI (Backend Driven UI или Server Driven UI) или перешли на него? Вы удивитесь, но МНОГО. Так проще для бизнеса:
👉 можно делать больше экспериментов
👉 не надо ждать когда разработчики сделают все варианты UI для экспериментов
👉 BDUI позволяет не ждать прохождение модерации магазина
👉 Элементы управления нативные а не как будет с Web

Подробнее про BDUI подход в статье(6м)

#android #bdui #sdui
🤯10👍5
‼️ В Android снова накладывают ограничения на фоновую работу - фраза которой не удивить Android разработчика

Если хотите подробнее узнать про историю ограничений на выполнение работы в фоне с первых версий ОС до сегодня, то рекомендую вам прочитать статью(10м), а именно: AlarmManager, Background и Foreground Service, Doze Mode, JobScheduler и WorkManager, App Standby Buckets, Task Manager

#android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍14🤝4🤯1
🤖 Теперь можно установить Canary сборки разрабатываемой версии Android

Чтобы следить за самыми свежими изменениями Android теперь есть возможность устанавливать Canary сборки следующей версии Android, которые будут приходиться чаще чем Dev Preview и Beta (сейчас 1 раз в месяц).

Уже сейчас можно поставить на Pixel устройства через Android Flash Tool

#android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍52
🤖 Как написать свой VPN клиент под Android (22м)

Если вам интересно понять как работает технология - лучше реализовать с ней пример с нуля. Вот таким путем и пошёл автор статьи с VPN сервисов для Android на основе WireGuard

#android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍6🤔3
⭐️ Instabug провели исследование как ИИ смогут фиксить найденные креши в приложениях и сравнивали его с решением от человека.

Все инструменты получили более низкие баллы по схожести, чем по другим показателям, что указывает на то, что, хотя ИИ-инструменты могут генерировать функционально правильные исправления, они часто подходят к проблемам иначе, чем разработчики-люди. Это влияет на удобство обслуживания кода и интеграцию в существующие кодовые базы.

Ключевые выводы по тестируемым инструментам:
👉 Cursor: превосходный по правильности и согласованности на Android, демонстрирует сильные возможности для структурированной генерации кода.
👉 Copilot: демонстрирует сбалансированную производительность на обеих платформах с особым превосходством в устранении первопричин (глубина).
👉 Claude Code: поддерживает стабильную производительность на всех платформах, но в целом отстает от других инструментов.
👉 SmartResolve: демонстрирует исключительную производительность на iOS и предоставляет исправления, наиболее похожие на решения, написанные человеком, на обеих платформах.

Оригинальная статья

#android #ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🤯2
Media is too big
VIEW IN TELEGRAM
🤖 Про бэкап данных приложения. Android Developers Backstage (1ч)

При переносе данных на новое устройство всегда остаётся неопределённость: часть информации копируется, а часть — нет. Узнайте, как разработчикам обеспечить безупречный пользовательский опыт при резервном копировании и восстановлении Android-устройств. Ведущие Tor и Chet беседуют с Graham и Piyush из команды Android Consumer Experience, а также с Alon из команды Android Studio о тонкостях резервного копирования и восстановления в Android.

0:00 — Введение и основные проблемы пользователей
1:38 — Почему резервное копирование может дать сбой: сложности для разработчиков
4:00 — Эволюция тестирования бэкапов: от скриптов до Android Studio
7:15 — Не только тестирование: резервное копирование в рабочем процессе разработчика
8:50 — Кросс-устройственные бэкапы и интеграция с GMS Core
10:55 — Типы резервных копий: устройство vs облако
14:55 — Категории данных и контроль со стороны разработчика
16:05 — Системное резервное копирование: разрешения и учётные данные
18:35 — Подводные камни стандартного бэкапа и агенты key-value
28:15 — Миграции баз данных и стресс-тестирование бэкапов
32:04 — Автоматизированная тестовая среда
41:02 — Итоги и каналы обратной связи

#android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🆒3
🤯 Через 4 месяца ваше приложение нельзя будет обновить или опубликовать новое, если все нативные библиотеки в APK не будут иметь поддержку страниц памяти 16 KB.

Google напоминает что весь нативный код вашего приложения и библиотеки должны иметь поддержку страницы памяти размером 16KB. Для этого надо обновить версию зависимостей с поддержкой (проверяйте на сайте).

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

С помощью APK Analyzer вы можете определить выполняют ли все ваши нативные библиотеки требования. Android Lint также будет подсказывать проблемные библиотеки Рекомендуется создать issue для разработчиков сторонних API, если еще нету поддержки и до вас не сделали issue.

🔗 Больше подробностей в официальной документации

#android #ndk #googleplay
🤯47🤝9👍65🤔1
Forwarded from Compose Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
LazyTimetable - open source Jetpack Compose библиотека для реализация lazy расписания мероприятия или в школе/универе. Работает только на Android

#compose #android #opensource
🔥31👍3
🤯 ChromeOS станет частью Android

В ходе интервью TechRadar, президент Android экосистемы в Google, - Sameer Samat заявил, что Google соединит ChromeOS и Android в одну операционную систему, чтобы иметь универсальную операционную систему.

Мы объединяем ChromeOS и Android в единую платформу, и мне очень интересно, как люди сейчас используют свои ноутбуки и что они делают

заявил Самат

Это очень похоже на правду так, как уже ранее произошла реструктуризация в ходе которой Android с ChromeOS, а также устройствами Pixel, стали единым подразделением. Android всё больше идет в функции для больших экранов.

Делитесь своим мнением в комментариях о слиянии двух ОС от Google в одну

#android #chromeos
🤔38🔥17👍105🎉2🤯1
🤖 Jetpack Lifecycle теперь поддерживает все KMP тартеты

В версии Jetpack Lifecycle 2.9.2 добавили поддержку WasmJS тартега, а это значит что библиотека теперь может работать на всех KMP таргетах: JVM (Android, Desktop), Native (Linux, iOS, watchOS, macOS, MinGW) и Web (JavaScript, WasmJS)

#android #kmp #wasmjs #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥61🎉1
🤖 Jetpack SavedState теперь поддерживает все KMP таргеты

Jetpack SavedState 1.3.1 закончила разработку поддержку KMP. Теперь все существующие таргеты добавлены: JVM (Android, Desktop), Native (Linux, iOS, watchOS, macOS, MinGW) и Web (JavaScript, WasmJS)

Jetpack SavedState - это библиотека для сохранения состояния ViewModel при смерте процесса приложения

class SavedStateViewModel(
private val savedStateHandle: SavedStateHandle,
) : ViewModel() {
val filteredData: StateFlow<List<String>> =
savedStateHandle.getStateFlow<String>("query")
.flatMapLatest { query ->
repository.getFilteredData(query)
}

fun setQuery(query: String) {
savedStateHandle["query"] = query
}
}


#android #kmp #wasmjs #jetpackupdate
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉24👍9🔥3
🤖 Вышла Jetpack Car App 1.7.0 с новыми возможностями

Jetpack Car App - библиотека для разработки приложений под Android Auto и Android Automotive ОС

Что нового
⭐️ Поддержка Gemini AI в Android Automotive
📐 Новые API для построения интерфейсов контента и карты
🧹 Чистка deprecated API
👉 Новые API для показа сообщений из чатов
👉 Новые API для получения данных машины
🛠 + Мелкие улучшения UI и работы с локацией

#android #jetpackupdate #androidauto #gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍20
🚀 Вышел Ktor 3.2.2, который исправил работу на Android и другие минорные баги

#ktor #kotlin #android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥1
Media is too big
VIEW IN TELEGRAM
📹 Подготовьте ваше приложения для устройство с размером страницы памяти 16 KB (EN,6м)

Стивен Морленд из команды Android Systems делится последними новостями для разработчиков Android. Теперь Android поддерживает размер страниц памяти 16 КБ. Начиная с 1 ноября 2025 года, все новые приложения и обновления существующих приложений, отправляемые в Google Play и нацеленные на устройства с Android 15+, должны поддерживать размер страниц 16 КБ. Узнайте, почему команда Android внедряет это изменение и как подготовить своё приложение для максимальной производительности.

0:00 Вступление
0:26 Страницы памяти
1:33 Рост размера приложений
2:11 Почему мы меняем размер страниц с 4 КБ на 16 КБ
4:18 Android 16 и другое

Полезные ресурсы:
🔗 Подготовка приложений для устройств с размером страниц 16 КБ
🔗 Поддержка размера страниц 16 КБ
🔗 Тестирование приложения в среде с размером страниц 16 КБ

#android #googleplay #ndk
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🤔4🤯42
🐱 Torrent Search - open source проект для поиска и скачивания с разных торрентов.

Стек: #kotlin, #material3, #compose, Ktor, Room

#android #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍28🤯174🔥2🎉1🤝1
🤯 Samsung закрывает DeX Mode

Samsung решила закрыть свой дескоптный режим - DeX. Причина - будет использоваться десктопный режим из Android 16

#android #android16 #samsung
🔥52🤯23👍9
⚙️ KRD Compose — это open source коллекция визуальных решений, разработанных с использованием Jetpack Compose сообществом Android Krasnodar.

Компоненты
👉 DataSlider — компонент слайдера для удобного просмотра данных.
👉 PascalTriangle — Кастомизируемый треугольник Паскаля.
👉 NumberSystemConverter — Конвертер систем счисления с визуализацией битов.

🎮 Игры
👉 Сапёр — реализация классической игры с настраиваемой сложностью и таймером
👉 Змейка — реализация классической игры "Змейка"
👉 Шахматы — реализация игры "Шахматы" человек vs человек с классическими правилами FIDE
👉 Колесо фортуны — реализация игры "Колесо фортуны". Крутите барабан!

#android #compose #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔30👍12🔥106
🐱 Deepr - это open source нативное Android приложение для организации и тестирования deeplink

Стек: Kotlin, Compose, Navigation3, Arch Components, MVVM, SQLDelight, Koin, Coroutines, Fastlane

#opensource #android #deeplink #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍211
Media is too big
VIEW IN TELEGRAM
📺 Accelerating Android Releases: An Unofficial Guide to Trunk Stable

Хотите быть в курсе последних возможностей Android и внедрять их в свои проекты? В этом видео бывший сотрудник Google и член команды Android расскажет о Trunk Stable – новой квартальной модели релизов Android.

Разберём:
👉 зачем потребовались изменения, чтобы повысить качество и ускорить релизы;
👉 как это связано с новыми регуляторными требованиями;
👉 что такое next, trunk_food и trunk_staging;
👉 как определять фичи, проводить A/B-тесты и работать с фиче-флагами через aconfig;
👉 Как ребейзить изменения и синхронизировать проекты с последними обновлениями Android.

#android #androidos
3👍2