您的位置:首页 > 移动开发 > IOS开发

iOS快速开发框架Bee-Framework应用和解析(一) --- 为什么使用Bee framework

2015-02-09 16:25 537 查看
去年夏天,兼职参与了一个创业项目iOS部分的开发。可能是iOS刚入门的原因吧,对苹果原生的开发方式有以下的不好的感觉:

巨型ViewController, 由于delegate和data source的存在,让view controller承担的太多的责任。
源代码会引用不少第三方的库以及代码片段,比如AF Networking, ASI Http, JSON kit, push service, location service, 自定义控件,杂乱,难以管理和重用。

作为一个有些经验的老工程师,总是想创建一个App的时候,将其分层,做好数据抽象,让代码清晰好维护。这需要开发者自己做一些抽象和对业务进行研究,将网络协议,数据存储,工具,界面流程等分类分层封装,并管理好第三方的库,力争可最大程度重用。这是一个比较费时的过程。这里要郑重推荐一下Bee-Framework, 如果用OC开发的小伙伴,Bee-Framework就是那个将网络协议,数据存储,工具,界面,分类分层封装,管理好第三方库的简化框架,另外,它还带来了XML+CSS的混合UI开发方式和美观的界面。笔者用Bee-Framework重新实现了开源中国的客户端并上架成功。感觉Bee和原生在工作量上的区别,非界面的部分,至少比常规模式少一半,界面部分应该比常规模式少30%。

分享和整理Bee-Framework知识之前,先来一些问题吧:

Q: iOS boilerplate类的框架,有哪些可以选择,实用性如何?

A: Three20, 前身似乎是Facebook开源的框架,已停止更新,主要包括一些系统功能(数组,表格,Bundle, 本地化)的封装和扩展。NimbusKit, 功能比较全面,包含CSS,比Bee-Framework少了不少功能,但也支持Table Model, InterApp等Bee不具有的功能。Bee-Framework, 功能比较齐全,基于oc,开发上手快,基本不需要特别的帮助,有一定的用户群并有一些商业产品。CrossApp, 纯C++的跨平台开源引擎,支持iOS, Android,
有一些商业产品,社区和资料看上去比较多, 优点是iOS, Android一套代码搞定。具体见下表:

iOS 框架

核心优点

局限

易上手度

界面可定制性

功能完整性

Three20

简单

无框架,仅重用代码

容易





Nimbus-Kit

较完整

无框架,需要学习大量的class, 不易上手

一般





Bee-Framework

框架完整,分层清晰

Bee UI Template无法替代原生/自定义控件

容易



非常强

CrossApp

iOS,Android

二合一

需要学习全新C++框架,可能需要自己开发控件

一般

一般

非常强

Q: Bee-Framework适合开发什么样的App?

A: 主要适用于信息展示,社交,工具,电子商务客户端等类型的App。能用MVC表述的App都比较适合Bee-Framework.

Q: Bee-Framework适合什么样的组织,什么样的开发者?

A: 适合创业者或小型公司需要快速上线原生App的情况。对于开发者来说可以大幅减少代码量和工作时间, 懂CSS的前端程序员也可以快速上手iOS开发。

Q: Bee-Framework如何封装oc的类,轻重如何?有效率问题吗?

A: 从代码看绝大多数的控件继承了原生控件并加入了一些扩展功能,数据成员似乎不算太多,算是薄薄的一层封装,使用上内存的耗费和原生应用未见明显增多。

Q: 使用Bee-Framework的时候,有哪些推荐的开发方式?

A: 对Bee-Framework,由于其架构的分层非常清晰,互相之间的耦合也很松,所以对其使用可以很灵活,可以大胆用nib, 自定义控件,不用太担心和其他代码的整合。简略的说:是否使用BeeUI控件, 是否使用BeeUI消息。具体优缺点可见下表说明:

使用选择

说明

收益

局限

BeeCore

只使用Bee的核心:数据,网络协议,工具部分,不使用Bee的消息系统。



享受Bee model, controller的好处,不担心和现有MVC框架和消息整合。

未能享受Bee消息系统的便利,以及CSS模板的便利。

BeeMVC(BeeUISignal)

使用BeeUISignal用于消息通信,

BeeViewModel优化数据存储,使用BeeUIBoard加载xib。

享受BeeUISignal和BeeViewModel的好处,不使用Bee的模板界面开发方式。适用于自定义控件需求较多的场合。

未能享受CSS模板的便利。

BeeUI + UIView

使用BeeUICell开发自定义控件,混合个别自定义控件。

享受BeeUICell便利的CSS开发和调试。

BeeUICell和自定义控件的风格不太一致。

Q: 使用Bee-Framework有哪些局限?

A: BeeUICell + XML + CSS的UI开发无法完全代替原生UI和自定义控件。个人认为深层的原因是XML需要在编译时写好(本质上是另一种xib,支持了CSS),而某些运行时变化的控件不够灵活,不可能开始就排布好。这种时候应该果断自己用代码写自定义控件。还有 Interface builder不够完善和好用。

看完了以上这些问题,如果您认为Bee-Framework适合你,不要犹豫,用吧:
https://github.com/gavinkwoe/BeeFramework
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: