Новая стабильная библиотека Jetpack JavaScript Engine позволит разработчикам выполнять JS код в изолированной и ограниченной среде.
class MainActivity : ComponentActivity() {
// Теперь nullable, без lateinit
private var jsSandbox: JavaScriptSandbox? = null
private var jsIsolate: JavaScriptIsolate? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (!JavaScriptSandbox.isSupported()) {
Log.e("JS", "JavaScriptSandbox не поддерживается")
return
}
lifecycleScope.launch {
// Создаём и сохраняем в nullable-поле
jsSandbox = JavaScriptSandbox
.createConnectedInstanceAsync(applicationContext)
.await()
jsIsolate = jsSandbox?.createIsolate()
// При выполнении гарантируем, что jsIsolate != null
val result: String = jsIsolate
?.evaluateJavaScriptAsync(JS_SCRIPT_SCRING)
?.await()
?: "Ошибка: isolate не инициализирован"
Log.d("JS", "Результат выполнения: $result")
}
}
override fun onDestroy() {
super.onDestroy()
// Закрываем только если не null
jsIsolate?.close()
jsSandbox?.close()
}
}#jetpack #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯32👍17🔥2❤1
Используете библиотеку Jetpack App Search?
Anonymous Poll
88%
Не знаю про такую
1%
Да
7%
Знаю, но не использую
0%
Пробовали, но отказались
0%
Не пишу под Android
0%
Другой вариант (пиши в комментах)
4%
Не участвую в опросе
❤8👍2
@mobile_reviews_bot - Telegram бот для отслеживания отзывов на приложение в Google Play и App Store. Отвечать можно прямо из бота + есть ИИ для генерации ответов. Есть бесплатный тариф
Подробности на сайте
#googleplay #appstore
Подробности на сайте
#googleplay #appstore
🔥23👍3🤯2❤1
Media is too big
VIEW IN TELEGRAM
Демонстрация возможностей встроенного в Android Studio инструмента Layout Inspector для дебага Compose UI
0:00 - Что за инструмент
1:31 - Как дебажить
5:26 - Итоги
#compose #androidstudio
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
Продолжаю разработку проекта 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
Явное объявление зависимостей требуется чтобы корректно выстроить порядок выполнения task-ок, гарантировать воспроизводимость сборки.
#gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍12🔥2
Как много приложений уже используют 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
В вашем мобильном приложение есть BDUI?
Anonymous Poll
55%
Нет
29%
Да, собственное решение
2%
Да, используем стороннее решение
2%
Было, но отказались
4%
Не знаю
1%
Не занимаюсь разработкой
1%
Другой вариант
6%
Не участвую в опросе
🤔3👍2❤1🏆1
Серия статей про MVI архитектуры и её корни:
1️⃣ Введение в MVx шаблоны (7м)
2️⃣ Подробнее про MVVM (8м)
3️⃣ Из чего готовят MVI (12м)
4️⃣ Готовим MVI (7м)
#архитектура #mvvm #mvi
#архитектура #mvvm #mvi
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33👍14🤔5🆒4
Если хотите подробнее узнать про историю ограничений на выполнение работы в фоне с первых версий ОС до сегодня, то рекомендую вам прочитать статью(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
CI/CD - неотъемлемая часть любого мобильного и не только проекта! Даже если вы делаете всё один, вас стоит настроить CI/CD. GitHub, Gitlac, Jenkins и множество других решений подойдут для решения задачи.
Если вы решили использовать CI/CD от Gitlab, тогда вам может пригодиться серия статей:
#andorid #ci #gitlab #автоматизация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍12❤3
Чтобы следить за самыми свежими изменениями 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
#androidstudio #эмулятор
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍3
Что самого важного из изменений:
👉 Разрешение рекламы краткосрочных займов только в Пакистане
👉 Изменения касательно криптовалют и цифровых кошельков
👉 Уточнили как использовать разрешения для чтения сенсоров тела
👉 Добавили практики по использованию контента, сгенерированного AI,
#googleplay
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🆒4
Если вам интересно понять как работает технология - лучше реализовать с ней пример с нуля. Вот таким путем и пошёл автор статьи с VPN сервисов для Android на основе WireGuard
#android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍6🤔4
This media is not supported in your browser
VIEW IN TELEGRAM
Уникальная фича - перевод с 2 языков на другие сразу. Например, с русского и английского.
Приложение разворачивается как сервер. Есть подробная инструкция и Docker образ
Автор описал больше про инструмент в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
👍36
Все инструменты получили более низкие баллы по схожести, чем по другим показателям, что указывает на то, что, хотя ИИ-инструменты могут генерировать функционально правильные исправления, они часто подходят к проблемам иначе, чем разработчики-люди. Это влияет на удобство обслуживания кода и интеграцию в существующие кодовые базы.
Ключевые выводы по тестируемым инструментам:
👉 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
👍9❤3🤯2