Для локального хранения:
Вы можете использовать https://pub.dev/packages/shared_preferences, который использует собственные аналоги для хранения настроек. В основном это хранилище ключей / значений.
Обертки NSUserDefaults (на iOS) и SharedPreferences (на Android), обеспечивающие постоянное хранилище для простых данных. Данные сохраняются на диск асинхронно. Ни одна из платформ не может гарантировать, что записи будут сохранены на диск после возврата, и этот плагин не должен использоваться для хранения критических данных.
Другой альтернативой будет SQLite с этим пакетом: https://pub.dev/packages/sqflite
Плагин SQLite для Flutter. Поддерживает как iOS, так и Android.
Конечно, вы также можете использовать возможности файлового ввода-вывода Flutter, как описано в документации: https://flutter.dev/docs/cookbook/persistence/reading-writing-files
Другой путь - использованиепакет диспетчера кэша, который будет использовать кеш приложения вместе с SQLlite в фоновом режиме. Может также быть решением, но файлы могут быть удалены ОС в любой момент времени. См. Пакет по адресу: https://pub.dev/packages/flutter_cache_manager
для удаленного хранения:
Затем, конечно, поскольку большинство разработчиков флаттера используют firestore (https://firebase.google.com/docs/firestore) или облачное хранилище (https://firebase.google.com/docs/storage) от бренда Firebase, вы можете легко выбрать этот путь. Конечно, тогда данные будут в облаке. Не знаю, соответствует ли это вашим требованиям безопасности.
Скорее всего, я бы предпочел пойти по местному пути с использованием первых упомянутых методов.