Pull to refresh

Comments 18

Машинный перевод и куча ошибок представлено в текст, дай глазу вытекать на клавиатуру
По сути поста: интересно, спасибо.
Не знаю, как там в iOS, но на Android Realm не всегда удобнее даже чистого SQLite (наследование сущностей от специального класса, создание классов строго определенным образом, собственные структуры данных, иногда рандомные ошибки, миграции, которые завезли буквально вчера-позавчера). Да и насчет скорости не уверен, основательных замеров не находил. Хотя идея интересная, конечно.
В прошлом году создавали с друзьями приложение на Realm. Нам важна была скорость работы базы. Не помню где, но находили статистику, которая говорит о том, что Realm в 3 раза, если не ошибаюсь, превосходить SQLite как по записи, так и по чтению.
Ну, это официальная статистика так говорит. Я недавно нашел тест на гитхабе, выводы такие:
From the completed tests, we can see that Realm is slightly faster than SQL when it comes to individual transactions, but SQL still has a small advantage when it comes to bulk transactions.

Но я не смотрел код и как он мерял, так что нельзя сказать, что это авторитетный тест. Но, по крайней мере, независимый вроде.
Ну, это официальная статистика так говорит

Я бы удивился, если бы выставили статистику, выставляющую их в неприглядном свете :)
На Swift не написать приложение для iOS ниже 7ой версии, а с Realm ещё и iOS 7 за бортом?
iOS 7 cannot be supported because it does not allow using 3rd party dynamic frameworks, and it is impossible to build static libraries that contain Swift code.
Если быть точнее то по требованиям:

Objective‑C
Apps using Realm can target: iOS 7 or later, OS X 10.9 or later & WatchKit.

Swift
Apps using Realm can target: iOS 8 or later, OS X 10.9 or later & WatchKit.
Значит в настоящий момент это решение не для меня. Я не готов сужать аудиторию, мне хватает что пользователи iOS 5 и 6 не могут поставить мои приложения. Мне кажется, что библиотека, претендующая на замену стандартных способов хранения данных, должны быть максимально совместимыми.
А оправдан ли отказ от современных технологий из-за пользователей, количество которых можно пересчитать по пальцам одной руки?
Это конечно сильно зависит от проекта, но пока у меня не хватило фантазии представить такой проект в котором действительно было бы важно сейчас поддерживать хотя бы iOS 7, т. к. iOS 8 поддерживается далеко не самыми новыми устройствами от Apple.
Для меня сейчас такой отказ оправдан и я это поясню.
1) про современные технологии — это с моей стороны они более современные и удобные, пользователь не получит больше функций от того, что я сменю тип хранения данных. Если бы это была супер-фича, к примеру, возможность через камеру телефона проектировать видео на стену, я бы не сомневался)
2) про количество устройств с iOS 7 — если коротко, то оно вполне велико. Дело в том, что для обновления на более современную версию iOS требуется место на устройстве, а у многих забитые под завязку устройства на 8/16 Гб. Они, конечно, поддерживают iOS 9, но что толку, если пользователям некуда его поставить.
Как уже писал, мои приложения на Swift — для меня минимальная версия iOS 7.
Вот статистика по пользователям одного из моих приложений за последний месяц: 36.5% — iOS7, 32,5% — iOS8, 31% — iOS9.

Вы правда считаете, что мне стоит сменить тип хранения данных и потерять при этом треть аудитории пользователей iOS? Я на это пойти не готов.
UFO landed and left these words here
realm-jni — это что тогда? Можете изучить код, или даже собрать сами, коль боитесь бинарника. Большинство теорий заговора появляется от поспешных выводов.
UFO landed and left these words here
На самом деле, смотреть стоит вот сюда:
github.com/realm/realm-java/blob/master/realm/realm-jni/build.gradle

Тут видно, откуда выдираются исходники самого ядра вместе с некими загадочными библиотеками.
А именно, отсюда:
static.realm.io/downloads/core/realm-core-android-0.95.3.tar.gz
Изучить код биндингов в Java?
Sign up to leave a comment.

Articles