В помощь мобильному разработчику
Логотип Realm

Введение в Realm для Xamarin

Александр Алексеев

С сегодняшнего дня мы запускаем новую мобильную базу данных Realm, на этот раз разработанную специально для Xamarin. Она предлагает упрощенное постоянство существования объектов и полные инструменты запросов с профилем рабочих характеристик, которые в совокупности функционируют значительно более быстро, чем другие существующие средства настроек. Как и другие издания Realm, эта база данных разработана с нуля, чтобы дать возможность оперативной разработки приложений с активными объектами, событиями изменений, а также поддержкой однонаправленных потоков данных.

 

 

Realm представляет собой разработанную с нуля базу данных для решения своеобразных непростых задач, возникающих при разработке мобильных приложений, которые запускаются непосредственно на смартфонах, планшетах или других носимых устройствах. В 2014 году Realm была запущена для Java, Objective-C и Swift, а в начале 2016 мы добавили ей ещё и поддержку React Native. Эта технология в настоящие время используется уже на сотнях миллионов устройств, поскольку она задействовалась при разработке таких приложений, как Twitter, Starbucks, Cisco, Walmart, Google, Amazon и eBay, а также многих других.

Сегодня Realm получает поддержку Xamarin, мобильного фреймворка от Microsoft, позволяющего разработчикам писать код на C#, который преобразуется в нативные iOS- и Android-приложения.

Realm Xamarin содержит ту простую структуру и тот современный дизайн, которых вы и ожидаете от Realm, и она также позволяет достигать запланированного результата в том, чтобы приложения на iOS и Android создавались на общей базе исходного кода.

В настоящее время реализована поддержка Xamarin.iOS и Xamarin.Android, и ещё в перспективе к ним должна добавиться поддержка Xamarin.Mac, а также UWP и Unity.

 

Что собой представляет Realm?

Realm это не ORM, и она не выстроена поверх SQLite. Вместо этого, мы создали полную базу данных для разработчиков мобильных приложений, тех, кто использует нативные экземпляры классов C#, которые в динамическом режиме устанавливают соответствия с полнофункциональным, специализированным механизмом системы управления базами данных (а не только хранилищем пар «ключ-значение»). Благодаря этому мы предлагаем простой API-интерфейс, но притом с более высоким качеством функционирования. С Realm вы можете моделировать комплексные типы данных, объекты ссылок в графике, и составлять сложные запросы.

 

Вы можете увидеть больше варинатов того, как использовать эти API-интерфейсы, в наших примерах.

Зачем использовать Realm?

Лёгкость применения

Главным достоинством Realm всегда была лёгкость её использования, и, как Вы можете видеть из приведенных выше примеров, Realm Xamarin придерживается того же принципа. Кроме того, мы работаем над расширением преимуществ этого программного продукта, добавляя в него те функции, которые уже реализованы в других наших проектах.

 

Скорость работы

Простота использования Realm никак не сказывается на её производительности. Поскольку Realm использует функции размещения в памяти, отложенной загрузки, а также пользовательский механизм хранения данных, она, как правило, работает быстрее, чем SQLite, несмотря на то, что ей предлагается богатый объектно-ориентированный API. И хотя мы всегда советуем каждому пользователю опираться на собственный опыт, мы, как правило, наблюдаем огромный прирост в скорости работы при переносе кода на Realm. Вы можете ознакомиться с нижеследующими результатами технических тестов.

 

Кросс-платформенность

Это должно быть очевидным и так, но мы всё же напомним, что Realm Xamarin позволяет писать положение на C#, а полученным результатом пользоваться на обеих системах iOS и Android. Обратите внимание ещё и на то, что формат файлов Realm также является полностью кросс-платформенным, и благодаря этому мы можем с лёгкостью передавать данные между системами iOS и Android. Для отладки .realm-файлы можно открывать с помощью Realm Browser.

 

Продвинутая функциональность

Объекты Realm всегда находятся в обновлённом состоянии с базовыми данными, именно поэтому выполнять оперативные паттерны или однонаправленные потоки данных предельно просто. Вы можете ссылаться на объекты Realm в графиках, запрашивая любую комбинацию свойств с помощью LINQ, и даже с лёгкостью интегрировать данные Realm в Xamarin.Forms.

 

Защищенность

Realm Xamarin выстроен на основание одного и того же ядра как и Realm Java, Objective-C, React Native и Swift, которые пользуются доверием сотен миллионов людей по всему миру и используются в системах электронной коммерции, банков, медицинских учреждений и даже правительства.

 

Активное комьюнити

Realm Xamarin разработан с открытым исходным кодом и доступен на GitHub. Новые функции в него привносятся исходя из приоритетности запросов пользователей, и мы приветствуем оказание содействия развитию проекта.

 

Поддержка

Для Realm вопросы поддержки и исправления ошибок являются первостепенными. Вы можете задать вопрос об этой базе данных непосредственно тем людям, которые занимаются разработкой и поддержкой Realm, и сделать это можно с помощью StackOverflow, GitHub или Twitter.

 

Realm тест производительности

Вставка данных

Realm тест производительности

Получение количества записей

Realm тест производительности

Запросы на выборку

 

Тестирование проводилось 9 мая 2016 года с использованием последних доступных на тот момент версий Realm, sqlite-net и Couchbase Lite. Измерения осуществлялись на iPhone 6S Plus с объёмом памяти 128 Гб и под управлением iOS 9.3.1. Источник. Мы рекомендуем вам произвести собственную оценку производительности, которая будет основана на вашем варианте использования, поскольку любые синтетические тесты демонстрируют только приблизительные показатели.

 

 

Что дальше

Нам будет приятно узнать Ваше мнение о том, что в Realm следовало бы улучшить, и мы особенно заинтересованы в получении отчётов об ошибках или просьбах о реализации какой-либо новой функции в нашем репозитории GitHub. Ожидайте значительных улучшений API-интерфейса в течение ближайших нескольких недель, особенно когда мы отполируем некоторые расширенные функции, такие как миграция данных и запросы.

Если Вы являетесь поклонником .NET и желаете того, чтобы мы реализовали поддержку UWP или Unity, пожалуйста, сообщите нам о Вашем желании — мы будем рады добавить их в будущем. Нам не терпится увидеть то, что Вы сумеете разработать с помощью Realm!

ИсточникОфициальный блог Realm

Начать использовать Realm здесь

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Android
xamarin forms

Написать ответ