Использовал несколько вариантов, в зависимости от требований проекта:
- Room Persistent Library: Чаще всего. Предоставляет удобный абстрактный слой поверх SQLite, сильно снижая количество бойлерплейт-кода и обеспечивая проверку запросов на этапе компиляции. Идеально подходит для большинства типичных сценариев Android-приложений.
- SQLite directly: В старых проектах или когда требовался очень низкоуровневый доступ и полный контроль над схемами и запросами. Требует больше ручной работы.
- Realm: В нескольких проектах, где важна была производительность для работы с большими объемами данных и сложными объектами. Realm — это объектно-ориентированная база данных, что удобно при работе с моделями данных.
- Firebase Realtime Database / Cloud Firestore: Для проектов, которым требуется синхронизация данных между устройствами в реальном времени и облачное хранилище. Выбор между ними зависел от