Bee Framework_百度百科
Bee Framework编辑1详细信息
简介
Bee Framework是一款iOS快速开发框架,目前活跃于github开源社区,于2012年底被收入到OSChina最受欢迎开发欢迎名单,目前国内多 家移动互联网公司正在开发使用。其早期原型曾经被应用在 [QQ游戏大厅 for iPhone][2]、[QQ空间 for iPhone][3] 等多款精品APP中。 在最近几个月中,作者梳理并重构了设计,并取名为Bee,寓意着“清晰,灵活,高效,纯粹”。特性
代码注入
借助于OC语言特性,Bee将核心逻辑注入到NSObject基类中去,在使用Bee时,大多数情况下可以不必修改现有类继承关系,这样设计是把双刃剑,也有可能与您现有方法名冲突。
在您代码中任何位置都可以这样做:
[self GET:@h t t p :/ / w w w.qq.c o m/logo.png];
[self POST:@"h t t p : / / api.qq.c o m /" data:[NSData data]];
[self postNotification:@"SOME_NOTIFICATION"];
[self sendMessage:@"SOME_MESSAGE" timeoutSeconds:10.0f];
[self sendUISignal:@"SOME_SIGNAL"];基于MVC模型典型的MVC架构,清楚的分为View、Controller、Model三个层次,业务数据、业务逻辑、界面展现、交互逻辑完全分离。事件驱动对 于Controller、Model均与状态无关(Stateless),因此由三种Event驱动:Message、Request、 Notification。对于View,我们抛弃掉了老旧的Delegate(语言级实现方式),引入新概念UISignal(框架级实现方式)用来驱 动界面交互事件或状态改变。UISignal
UISignal 拥有极强的路由能力,可以在UIView <-> UIView <-> UIViewController <-> UINavigationController <-> UIViewController 之间完成复杂且高效的的UI信号路由。那么,我们来看一个关于UISignal的实际运行的例子:[signal.BeeUIImageView.LOAD_COMPLETED] > // 信号发送
BeeUIImageView > // 信号发给了自己
DribbbleCell > // 二传给superview
UITableViewCellContentView > // 三传给contentView
BeeUITableViewCell > // 四传给UITableViewCell
UITableView > // 五传给UITableView
BeeUIBoardView > // 六传给UIViewController.view
DribbbleBoard // 七传给UIViewController实际上,我只写了一行代码⋯⋯
[self sendUISignal:BeeUIImageView.LOAD_COMPLETED];哪里发送哪里接收尽可能允许您将UISignal、Message、Request、Notification相关处理逻辑内嵌到物理位置上相同的代码中,型成整体,方便维护及并行开发。
典型的例子是一个APP界面即收发网络请求,又处理控制器相关消息,同时又处理子控件发来的信号。不用担心,这些代码优美而秩序的展现在您面前。基于状态的新UIBoard基于State,重新定义了UIViewController的实现方式,统一称为UIBoard,同样的,UINavigationController统一称为UIStack。
开发者只需关注UIBoard状态变化时该做什么事,以及子级控件的UISignal该怎样处理。内置Debugger
不依赖于XCode instrument,Bee自身提供了App内调试工具。
您可以随时观察APP运行状态,诸如:
* 网络请求:请求详情,成功失败率,网速限制(模拟3G、2G),开网断网
* 内存占用:内存剩余,模拟分配,模拟内存警告
* 事件处理:Notification、Message历史列表
* 界面状态:界面存活,数据,状态
* 沙盒浏览:在线查看沙箱目录中所有文件
* 异常模拟等功能2工作
主要模块
* External
外部信赖库
* ASI: 网络通讯库
* JSONKit: JSON解析引擎
* Reachability: 网络接入点检测
* Foundation
基础模块,及NSObject扩展
* Cache
* JSON based
* File cache
* Memory cache
* Log
* NSLog wrapper
* VAR_DUMP
* Network
* GET/POST
* File upload
* Black list
* Performance
* Runtime
* Object allocation
* Callstack
* Sandbox
* Singleton
* SystemInfo
* UDID
* System version
* Jailbreak detection
* Thread
* Block based
* MVC
* Controller
* Message
* Action mapping/routing
* Model
* View
* UIView
* Touchable
* UISignal
* UIActionSheet
* UIActivityIndicator
* UIAlertView
* UIButton
* UIColor
* UIDatePicker
* UIFont
* UIGridCell
* UIImageView
* 支持网络异步加载
* UIKeyboard
* UILabel
* UIOrientation
* 方向变化通知
* 角度变化通知
* UIProgressView
* UIPullLoader
* UIRect
* 拉伸
* 位移
* UISegmentedControl
* UITabBar
* UITextView
* UIWebView
* UIZoomView
* ViewController
* UIBoard
* UIStack
* UIStackGroup
* UITableBoard
* UIFlowBoard编译要求
Mac OS X 10.6, Xcode 4运行要求
iOS 4.0 或更新版本目录结构
* BeeDebugger/
内置调试工具
* BeeFramework/
框架源代码主目录
* Core/: 核心模块
* Extension/: 基础类扩展
* View/: 基础视图控件
* ViewController/: 基础视图控制器
* Example/
相关教程及示例代码
* Documention/
相关文档
* External/
第三方库引用运行例程
双击打开Example/WhatsBug.xcodeproj,编译并运行。安装步骤
1. 将BeeFramework目录完整复制到项目目录中去。
2. 添加BeeFramework到工程目录
3. 添加相关Framework:
a. libz.dlib
b. CFNetwork.framework
c. CoreGraphics.framework
d. Foundation.framework
e. MobileCoreServies.framework (ASI)
f. QuartzCore.framework
g. Security.framework (MD5)
h. SystemConfiguration.framework (Reachibility)
i. UIKit.framework
4. 在工程的.pch预编译头中加入:a. \#import “Bee.h”
b. \#define __BEE_TESTING__ (1) // 是否启用开发模式
c. \#define __BEE_LOG__ (1) // 是否打印LOG
d. \#define __BEE_DEBUGGER__ (1) // 是否开启Debug
5. 编译运行
6. Good luck[1]
Bee Framework_百度百科的更多相关文章
- python爬虫—爬取百度百科数据
爬虫框架:开发平台 centos6.7 根据慕课网爬虫教程编写代码 片区百度百科url,标题,内容 分为4个模块:html_downloader.py 下载器 html_outputer.py 爬取数 ...
- [Python爬虫] Selenium获取百度百科旅游景点的InfoBox消息盒
前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒,同样可以通过Spider获取网站内容,最近学习了Selenium+Phantomjs后,准备利用它们获取百度百科的旅游景点消息盒(I ...
- Python3爬取百度百科(配合PHP)
用PHP写了一个网页,可以获取百度百科词条.源代码已分享至github:https://github.com/1049451037/xiaobaike/tree/master 那么通过Python来爬 ...
- redis百度百科和维基百科知识总结:
1. 百度百科知识总结: Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis ...
- Apache Mesos_百度百科
Apache Mesos_百度百科 Apache Mesos
- JEFF BANKS_百度百科
JEFF BANKS_百度百科 JEFF BANKS
- RCMTM _百度百科
RCMTM _百度百科 RCMTM
- c31 rotc_百度百科
c31 rotc_百度百科 c31 rotc
- bda_百度百科
bda_百度百科 bda
随机推荐
- Spring Boot特性(转)
摘要: 1. SpringApplication SpringApplication 类是启动 Spring Boot 应用的入口类,你可以创建一个包含 main() 方法的类,来运行 SpringA ...
- 企业级IM应该帮助员工提高绩效,避免无关的信息干扰
很多上班族一定熟悉如下的场景: 您早上上班一打开QQ,就弹出一个新闻集成窗口,随便点开看看吧,这一点不要紧,您就被一个又一个的链接带着逛下去了.等回过神来要工作的时候,发现已经在这些八卦新闻上浪费了一 ...
- Lucene 实例教程(二)
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本人声明.否则将追究法律责任. 作者: 永恒の_☆ 地址: http://blog.csdn.net/chenghui031 ...
- AsyncQueryHandler处理数据
参考:http://blog.csdn.net/hfreeman2011/article/details/8555474和http://blog.csdn.net/dragondog/article/ ...
- 随机生成器、thread(暂停)、清屏定义
1.生成一个随机生成器 Random a = new Random(); //()可以填写随机生成器的种子,这个种子只能是整数(int) ); //()内的数字代表小于5的非负整数,包括零,例如0,1 ...
- ViewPager实现启动引导页面(个人认为很详细)
效果如图: 启动页面是一张图片+延时效果,这里就不给出布局文件了. WelcomeActivity分析:在启动页面检测是否是第一次运行程序,如果是,则先跳转到引导界面的Activity——AndyVi ...
- web前端如何让网页布局稳定性和标准性?
刚开始学css+div布局的同学们,都比较困惑和难写的就是兼容性的问题了,特别是ie6等低版本的浏览器,随意国内逐步慢慢消失取代,但是现阶段还是会有点考虑因素再里面.我们写的网页布局怎么样才是合理的, ...
- Python 2.7 学习笔记 面向对象的编程
python是一种面向对象的语言.本文介绍如何用python进行面向对象的编程. 首先我们说下对象和类,类是一种类型的定义,对象是类的实例. 一.内置对象类型(内置类) 其实我们前面已经大量用到了对象 ...
- 设计模式 ( 十七) 状态模式State(对象行为型)
设计模式 ( 十七) 状态模式State(对象行为型) 1.概述 在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理.最直接的解决方案是将这些所有可能发生的情况全都考虑到.然后使用if... ...
- log4j的使用及参考
log4j.properties 使用 一.参数意义说明 输出级别的种类 ERROR.WARN.INFO.DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session ...