​​Переход на Room

#разработка



Не так давно в нашем проекте появилась задача по переходу на Room. Текущая библиотека для работы с базой данных, ObjectBox, не устраивает по нескольким причинам, самая главная из которых — это случайные краши при запуске приложения. На некоторых устройствах появляются падения при старте приложения, которые невозможно поправить. Разработчики также не дают пояснений по этим крашам, а они занимают одно из первых мест в списке падений.



Еще есть несколько дополнительных причин.

Первая — нестандартность библиотеки. Хотя ObjectBox имеет достаточно простые методы для работы, тем не менее нужно некоторое время на то, чтобы разобраться с ними вновь прибывшим разработчикам.



Вторая — нераспространенность библиотеки. Это отчасти связано и с причиной крашей. Очень сложно найти подводные камни, которые могут всплыть после внедрения этой библиотеки в приложение, как например в нашем случае с падениями. Маленькое сообщество разработчиков также относится к этой причине.



Задача не самая простая, так как необходимо обеспечить работу приложения у текущих пользователей. Если у вас есть подобная проблема, то вот несколько рекомендаций:

1) Добавьте Room в приложение, создайте необходимые сущности.

2) Сохраните данные в созданные сущности, при этом сохраняя все в предыдущую базу данных.

3) Добавьте анатилику, чтобы убедиться в том, что все действительно успешно сохраняется, проверьте, что будет, если убрать сохранение в вашу старую базу.

4) Выполняйте переход в несколько этапов, не пытайтесь сделать все в один спринт. Чаще всего, это приведет к неправильной работе.



Нашел также пару статей о переходе на Room из старой базы данных. Подробнее тут и тут.