在本地管理 Flutter 应用和 Flutter Web 数据

Posted

技术标签:

【中文标题】在本地管理 Flutter 应用和 Flutter Web 数据【英文标题】:Managing flutter app and flutter web data locally 【发布时间】:2022-01-16 09:56:33 【问题描述】:

我正在做一个项目,以创建一个颤振的待办事项应用程序来在移动设备上本地存储数据,但我不知道如何将数据保存在本地存储或网络上的类似东西上。

所以,如果是移动设备,我想将数据保存在本地,如果通过网络访问,我想将数据保存在本地存储中。

我不知道从哪里开始,请指教。

【问题讨论】:

您是在服务器端使用 Flutter,在客户端使用 javascript,旨在将数据存储到 Javascript 的localStorage 中吗? 不,我在整个项目中只使用颤振 @LajosArpad Flutter 应该如何在服务器端使用?它是一个客户端 UI 软件开发工具包,而不是任何类型的服务器端框架 @TonyBorchert 我对 Flutter 了解不多。这就是我问这个问题的原因。 可以理解,我的评论对您有帮助吗? 【参考方案1】:

选项

您可以使用shared_preferences,因为它针对不同的平台使用 shared_preferences_android、shared_preferences_ios 和 shared_preferences_web(使用 IndexedDB),请注意这与您直接无关,因为 shared_preferences 会根据所需的平台进行切换。

您也可以使用hive,因为它还支持网络(通过 IndexedDB),当然还有所有其他类似于 shared_preferences 的平台。

最后一个也支持 Web 的选项是 isar,但它是三个选项中最先进的,根本不适合这个简单的应用程序。

文档

所有链接都链接到具有足够文档的各自发布页面。现在唯一的问题是何时使用哪个包。

使用哪个

flutter 社区在这方面存在很大分歧,但正如您所见,shared_preferences 有更多的赞,并且来自谷歌的 Flutter 团队。然而 shared_preferences 是非常基本的,如果您正在考虑保存自己的类对象(这可能在 todo 应用程序中使用),hive 的学习曲线更陡峭,但 imo 它比仅使用 json 序列化它更好。

当然 json 完全可以,因为您可能是初学者,但对于更复杂的应用程序,hive(如果它变得非常复杂,isar)在 imo 中要好得多。

【讨论】:

以上是关于在本地管理 Flutter 应用和 Flutter Web 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何分别在android和ios上本地运行flutter应用程序?

如何在 Flutter 应用程序中连接到本地实时数据库模拟器?

flutter_inappwebview本地https连接在flutter应用程序中被拒绝

没有 BLoC 的 Flutter 状态管理

如何在运行 Flutter Web 应用程序的本地和本地 webview 之间进行通信?

本地化后flutter在启动时显示黑屏