ROOM
Room — бібліотека, яка спрощує роботу з базою даних android SQLite. Це інтерфейс більш високого рівня абстракції, використання якого дає змогу зменшити кількість коду, зробити його чистішим і спростити роботу.
З Room розробникам не потрібно витрачати багато часу на опис фундаментальних взаємодій, таких як SQL-запити, всередині програми. Досить додати необхідні компоненти бібліотеки й у вас будуть готові інструменти, з якими працювати набагато простіше і швидше.
Room — одна з базових бібліотек, без якої не рекомендують починати роботу над android-проєктом взагалі. Вона входить в Jetpack — список популярних і часто використовуваних бібліотек. Завдання «стартового набору» допомогти писати менше коду, зробити його узгодженим з актуальними версіями ОС і методологічно правильним. Загалом у ньому є все, що критично важливо для спрощення роботи і Room, у тому числі.
Room — база даних «обгортка» для SQLite. Вона одночасно точка доступу до БД, таблиці зберігання сутностей для неї й набір методів для роботи з нею. З Room значно простіше використовувати запити, оновлення, передачі і видалення даних з SQLite.
Одна з головних переваг Room, можливість застосовувати її, як бібліотеку зберігання. Наприклад, з її допомогою можна кешувати дані, щоби відображати їх, навіть якщо пристрій не підключений до інтернету. Ця можливість буде корисна і для вирішення інших завдань. Room в цілому спрощує організацію даних і взаємодію з ними.
Room перевіряє SQL-запити під час компіляції, оптимізує шляхи міграції бази даних, допомагає покращувати шаблонний код, котрий повторюється і схильний до помилок. Її можна інтегрувати з RxJava і іншими подібними бібліотеками для створення й обробки послідовностей подій. Завдяки цьому можна буде одержувати повідомлення про зміни в кожному з місць, де вони відбулися. Загалом код вашого проєкту стане більш структурованим, а процеси — контрольованими.
Room — стандарт розробки для Android. Якщо ви починаєте писати додаток на Kotlin або іншою мовою, підтримуваним системою, ця бібліотека використовується за умовчанням.
Єдиний випадок, коли Room не потрібна — доробка вже функціонуючого масштабного проєкту. У цьому випадку витрати на міграцію будуть вище, ніж витрати на продовження роботи в старому режимі.
Без Room, взаємодія з SQLite безпосередньо, вимагає набагато більше часу, як на написання коду, так і на виявлення помилок. Ця бібліотека — розробка Google, використання якої вважається однією з кращих практик і вкрай рекомендована для всіх проєктів.