Привет! Давайте разберёмся, что там накатили в новом мажоре Room. На момент написания актуальная версия — 3.0.0-alpha02, а стабильный релиз, вероятно, будет к лету.
Если вдруг выпали из контекста: Room — это повсеместно используемая ORM-обёртка над SQLite. Раньше только для Android, с недавнего времени и для Kotlin Multiplatform.
Что изменилось?
Новый пакет androidx.room -> androidx.room3.
Убрана зависимость от Android-специфичного SQLite Driver API. Для публичного API появились задокументированные аналоги.
// Было roomDatabase.query("select * from users").use { cursor -> ... } // Стало roomDatabase.useReaderConnection { connection -> connection.usePrepared("select * from users") { stmt -> ... } }Kotlin и Coroutines. Room2 генерировал Java-код через KAPT. Теперь всё — только через KSP. Плюс, всё API работы с DAO и внутрянка по-возможности переписаны на корутины.
Поддержка Web. Раньше KMP-версия Room не дружила с wasm. Комьюнити поныло — и вот, дожали. Так что mobile web разработчики могут порадоваться, а те, кто тащил wasm на всякий случай — тоже не зря ждали.
Почистили старые депрекейты.
Миграция
Тут всё довольно спокойно, без сюрпризов.
Что нужно сделать:
Обновить зависимости и плагин (добавить «3»)
// root build.gradle.kts plugins { id("androidx.room3") version "3.0.0-alpha02" apply false } // lib build.gradle.kts plugins { id("androidx.room3") } kotlin { sourceSets { commonMain { val room_version = "3.0.0-alpha02" // Для наглядности. Используйте version catalog implementation("androidx.room3:room3-runtime:$room_version") ksp("androidx.room3:room3-compiler:$room_version") } } } room3 { schemaDirectory("$projectDir/schemas") }Поменять пакеты (
RoomDatabase,@Entityи прочее наroom3).Дальше по классике — собрать -> получить ошибки -> исправить. Кое-где добавили suspend, поменяли нейминг. Должно быть просто.
Насколько это необходимо?
Поддержка web — давно пора. Котлин и корутины — бесценно для KMP разработки в 2026. Остальное приятно.
Так что — затаскиваем как будет стабильная версия.
А если появилось желание апгрейднуться сейчас — подсвечу, что это лишь альфа версия, и могут быть внезапные гугл мувы и изменения без обратной совместимости.
