BeeFramework

  藉助於OC語言特性,Bee將核心邏輯注入到NSObject基類中去,在使用Bee時,大多數狀況下能夠沒必要修改現有類繼承關係,這樣設計是把雙刃劍,也有可能與您現有方法名衝突。
     在您代碼中任何位置均可以這樣作:    
     [self GET:@"http://www.qq.com/logo.png"];    
     [self POST:@"http://api.qq.com/" 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歷史列表
       * 界面狀態:界面存活,數據,狀態
       * 沙盒瀏覽:在線查看沙箱目錄中全部文件
       * 異常模擬等功能


主要模塊
--------------------


   * 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/
     第三方庫引用




已知問題
--------------------
1. 內存泄露(正在解決)
2. 下拉刷新(沒寫完)




運行例程
--------------------


雙擊打開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]: http://www.whatsbug.com
[2]: http://itunes.apple.com/cn/app/qq-you-xi-da-ting/id443908613?mt=8
[3]: http://itunes.apple.com/cn/app/qq-kong-jian/id364183992?mt=8
[4]: http://bbs.whatsbug.comapi

相關文章
相關標籤/搜索