日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS快速开发框架Bee-Framework应用和解析(二) - Bee framework架构概览

發(fā)布時間:2025/3/20 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。