傲空间iOS架构设计

整体初步介绍

未命名文件 (6).png

我们的架构设计旨在提供可扩展性、可维护性和可测试性。我们采用了一些常见的iOS架构模式和最佳实践:如MVC(Model-View-Controller)、MVVM(Model-View-ViewModel)等,以确保代码的组织结构清晰,并且易于开发和维护。
项目整体上架构上 按照MVC的思想:
数据层-> 传输层 ->逻辑业务层->视图层。

数据层

沙盒存储

沙盒是指应用程序运行时分配给应用程序的一个独立文件系统空间,该空间被隔离并且只能由应用程序本身进行访问,我们再沙盒储存了文件信息,用户的缓存信息,小程序的本地存储。在用户删除缓存,卸载app的时候给与删除。

钥匙串存储

我们将傲空间的一些傲空间少量信息储存在了系统密钥中,防止用户删除App后,重新安装需要重新进行绑定流程。如果卸载app后,可以保留盒子的绑定信息,重新安装后,继续使用绑定过的盒子,不需要重新绑定。

DB存储

构建本地的数据库,支持对象存储。把文件信息等用来持久化存储本地信息,文件信息等。支持多个盒子的数据存储,后台接口信息存储成iOS端数据库的数据表,为后续本地化优先提供支持。在这里我们引入了WCDB(wechat dataBase)组件),通过WINQ,拼接SQL的字符串而写一大坨胶水代码。支持ORM(Object Relational Mapping),开发者可以很便捷地定义表、索引、约束,并进行增删改查操作。

传输层

蓝牙通道

由于App启动的时候,需要绑定盒子,所以我们进行与我们的傲空间系统进行交互,使用蓝牙通道进行数据交换。盒子到进行构建蓝牙通道,进行数据传输,绑定流程,交换秘钥,平台切换等操作。我们同时定义了多个特征码,进行统一通道的不同信息流的交换,并且支持订阅,支持的读取文件分批传输。

在蓝牙通道的构建过程中,我们首先需要发现盒子设备。通过使用蓝牙扫描功能,我们能够搜索到附近的盒子设备,并获取其相关信息。

绑定流程中的关键步骤之一是秘钥交换。通过蓝牙通道,我们能够安全地进行秘钥的交换,以确保通信的安全性和保密性。我们支持了字段分批传输的功能,通过蓝牙将大数据分成多个片段进行传输。

接下来,我们定义了多个特征码,用于在统一通道上进行不同信息流的交换。这些特征码允许我们在蓝牙通道中发送和接收各种指令和数据,以满足绑定流程和其他操作的需求。

此外,傲空间App还支持平台切换功能。也是利用蓝牙通道,进行信息交换,使用户可以自定义平台,与傲空间官方平台,完全独立解耦,更加保证用户隐私安全性。

局域网通道

局域网通道:增加用户安全性和提供更快的数据传输速度,局域网通道利用Bonjour和MDNS来获取盒子的IP地址,直接与傲空间系统进行连接。

局域网通道具备与蓝牙通道的备用通道的,可以支持绑定流程、秘钥交换、平台切换等操作。
并且,局域网通道的一个显著优势是传输速度更快。支持大文件传输,当设备处于同一局域网内时,通过局域网通道进行数据传输可以获得最大的传输速度。这为用户带来了更好的使用体验,并为系统的可靠性和稳定性提供了增强。

P2P通道

P2P通道:允许应用和盒子之间直接进行点对点的通信,无需依赖其他中间节点,从而实现更高效
直接进行数据交换,直接的点对点通信方式具有以下优势:

高效传输:由于避免了中间过程的转发,P2P通道能够实现更快速、低延迟的数据传输。数据可以直接从应用发送到盒子,实现实时性要求较高的功能。

去中心化:P2P通道不需要依赖中心化的服务器或中间节点来进行数据传输。应用和盒子直接建立连接,实现直接的点对点通信,从而减少了单点故障的风险,提高了系统的可靠性和稳定性。

隐私保护:由于P2P通道是应用和盒子之间的直接连接,数据传输可以在两者之间进行加密,增强了数据的安全性和隐私保护。

通过引入P2P通道,我们能够进一步提升应用与盒子之间的通信效率和性能,实现更快速、实时的数据传输。这为用户带来了更好的使用体验,并为应用的功能扩展和创新提供了更多可能性。

长链接通道

长链接通道:它能够提供实时的、双向的数据传输。与传统的HTTP请求相比,长连接不需要频繁地建立和断开连接,而是可以一次建立连接后持续通信,减少了通信的开销和延迟。在客户端和服务器之间建立一个持久的、双向的通信通道。用来实时获取小程序服务日志等信息等。

网络库 Https链接:

日常接口调用,使用Https进行请求,这部分在日常App中比较常见,包含了网关call接口调用,进行了路由封装,我们适配了开发dev环境,sit测试环境,rc仿真环境和生产环境,除了Https自带的SSH通道外,也是用RSA和AES混合进行数据加密解密,保证传输数据安全。

安全方面:

包含应用锁,安全密码,公私钥凭证,加密算法等来保证数据安全。

业务层

首页:个人动态,记录日常造作。
文件操作:文件上传下载,删除,重命名,复制,新建文件夹,排序等操作,文件分享。
智能相册:智能整理相片。帮助您更好的整理回忆。
开发者选项&应用商店:多款应用,更多的功能。
绑定列表:支持APP绑定多个盒子,邀请多个成员,对其他手机或Web页面授权。

UI方面:

  1. 我们对每个文字颜色适配了暗黑模式。
  2. 对App进行了国际化处理,包含了2000多个字段的中英文。
  3. 对图片使用了缓存管理,确保每张图片之下载一次。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容