Ответ
Да, работал с SQLite и Room. Room — это абстракция над SQLite, которая упрощает работу с БД. Основные компоненты: Entity (таблица), DAO (интерфейс для запросов), Database (абстрактный класс для создания БД).
Пример:
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String
)
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
// Инициализация
val db = Room.databaseBuilder(
context,
AppDatabase::class.java, "database-name"
).build()
Также использовал Firebase Realtime Database для облачных решений.
Ответ 18+ 🔞
Ну, вот смотри, я с этой SQLite и Room работал, конечно. Room — это такая, понимаешь, обёртка, чтобы не ебаться с голым SQLite, который сам по себе — как велосипед без педалей, едешь и ногами отталкиваешься. А тут тебе сразу, бля, нормальный байк.
Основные штуки там, ёпта, три штуки. Entity — это типа схема твоей таблицы, пишешь класс, и он превращается в таблицу. DAO — это интерфейс, где ты пишешь, какие запросы хочешь делать, типа "дай мне всех пользователей" или "найди того пидораса, который имя не заполнил". И Database — это главный абстрактный класс, который всё это склеивает в одну базу.
Вот, смотри, пример кода, я его не трогаю, как ты и просил:
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String
)
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
// Инициализация
val db = Room.databaseBuilder(
context,
AppDatabase::class.java, "database-name"
).build()
Вот и вся магия. Правда, иногда эта Room такая хитрая жопа, что миграции версий базы приходится прописывать вручную, а то приложение накрывается медным тазом при обновлении. Но в целом, удобная штука, если не лезть в дебри.
А ещё, бля, для облачных дел я Firebase Realtime Database юзал. Это вообще отдельная песня. Там данные как JSON живут, синхронизация в реальном времени, но если накосячить с правилами безопасности, то любой левый чувак может прийти и наделать делов в твоей базе. Доверия к этой системе, бля, ноль, пока сам всё десять раз не перепроверишь. Но для быстрых прототипов или чатов — самое то, ебать мои старые костыли, удобно.