Загрузка расширения JSON1 с флаттером sqflite

В моем приложении я использую sqflite для общения с локальной базой данных. Мне нужно заглянуть в данные JSON для конкретных запросов. Расширение JSON1 было бы идеально для этого. Тем не менее, я не могу найти, как загрузить расширение в флаттер-приложение, делая его доступным в моих запросах, так как документация для загрузки расширения написана для языка C, а не для Dart. Итак, несколько вопросов, которые помогут мне в пути:

  • Должен ли я компилировать в разных архитектурах для iOS и Android?
  • Где должны быть скомпилированные файлы в моем приложении? Я предполагаю, что это не добавлено как актив?
  • и, Как получить доступ / загрузить расширение C в моем коде флаттера / дротика?

PS Также приветствуются предложения для других хорошо поддерживаемых локальных баз данных (баз данных документов или баз данных, поддерживающих запросы json) для флаттера. Я посмотрел на couchbase lite, но плагины ( fluttercouch, https://github.com/hemeda3/couchbase-lite-flutter) все еще находятся в стадии разработки.

1 ответ

По умолчанию используется версия SQLite, поставляемая ОС, в которой может быть не включен json1.

Вместо этого используйтеsqflite_ffi, который будет отправлять копию SQLite вместе с вашим приложением. Любая последняя версия будет автоматически включать json1.

Этот процесс описан здесь: https://github.com/tekartik/sqflite/blob/master/sqflite_common_ffi/doc/using_ffi_instead_of_sqflite.md .

Суть такова:

  1. Добавлятьsqflite_common_ffiиsqlite3_flutter_libsзависимости (помимо ).
  2. ВызовsqfliteFfiInit()перед открытием базы данныхsqfliteв вашем приложении.

Дополнительным преимуществом является то, что версия ffi также имеет гораздо лучшую производительность.

Другие вопросы по тегам