简介
sp_util
是一个在 Flutter
社区中广泛使用的轻量级、无依赖的 SharedPreferences
封装库。
SharedPreferences
是 Android
和 iOS
平台上用于存储少量数据的简单键值存储系统。
典型场景
sp_util
库在 Flutter
应用开发中的典型使用场景包括但不限于以下几点:
用户偏好设置:存储用户的主题选择、语言偏好、字体大小等个性化设置。
登录状态保持:在用户登录后,将用户的身份验证信息(如 token)存储在 SharedPreferences
中,以便在应用重新启动时保持登录状态。
应用配置:存储应用的配置信息,如 API 端点、版本号、调试模式开关等。
临时数据存储:对于不需要持久存储在数据库中的数据,如临时计算结果、临时缓存的数据等,可以使用 SharedPreferences
进行快速存储。
首屏加载优化:在应用启动时,从 SharedPreferences
中读取一些关键数据,以加快首屏加载速度。
用户行为跟踪:记录用户的某些行为或状态,例如是否同意隐私政策、是否已经完成了新手引导等。
广告跟踪:存储广告展示次数、点击次数等,以便进行广告效果分析。
离线数据同步:在没有网络连接的情况下,将需要同步的数据临时存储在 SharedPreferences
中,待网络恢复后再进行同步。
应用状态恢复:在应用被系统关闭或崩溃后重新启动时,从 SharedPreferences
中恢复之前的状态,如页面跳转、表单填写等。
多设备同步:在多设备使用同一账号的情况下,通过 SharedPreferences
存储一些同步信息,以便在不同设备间同步状态。
使用 sp_util
可以简化这些场景下的数据存储和读取操作,提高开发效率和应用性能。
使用步骤
添加依赖:
dependencies: flutter: sdk: flutter sp_util: ^版本号
然后运行 flutter pub get
来获取依赖
使用储存库:
import 'package:sp_util/sp_util.dart'; void saveData() { SpUtil.putString('username', 'mimo'); SpUtil.putInt('age', 25); SpUtil.putDouble('height', 1.75); SpUtil.putBool('isVip', true); } String username = SpUtil.getString('username'); int age = SpUtil.getInt('age'); double height = SpUtil.getDouble('height'); bool isVip = SpUtil.getBool('isVip');
示例
再进行打印
print('============================='); print('存入的用户名字:${username}'); print('存入的用户年龄:${age}'); print('存入的用户身高:${height}'); print('存入的用户isVip:${isVip}'); print('=============================');
就会得到以下结果
删除数据
SpUtil.remove('username'); // 清除所有数据 SpUtil.clear();
监听数据变化
SpUtil.putString('username', 'mimo2'); SpUtil.listen('username', (dynamic newValue, dynamic oldValue) { print('============================='); print('存入的用户的新名字:${newValue}'); print('============================='); // 当 someKey 的值变化时,执行这里的代码 });
总结
以上就是sp_util
的基本使用方法。
sp_util
库的使用非常直观,它提供了基本的数据类型存储和监听功能,使得开发者可以轻松地管理和使用应用中的偏好设置。