用 CloudKit 实现一个私密的小圈子社交软件

查看 63|回复 5
作者:andyzhshg   
最近在研究 Apple 的 CloudKit ,基本上通读了相关的文档:CloudKit,CloudKit Web Service。
CloudKit 基本上可以认为是一个支持存储用户私人数据的 NoSQL 数据库,其本身的设计保证了即使是 App 的开发者也无法访问用户的私人数据,可以有效的保护用户的隐私。这使得其非常适用于私人数据的同步,比如记账类,日记类的 App 。
但我的关注点在它的另外一项功能,也就是分享Shared Records,使得可以在用户可控的情况下分享指定的资源(虽然这个分享实操起来比较复杂)。
我的计划是通过分享功能创建一个私密的小圈子社交( Apple 的文档说一个记录只能分享最多 100 人),用户之间可以通过创建分享记录,来查看彼此的信息。
这整个过程,都可以仅基于 Apple 的 CloudKit API 完成!虽然实现起来很复杂,但是开发者可以无需提供自己的网络服务,好处有几个:
[ol]
  • 解除用户对开发者的隐私疑虑,开发者看不到用户的数据 [可以通过开源,或者测试 App 是否链接 Apple 之外的外源服务来审计]
  • 解除用户对服务持续性的疑虑,因为不使用 CloudKit 之外的任何外源服务,所以原则上只要 Apple 不倒闭,或者不关闭 CloudKit ,用户就可以继续使用。
    [/ol]
    问题:
    [ol]
  • Apple 生态的封闭性,很少看到在 Apple 生态之外使用 CloudKit 的案例,但是读过CloudKit Web Service文档之后,我认为 CloudKit Web Service 提供的能力是与原生 Apple 平台等价的,可以借助 CloudKit Web Service 实现 Web Apple 甚至是其他平台的原生 App 。要求是用户至少有一个 Apple ID 。
  • 国内的特殊生态,众所周知,Apple iCloud 在中国是独立的由云上贵州运营的,不可避免的就会有各种问题,我目前测试的是通过 CloudKit Web Service 的授权登录国内账号返回的 token 不可用,但是通过设备 Native 获取的 token (CKFetchWebAuthTokenOperation)又可用;也有人说分享功能在国内不可用(/t/1035315);更别说国区账号和外区账号是否可以 share 更是需要测试。
    [/ol]
    抛开问题不谈,我觉得理想状态下,这非常适合实现一个类似私密朋友圈的社交软件,三五好友,或者家人之间建立一个小的圈子,分享些照片视频之类的,无需担心被平台窥视(当然,你是你相信 Apple 不会作恶窥视你的信息的前提下)。
    大家对这个有什么建议,或者有类似想法或者使用过 CloudKit 踩过什么坑的都可以来分享一下。
  • richard1122   
    没有做过 iOS 开发,想请问下这种 Shared Records 可以跨云吗?也就是说云上贵州和 global 的用户能够共同访问同一份 records ?
    andyzhshg
    OP
      
    @richard1122 我还没有测试到这一步,目前看是不乐观。
    icestraw   
    我觉得不好,这就不是技术问题。你自己开发了程序,你也是平台啊,就因为你说“你只用 CloudKit”我就相信你不上传数据?作为用户无法证实的话,你数据放在哪其实都一样,大多数用户也不在乎这个。
    musi   
    “其本身的设计保证了即使是 App 的开发者也无法访问用户的私人数据,可以有效的保护用户的隐私。”
    不理解怎么保证的
    你存的数据不是用 app 存的吗? app 都是你开发的你在存之前把数据往云端推一份这做不到吗?
    kele999   
    挺好的,支持!感觉很多人需要!
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部