Продолжаю разработку проекта 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
👍9❤7🤯6
Как много приложений уже используют BDUI (Backend Driven UI или Server Driven UI) или перешли на него? Вы удивитесь, но МНОГО. Так проще для бизнеса:
👉 можно делать больше экспериментов
👉 не надо ждать когда разработчики сделают все варианты UI для экспериментов
👉 BDUI позволяет не ждать прохождение модерации магазина
👉 Элементы управления нативные а не как будет с Web
Подробнее про BDUI подход в статье(6м)
#android #bdui #sdui
👉 можно делать больше экспериментов
👉 не надо ждать когда разработчики сделают все варианты UI для экспериментов
👉 BDUI позволяет не ждать прохождение модерации магазина
👉 Элементы управления нативные а не как будет с Web
Подробнее про BDUI подход в статье(6м)
#android #bdui #sdui
🤯10👍5
Если хотите подробнее узнать про историю ограничений на выполнение работы в фоне с первых версий ОС до сегодня, то рекомендую вам прочитать статью(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
Чтобы следить за самыми свежими изменениями Android теперь есть возможность устанавливать Canary сборки следующей версии Android, которые будут приходиться чаще чем Dev Preview и Beta (сейчас 1 раз в месяц).
Уже сейчас можно поставить на Pixel устройства через Android Flash Tool
#android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍5❤2
Если вам интересно понять как работает технология - лучше реализовать с ней пример с нуля. Вот таким путем и пошёл автор статьи с VPN сервисов для Android на основе WireGuard
#android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍6🤔3
Все инструменты получили более низкие баллы по схожести, чем по другим показателям, что указывает на то, что, хотя ИИ-инструменты могут генерировать функционально правильные исправления, они часто подходят к проблемам иначе, чем разработчики-люди. Это влияет на удобство обслуживания кода и интеграцию в существующие кодовые базы.
Ключевые выводы по тестируемым инструментам:
👉 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
👍7❤3🤯2
Media is too big
VIEW IN TELEGRAM
При переносе данных на новое устройство всегда остаётся неопределённость: часть информации копируется, а часть — нет. Узнайте, как разработчикам обеспечить безупречный пользовательский опыт при резервном копировании и восстановлении 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
👍13❤3🆒3
🤯 Через 4 месяца ваше приложение нельзя будет обновить или опубликовать новое, если все нативные библиотеки в APK не будут иметь поддержку страниц памяти 16 KB.
Google напоминает что весь нативный код вашего приложения и библиотеки должны иметь поддержку страницы памяти размером 16KB. Для этого надо обновить версию зависимостей с поддержкой (проверяйте на сайте).
Проверить работу можно с помощью специального эмулятора или включения опции в настройках разработчика на Android 15 и выше.
С помощью APK Analyzer вы можете определить выполняют ли все ваши нативные библиотеки требования. Android Lint также будет подсказывать проблемные библиотеки Рекомендуется создать issue для разработчиков сторонних API, если еще нету поддержки и до вас не сделали issue.
🔗 Больше подробностей в официальной документации
#android #ndk #googleplay
Google напоминает что весь нативный код вашего приложения и библиотеки должны иметь поддержку страницы памяти размером 16KB. Для этого надо обновить версию зависимостей с поддержкой (проверяйте на сайте).
Проверить работу можно с помощью специального эмулятора или включения опции в настройках разработчика на Android 15 и выше.
С помощью APK Analyzer вы можете определить выполняют ли все ваши нативные библиотеки требования. Android Lint также будет подсказывать проблемные библиотеки Рекомендуется создать issue для разработчиков сторонних API, если еще нету поддержки и до вас не сделали issue.
🔗 Больше подробностей в официальной документации
#android #ndk #googleplay
🤯47🤝9👍6❤5🤔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
#compose #android #opensource
🔥31👍3
🤯 ChromeOS станет частью Android
В ходе интервью TechRadar, президент Android экосистемы в Google, - Sameer Samat заявил, что Google соединит ChromeOS и Android в одну операционную систему, чтобы иметь универсальную операционную систему.
заявил Самат
Это очень похоже на правду так, как уже ранее произошла реструктуризация в ходе которой Android с ChromeOS, а также устройствами Pixel, стали единым подразделением. Android всё больше идет в функции для больших экранов.
Делитесь своим мнением в комментариях о слиянии двух ОС от Google в одну
#android #chromeos
В ходе интервью TechRadar, президент Android экосистемы в Google, - Sameer Samat заявил, что Google соединит ChromeOS и Android в одну операционную систему, чтобы иметь универсальную операционную систему.
Мы объединяем ChromeOS и Android в единую платформу, и мне очень интересно, как люди сейчас используют свои ноутбуки и что они делают
заявил Самат
Это очень похоже на правду так, как уже ранее произошла реструктуризация в ходе которой Android с ChromeOS, а также устройствами Pixel, стали единым подразделением. Android всё больше идет в функции для больших экранов.
Делитесь своим мнением в комментариях о слиянии двух ОС от Google в одну
#android #chromeos
🤔38🔥17👍10❤5🎉2🤯1
В версии 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🔥6❤1🎉1
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 - библиотека для разработки приложений под Android Auto и Android Automotive ОС
Что нового
📐 Новые API для построения интерфейсов контента и карты
🧹 Чистка deprecated API
👉 Новые API для показа сообщений из чатов
👉 Новые API для получения данных машины
🛠 + Мелкие улучшения UI и работы с локацией
#android #jetpackupdate #androidauto #gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍20
Forwarded from Kotlin Multiplatform Broadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥1
Media is too big
VIEW IN TELEGRAM
Стивен Морленд из команды 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🤯4❤2
Стек: #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🤯17❤4🔥2🎉1🤝1
🤯 Samsung закрывает DeX Mode
Samsung решила закрыть свой дескоптный режим - DeX. Причина - будет использоваться десктопный режим из Android 16
#android #android16 #samsung
Samsung решила закрыть свой дескоптный режим - DeX. Причина - будет использоваться десктопный режим из Android 16
#android #android16 #samsung
🔥52🤯23👍9
Компоненты
👉 DataSlider — компонент слайдера для удобного просмотра данных.
👉 PascalTriangle — Кастомизируемый треугольник Паскаля.
👉 NumberSystemConverter — Конвертер систем счисления с визуализацией битов.
🎮 Игры
👉 Сапёр — реализация классической игры с настраиваемой сложностью и таймером
👉 Змейка — реализация классической игры "Змейка"
👉 Шахматы — реализация игры "Шахматы" человек vs человек с классическими правилами FIDE
👉 Колесо фортуны — реализация игры "Колесо фортуны". Крутите барабан!
#android #compose #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔30👍12🔥10❤6
Стек: Kotlin, Compose, Navigation3, Arch Components, MVVM, SQLDelight, Koin, Coroutines, Fastlane
#opensource #android #deeplink #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤1
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
Хотите быть в курсе последних возможностей Android и внедрять их в свои проекты? В этом видео бывший сотрудник Google и член команды Android расскажет о Trunk Stable – новой квартальной модели релизов Android.
Разберём:
👉 зачем потребовались изменения, чтобы повысить качество и ускорить релизы;
👉 как это связано с новыми регуляторными требованиями;
👉 что такое next, trunk_food и trunk_staging;
👉 как определять фичи, проводить A/B-тесты и работать с фиче-флагами через aconfig;
👉 Как ребейзить изменения и синхронизировать проекты с последними обновлениями Android.
#android #androidos
❤3👍2