🤖В Android 16 появится поддержка десктопного режима на внешних дисплеях
В Android 16 QRP1 появилась поддержка десктопного режима при подключении внешних дисплеях. Включается режим плавающих окон, а значит приложения смогут иметь произвольный размер, управление перейдет в мышку и клавиатуру (а смысл иначе от внешнего дисплея?)
Совсем уже не новинка в мире Android, но какому количеству людей это будет необходимо? Делитесь своим мнением в комментариях
#android#android16#desktop
🤖Android Desktop - аналог Samsung DeX от Google
Всё что показывается на видео - рання работа, которую Google официально не показывала и всё может измениться!
#android#desktop#android17
🚀 Вышел Jetpack Sqlite 2.5.0 с поддержкой KMP и добавлением абстракция над реализация SQLite в платформе или вовсе поставлять реализацию SQLite вместе с вашим приложением, чтобы всегда иметь самую свежую версий движка БД.
#sqlite#jetpack#android#ios#desktop
🚀SavedState 1.3.0: Поддержка KotlinX Serialization и Kotlin Property delegate для удобства работы
Что нового:
👉 SavedState теперь полностью KMP библиотека с поддержкой Android, iOS, Linux, Mac и JVM
👉 LocalSavedStateRegistryOwner теперь не является частью Compose UI, а будет частью нового артефакта - savedstate-compose
👉 Появился обобщенный тип SavedState, который Bundle на Android и Map<String, Any> на других платформах
// Создаем SavedState с помощью DSL:
val savedState = savedState {
putInt("currentPage", 1)
putString("filter", "favorites")
}
val currentPage = savedState.read { getInt("currentPage") }
savedState.write { remove("currentPage") }
🏝 Добавили поддержку KotlinX Serialization🔥
@Serializable
data class Person(val firstName: String, val lastName: String)
fun main() {
val person = Person("John", "Doe")
val encoded: SavedState = encodeToSavedState(person)
val decoded: Person = decodeFromSavedState(encoded)
}
🏝 Используйте новый делегат saved в Activity и ViewModel
class MyActivity : ComponentActivity() {
var person by saved { Person("John", "Doe") }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
this.person = Person("Jane", "Doe")
}
}
class MyViewModel(handle: SavedStateHandle) : ViewModel() {
var person by handle.saved { Person("John", "Doe") }
fun onPersonChanged(person: Person) {
this.person = person
}
}
#android#jetpack#jetpackupdate#kmp#kotlin#ios#desktop
🚀Jetpack Navigation теперь поддерживает тестирование не только на Android в версии 2.9.0-alpha09.
Теперь для тестирования навигации не требуется Android-устройство, эмулятор или использование Robolectric, благодаря тому что артефакт navigation-testing поддерживает JVM Desktop таргет KMP. Также поддерживается iOS.
#android#jvm#desktop#jetpack#jetpackupdate#навигация#ios
🚀 Вышла новая версия Jetpack Room 2.7.0 с поддержкой KMP.
🔥 Главное нововведение этой версии Room — рефакторинг библиотеки для поддержки нескольких платформ через KMP: Android, iOS, JVM (Desktop), native Mac и native Linux. Документацию о том, как начать, можно найти здесь. В рамках поддержки KMP было выделено SQLiteDriver.
🏝 При использовании KSP теперь будет генерироваться код на Kotlin, а для KAPT или проектов с Java — на Java.
🏝 Поддерживается Kotlin 2.0 и выше, также рекомендуется использовать KSP2.
#android#kmp#jetpack#ios#desktop#mac#linux