🤖Google рассказала как стоит адаптировать Android приложения для работы на XR
Отличия Android XR от visionOS от Apple заключается в том, что гарнитуры позволяют запускать обычные Android приложения, но чтобы улучшить опыт можно выполнить небольшую адаптацию с помощью Jetpack XR SDK.
На примере адаптации приложения Androidify (оно у меня не запустилось в эмулятор XR) как выполнять адаптацию. Полезно тем кто хочет попробовать это!
Надо будет попробовать это на FrameIO после реализации его MVP версии
#android#xr#jetpack
🚀Релиз Jetpack Health Connect Client 1.0
Google выпустила первую стабильную версию Jetpack Health Connect Client — библиотеки, которая упрощает доступ к данным о здоровье и активности пользователя через платформу Health Connect.
Health Connect — это единый слой доступа к данным здоровья на Android. Он агрегирует информацию от разных приложений (Google Fit, Samsung Health, Fitbit и др.) и даёт централизованный, безопасный способ работы с ними.
Библиотека connect-client — это Jetpack-обёртка над этим API, которая делает интеграцию максимально простой и безопасной.
Что умеет Jetpack Health Connect Client 1.0:
👉 Читать и записывать данные: шаги, калории, пульс, сон, тренировки, вес и многое другое (всего 40+ типов данных)
👉 Запрашивать данные по временным диапазонам и фильтрам
👉 Управлять разрешениями на доступ к чувствительным данным — всё централизовано и прозрачно
👉 Удалять данные (в том числе выборочно)
👉 Поддерживает suspend-методы и удобные Kotlin API
Подробнее читайте в документации
#android#jetpack#wear
🚀Вышла первая Beta Jetpack Health SDK
Это означает, что API теперь стабильны и готовы к продакшену. Если ваш Android-приложение работает с фитнес- и медицинскими данными, самое время интегрировать Health Connect.
Что это дает?
👉 Унифицированный доступ к данным с разных устройств и приложений
👉 Гибкое управление разрешениями на доступ к данным
👉 Поддержка более 100 типов данных (фитнес, сон, питание и др.)
Что нового в бете?
📌 Оптимизированное управление разрешениями – теперь проще запрашивать доступ к нужным данным
📌 Повышенная производительность – быстрее синхронизация и работа с БД
📌 Совместимость с Android 14+
Если у вас фитнес-приложение, пора переходить на Health Connect, чтобы работать с данными пользователей эффективнее.
#android#jetpack#HealthConnect
🚀Улучшили API для работы с Foldable
Добавили возможность получения больше о физическом состоянии складного устройства. Новое API WindowInfoTracker.supportedPostures позволит понять поддерживает ли устройство режим tabletop (устройство частично сложено, складной экран разделён на 2 зоны)
val currentSdkVersion = WindowSdkExtensions.getInstance().extensionVersion
val message =
if (currentSdkVersion >= 6) {
val supportedPostures = WindowInfoTracker.getOrCreate(LocalContext.current).supportedPostures
buildString {
append(supportedPostures.isNotEmpty())
if (supportedPostures.isNotEmpty()) {
append(" ")
append(
supportedPostures.joinToString(
separator = ",", prefix = "(", postfix = ")"))
}
}
} else {
"N/A (WindowSDK version 6 is needed, current version is $currentSdkVersion)"
}
#jetpack#android#foldable
🦢Вышло превью Swift SDK для Android разработки
Стало доступно для загрузки первое nightly превью Swift Android SDK (SA SDK). Можно писать натив кода не C++.
Авторам можно начать портировать свои пакеты на Android, а 25% уже все существующих поддерживают Android таргет.
Что надо сделать (Windows, Linux, macOS):
1️⃣ Установить раннюю версию сборки Swift 6.3
2️⃣ Установить SA SDK
3️⃣ Поставить Android NDK
Подробная инструкция тут
🐱 Примеры Android проектов c использование SA SDK можно найти на GitHub
Я же сегодня сяду попробовать всё это и поделюсь на Boosty
#swift#android#ndk
🤖🦢Пример написания библиотеки для Android на языке Swift (RU, 17м)
В Swift 6 появилась возможность работать с Android NDK из Swift и всё это потом вызывать из Java при помощи JNI.
Java Native Interface (JNI) – это мост который позволяет нативному коду обращаться к Java Virtual Machine (JVM). Когда вы пишете Java код, то вы используете Android SDK. Но когда вы используете языки как Swift или C++, которые не компилируются в Java байткод, вам уже нужен Android NDK для коммуникации с Java через JNI.
Пример нативного кода
#if os(Android)
@_cdecl("Java_com_habr_swiftlib_myfirstandroidproject_SwiftInterface_initialize")
public func initialize(
envPointer: UnsafeMutablePointer<JNIEnv?>,
clazzRef: jobject,
callerRef: jobject
) {
// Активируем Android logger
LoggingSystem.bootstrap(AndroidLogHandler.taggedBySource)
// Инициализируем JVM
let jvm = envPointer.jvm()
JNIKit.shared.initialize(with: jvm)
// ДАЛЕЕ: кэшируем class loader
// ДАЛЕЕ: пример `toString`
// ДАЛЕЕ: пример `Task`
}
#endif
Инструменты сгенерят вам код для работы из Java/Kotlin
package com.habr.swiftlib.myfirstandroidproject
object SwiftInterface {
init { System.loadLibrary("MyFirstAndroidProject") }
external fun initialize(caller: Any)
}
#android#ndk#swift
🤖 Вышла Material Components for Android 1.1.3 с компонентами из Material 3 Expressive (но пока еще не всё)
Что добавили из комнентов:
👉DockedToolbarLayout - компонент для показа действий на текущем экране/странице (обычно закреплен в нижний части экрана)
👉FloatingToolbarLayout - плавающий набор действия для текущего экрана/страницы
👉LoadingIndicator - новые индикаторы ожидания
👉MaterialSplitButton - разделенная кнопка
👉MaterialButtonGroup - компонент для группировки нескольких кнопок
Что ещё из важного:
👉 Минимальный Android SDK подняли до 21
👉 Включили nonTransitiveRClass (про последствия для вас читайте тут)
👉 Официальная поддержка Material 3 Expressive будет в версии 1.14.0. Уже есть альфа версии
🛠 Много улучшений существующих компонентов и исправления багов
#android#material3#material3expressive
Пример реализации (EN,10м) работы с Passkey в Android приложении
Passkey — это новый стандарт авторизации без пароля, который заменяет привычные пароли криптографическими ключами, хранящимися на устройстве. Работает через биометрию или PIN-код, улучшает безопасность и удобство входа в приложения и сайты.
Используется Jetpack Credential Manager для работы с passkey
🐱Исходный код Android приложения
🐱Исходный код сервера на NodeJS
🔗Альтернативная ссылка
#android#безопасность#passkey