2015-10-08 3 views
1

Я собираюсь построить гибридное мобильное приложение с Ionic, Angular и Cordova и поместить его на Android и iOS. Одной из основных функций приложения будет автономное хранилище/возможность хранения и просмотра содержимого приложения в автономном режиме.DB-решение для гибридного мобильного приложения

Содержимое, которое я хочу сохранить в локальной БД, может быть даже более 50 МБ, поэтому локальное хранилище не является вариантом.

До сих пор я нашел sqlite и indexdb. Но мне интересно, есть ли у кого-нибудь из вас предыдущий опыт с подобной проблемой, чтобы решить и могли бы предложить некоторые другие варианты? Или, может быть, какой вариант (sqlite или indexdb) станет лучшим решением для моего приложения?

+0

Используйте этот плагин для больших баз данных: https://github.com/litehelpers/Cordova-sqlite-storage – Joerg

ответ

2

Я был частью команды, которая построила успешное приложение Cordova/Sencha Touch (интерфейс интерфейса не имеет особого значения здесь)/приложение SQLite для iOS и Android. У нас было более 100 МБ данных для хранения в базе данных, пришлось зашифровать его и перенести с сервера в приложение.

SQLite хорошо зарекомендовал себя, мы также использовали некоторые пользовательские функции, которые мы написали, чтобы перенести некоторые данные, которые нам нужны в механизм базы данных и из Javascript.

Другой член команды написал short blog article о некоторых наших впечатлениях от этого стека.

В целом, учитывая мой опыт, я бы сказал, что SQLite - это правильный выбор, но у меня нет опыта работы с IndexDB.

2

Вы также должны знать, что localStorage не является жизнеспособным вариантом для постоянного хранения устройств, если вы собираетесь создавать для iOS. ОС будет уничтожать данные localStorage, если память устройства низкая. IndexDB также может быть изменчивым, поскольку он хранится в контексте веб-представления.

Я разработал приложение для ионной обработки, в котором хранится некоторая информация (не большая сумма на данный момент) в SQLite. Я выбрал localForage с драйвером SQLite. Он хорошо работает для того, что мне нужно, потому что он хранит данные в файле базы данных в файловой системе, которая безопасна для удаления ОС. Хорошо, что функции похожи на то, что вы получаете с localStorage; самая большая разница в том, что функции используют обещания.

Это стек компонентов, которые я использовал для того, чтобы осуществить то, что я сейчас:

компоненты Бауэр

  • угловую-localForage
  • localforage
  • localForage-cordovaSQLiteDriver

Вы также понадобится плагин Cordova-sqlite-storage.

+0

Вы можете сделать локальное хранилище должным образом постоянным с Кордовой, инфраструктура управляет этим, для вас они исправили это некоторое время назад. –

+0

@SimonPrickett у вас есть ссылка на это?Поведение было в iOS, а не в Кордове, поэтому я не уверен, как им удается избежать того, чтобы ОС выполняла очистку, что ей нужно делать. – jlafay

+0

попробуйте https://issues.apache.org/jira/plugins/servlet/mobile#issue/cb-330 –

1

Вы также можете посмотреть LokiJS и PouchDB (статьи в блоге от GoneHybrid, реализующие эти 2 библиотеки).

Я лично хотел бы получить LokiJS (http://lokijs.org/) и его файл JSON, даже если у обоих есть адаптеры для WebSQL, SQLite, IndexedDB.

Смежные вопросы