Работал ли с Realm

«Работал ли с Realm» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Realm — это мобильная NoSQL база данных, которая часто используется в Android-разработке.

Основные особенности:

  • Работает быстрее SQLite за счет собственного движка.
  • Поддерживает реактивные запросы (LiveData, Flow).
  • ORM-подход: объекты сохраняются напрямую.

Пример использования:

// Модель
open class User(
    @PrimaryKey var id: String = "",
    var name: String = ""
) : RealmObject()

// Запись данных
realm.executeTransaction { r ->  
    val user = r.createObject(User::class.java, "1")  
    user.name = "Alex"  
}  

Минусы:

  • Увеличение размера APK.
  • Сложности с миграцией схемы.

Использовал в проектах, где важна скорость и простота работы с локальными данными.