iOS快速开发框架Bee-Framework应用和解析(二) - Bee framework架构概览
生活随笔
收集整理的這篇文章主要介紹了
iOS快速开发框架Bee-Framework应用和解析(二) - Bee framework架构概览
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原文:
http://www.itnose.net/detail/6209552.html
2015-02-10 18:39
? 在第二部分里,分享一下Bee Framework架構(gòu)的看法。如果您下載了Bee Framework, 在/document/developer_manual.pdf有Bee的開發(fā)手冊。手冊里有典型的教程,也有對架構(gòu)的講解。本文試圖融入個人的理解,解答以下問題:
- ?Bee的MVC是如何工作的,核心組件是哪些?
- ?Bee的整體架構(gòu)如何?
- ?除了MVC, Bee提供了哪些常用的工具和服務(wù)?
- ?該如何使用Bee開始一個項目? ? ? ?? A1:Bee的核心類包括BeeModel, BeeMessage, BeeUIRouter, BeeUIStack, BeeUIBoard。這些類的流轉(zhuǎn)關(guān)系請見下圖: 看上去簡單:
- ? ? ? ? BeeModel封裝數(shù)據(jù)存儲(很多時候是NSMutableArray,也可以是SQL lite 數(shù)據(jù)庫)。BeeUIBoard持有BeeModel, 對Server發(fā)出數(shù)據(jù)請求。MVC的M部分。
- ? ? ? ? BeeMessage封裝網(wǎng)絡(luò)邏輯協(xié)議,可解析為JSON, XML,數(shù)據(jù),返回BeeModel本地存儲,也可以更新界面。MVC的C部分。
- ? ? ? ? BeeUIBoard擴展了UIViewController, 通過BeeModel進行數(shù)據(jù)存儲,通過BeeMessage進行數(shù)據(jù)通信,并管理自己的控件。MVC的V部分。
- ? ? ? ? BeeUIStack擴展了UINavigationController, 管理頁面導(dǎo)航。BeeUIRouter是rootViewController。沒錯,就是iOS App的基本骨架。熟悉框架的時候可以先看這幾個核心類的代碼,。
A2: ?Bee的整體架構(gòu)分層清晰,耦合少, 支持多種程度的復(fù)用。了解架構(gòu)后可以讓您和現(xiàn)有代碼整合時更輕松,調(diào)試修改框架代碼也更有效率。下圖摘自開發(fā)手冊: 最底層是Cocoa touch和第三方庫,包括fmdatabse, ASI http, JSONkit 等多種依賴。中間層是Core和工具層,提供數(shù)據(jù)庫,網(wǎng)絡(luò)等封裝。再往上就是第一個問題的MVC組件,除了支持MVC外,還支持讀取nib/xib, 支持Bee獨有的sinal作為事件系統(tǒng)。廣義的最上層包括Services, Tools, App, 和User codes。Service包括支付寶,微信,微博,定位,推送等服務(wù)的封裝,Bee通過反射支持這些Service,將代碼拖入工程編譯就能起作用。 Tools主要有 Scaffold,mac下的命令行工具,方便開發(fā)者將JSON數(shù)據(jù)快速生成BeeMessage代碼, xproj, 可以快速將工程里的.m文件加入或刪除fno-objc-arc選項。 Interface-builder: Safari插件,可以預(yù)覽和設(shè)計XML模板界面。這些工具可以在tools路徑下找到。App部分主要包括界面的XML模板和界面的代碼,Skeleton就是BeeUIApplication, 封裝UIWindow。User codes就是用戶的界面和邏輯了。 A3:Bee除了MVC和XML/CSS的界面開發(fā)方式, 還提供了一些有單獨使用價值的工具類,了解它們可以更好地了解Bee能做什么: - ? ? ? ? BeeSandBox: 封裝和簡化了應(yīng)用程序沙箱的操作。
- ? ? ? ? BeeRuntime: 存儲運行時的class, call stacks,用于反射。
- ? ? ? ? BeeSystemInfo: 查詢是否越獄,屏幕尺寸,UUID, 設(shè)備類型(iPAD/iPhone)等實用信息。
- ? ? ? ? BeeThread: GCD的封裝,提供foreQueue, backQueue兩個隊列。
- ? ? ? ? BeeDatabase: fmdatabse的封裝,提供數(shù)據(jù)庫功能。
- ? ? ? ? BeeFileCache, BeeMemoryCache, BeeImageCache, 緩存工具, FileCache通過key對文件緩存,Memory, ImageCache通過Array或Dictionary在內(nèi)存中緩存。
- ? ? ? ? BeeUserDefaults: 封裝和簡化對User defaults的操作。
- ? ? ? ? BeeUIImageLoader: 封裝通過GCD加載網(wǎng)絡(luò)圖片的流程。
- ? ? ? ? BeeUIKeyboard:封裝鍵盤交互的各類delegate。
- ? ? ? ? BeeUISignal: Bee獨有的事件類,提供附加對象,源對象,目標(biāo)對象,調(diào)用路徑等特性。
- ? ? ? ? BeeViewModel: 使用BeeUISignal的BeeModel, 支持事件,方便被UI對象持有。有幾種子類支持不同的展示模型(簡單展示,分頁,向下拉去更多Content)。 A4: ?推薦使用geek-zoo(Bee Framework官方)的方法:
- ? ? ? ? 將所有的界面梳理,分類,編號,文檔化。可參考官方的實例:https://github.com/GeekZooStudio/ECMobile_iOS,注意doc里文檔的方法。
- ? ? ? ? 估算每個界面(BeeUIModel)需要承載多少數(shù)據(jù)模型(BeeModel),需要多少數(shù)據(jù)協(xié)議(BeeMessage)
- ? ? ? ? 估算好了總的界面數(shù),總的數(shù)據(jù)模型,總的數(shù)據(jù)協(xié)議數(shù),就可以開始開發(fā)了。當(dāng)然也可以對一些關(guān)鍵問題進行設(shè)計。
總結(jié)
以上是生活随笔為你收集整理的iOS快速开发框架Bee-Framework应用和解析(二) - Bee framework架构概览的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专访iOS开发框架BeeFramewor
- 下一篇: iOS快速开发框架Bee-Framewo