手撸一个Flutter插件实现跨苹果全家桶云同步持久化Key Value数据

前言

作为一个客户端开发者,后端开发一直是我的弱项。虽然GPT的横空出世,让我对后端的开发有一点眉目。但是现实是,能不触碰就不触碰,因为人的精力是有限,如何在有限的时间里发挥最大的作用一直是我的一个追求。所以回到本次主题,我自己上线的一个产品,目前已经成功上线了iOS以及Mac端,如何在不开发后端的情况下实现同步轻量级数据呢?答案是利用Cloud Kit。Cloud Kit是苹果官方API,用于同步同意iCloud账号下设备的数据,包括Key Value Storage、云dataBase、云document等等。通过翻阅pub类似的库,我发现了有以下几个pub包是可以参考的cloud_kiticloud_storage,但是他们都不是我想要的,要么是不支持Mac、要么是只能同步存储文件,但是我想要同步的其实只是轻量级持久化数据(也是就是iOS下的UserDefault,基于键值存储)。所以没办法了,肝了一晚上我手撸了一个Flutter插件icloud_kv_storage,完美的支持了跨苹果设备iOS、Mac、iPad等的轻量级Key Value数据同步。
请添加图片描述

开发过程全解析

  • 创建Flutter插件项目,指定支持iOS、Mac平台

如何创建插件虽然已经很简单,这里我还是点一下。

flutter create icloud_kv_storage -t plugin
cd ./icloud_kv_storage

//指定platforms

flutter create ./ -t plugin --platforms ios
flutter create ./ -t plugin --platforms macos

  • 先设计Flutter Channel接口

由于是肝了一晚上的产品,非常赶,第一版先只支持同步String数据,后续再支持别的基础数据,如int、double、bool等。


///获取真正的Key,我内部Key都加了flutter前缀,如果要拿真实的Key可以使用此方法
String getRealKey(String key) {
    throw UnimplementedError('getRealKey()) has not been implemented.');
  }

  ///原生的CallBack 用于实时刷新数据(如果多台苹果设备都在线,支持实时同步
  void setNativeCallBack({required GetNativeCallBackFuture onCallBack}) {
    
  }

 ///保存数据接口,这里用范型方便后续拓展,虽然第一版只支持String
  Future<void> write<T>({required String key,required T value}) {
    throw UnimplementedError('write({required String key,required String value}) has not been implemented.');
  }
  
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值