iOS快速开发框架Bee-Framework应用和解析(二) --- Bee framework架构概览
在第二部分里,分享一下Bee Framework架构的看法。如果您下载了Bee Framework, 在/document/developer_manual.pdf有Bee的开发手册。手册里有典型的教程,也有对架构的讲解。本文试图融入个人的理解,解答以下问题:
- Bee的MVC是如何工作的,核心组件是哪些?
- Bee的整体架构如何?
- 除了MVC, Bee提供了哪些常用的工具和服务?
- 该如何使用Bee开始一个项目?
- BeeModel封装数据存储(很多时候是NSMutableArray,也可以是SQL lite 数据库)。BeeUIBoard持有BeeModel, 对Server发出数据请求。MVC的M部分。
- BeeMessage封装网络逻辑协议,可解析为JSON, XML,数据,返回BeeModel本地存储,也可以更新界面。MVC的C部分。
- BeeUIBoard扩展了UIViewController, 通过BeeModel进行数据存储,通过BeeMessage进行数据通信,并管理自己的控件。MVC的V部分。
- BeeUIStack扩展了UINavigationController, 管理页面导航。BeeUIRouter是rootViewController。没错,就是iOS App的基本骨架。熟悉框架的时候可以先看这几个核心类的代码,。
- BeeSandBox: 封装和简化了应用程序沙箱的操作。
- BeeRuntime: 存储运行时的class, call stacks,用于反射。
- BeeSystemInfo: 查询是否越狱,屏幕尺寸,UUID, 设备类型(iPAD/iPhone)等实用信息。
- BeeThread: GCD的封装,提供foreQueue, backQueue两个队列。
- BeeDatabase: fmdatabse的封装,提供数据库功能。
- BeeFileCache, BeeMemoryCache, BeeImageCache, 缓存工具, FileCache通过key对文件缓存,Memory, ImageCache通过Array或Dictionary在内存中缓存。
- BeeUserDefaults: 封装和简化对User defaults的操作。
- BeeUIImageLoader: 封装通过GCD加载网络图片的流程。
- BeeUIKeyboard:封装键盘交互的各类delegate。
- BeeUISignal: Bee独有的事件类,提供附加对象,源对象,目标对象,调用路径等特性。
- BeeViewModel: 使用BeeUISignal的BeeModel, 支持事件,方便被UI对象持有。有几种子类支持不同的展示模型(简单展示,分页,向下拉去更多Content)。
- 将所有的界面梳理,分类,编号,文档化。可参考官方的实例:https://github.com/GeekZooStudio/ECMobile_iOS,注意doc里文档的方法。
- 估算每个界面(BeeUIModel)需要承载多少数据模型(BeeModel),需要多少数据协议(BeeMessage)
- 估算好了总的界面数,总的数据模型,总的数据协议数,就可以开始开发了。当然也可以对一些关键问题进行设计。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。