Содержание
При разработке клиент-серверных приложений под мобильные операционные системы, часто возникает потребность хранить большие объемы информации, полученные со стороны сервера, а также производить их сортировку, выборку, отображение на карте и множество других операций. Очевидно, что для этого необходима база данных. Именно о ней и пойдет речь в этой статье.
SQLite vs Realm
В OS Android используется база данных SQLite. Стандартное взаимодействие с SQLite выполняется через Java интерфейс SQLiteDatabase и SQLiteOpenHelper. Имплементировать стандартные механизмы по управлению БД в Android довольно непросто (это, как минимум, отнимает массу времени). Для упрощения процесса используются различные библиотеки и ORM “надстройки”.
Относительно недавно OS Android обзавелась альтернативой для SQLite. Имеется в виду Realm — кроссплатформенная, мобильная база данных. Отметим, что это не очередная ORM “надстройка” для SQLite. Она использует собственный движок, обеспечивающий высокую скорость работы и простоту в применении. Это является серьезным конкурентным преимуществом. Практика показывает, что в большинстве случаев Realm значительно превосходит в скорости не только SQLite, но и другие альтернативные ORM для Android, такие как ORMLite и Greendao.
Почему мы используем Realm в своих проектах?
Как уже было сказано, одна из основных причин — это скорость. База данных Realm быстрее альтернативных ORM на Android примерно в 100 раз (по сравнению с SQLite — в 10 раз). А скорость взаимодействия с БД напрямую влияет на время отклика приложения. Если вы хотите, чтобы оно быстро реагировало на запросы пользователя, не допуская лагов и зависаний, стоит работать именно с Realm.
Следующим немаловажным фактором является легкость интеграции и простота в использовании. На интеграцию и поддержку Realm в Android приложении тратится минимум усилий. Это происходит благодаря отличной документации и низкому уровню вхождения. Соответственно значительно сокращаются время и ресурсы, необходимые для разработки приложения.
Realm — это доверенный продукт. Его уже используют в продакшене банковские и корпоративные приложения, поставщики медицинских услуг и даже такие приложения, как Starbucks (top 1 в App Store).
База данных Realm распространяется совершенно бесплатно.
Где мы используем Realm?
На сегодня Realm используется на многих проектах нашей компании. В том числе касающихся кроссплатформенной разработки. Записываем: налицо универсальность базы данных. Подход использования одной технологии на разных платформах значительно облегчает взаимодействие команд разработчиков, следовательно упрощает сам процесс разработки и поддержку приложения.
Если говорить более конкретно, то мы работаем с Realm на проекте Move. Здесь он выступает в качестве локального кэша данных. Каждый экран приложения запрашивает информацию с сервера. Затем она кэшируются в Realm. Далее нужно выбрать из кэша нужные данные, отсортировать их и показать на экране. Тут в дело вступает Realm. Его мощный движок позволяет сходу производить сортировку и выборку нужных данных, не вызывая задержек пользовательского интерфейса. В некоторых случаях выборки из Realm базы можно делать и в главном потоке Android приложения. Все это не просто очень удобно, но и практично.
Кроме того, в нашем приложении присутствует возможность поиска. За счет своей скорости Realm позволяет без длительных задержек демонстрировать авто-подсказки в поиске. Move содержит в себе экран с картой, на котором нужно показывать множество объектов. Realm Android API предоставляет инструмент realm-mapview, позволяющий имплементировать кластеризацию точек на карте.
Вывод
Подводим итог. Кроссплатформенная мобильная база данных Realm отличается высокой скоростью работы и легкостью в применении. Причем как в абсолютном, так и в относительном измерении. Наша собственная практика наглядно демонстрирует, что использование Realm позволяет упростить и ускорить процесс разработки Android приложений.