1. 程式人生 > >iOS快速開發框架Bee-Framework應用和解析(二) --- Bee framework架構概覽

iOS快速開發框架Bee-Framework應用和解析(二) --- Bee framework架構概覽

        在第二部分裡,分享一下Bee Framework架構的看法。如果您下載了Bee Framework, 在/document/developer_manual.pdf有Bee的開發手冊。手冊裡有典型的教程,也有對架構的講解。本文試圖融入個人的理解,解答以下問題:

  •  Bee的MVC是如何工作的,核心元件是哪些?
  •  Bee的整體架構如何?
  •  除了MVC, Bee提供了哪些常用的工具和服務?
  •  該如何使用Bee開始一個專案?       
       A1:Bee的核心類包括BeeModel, BeeMessage, BeeUIRouter, BeeUIStack, BeeUIBoard。這些類的流轉關係請見下圖:        
        看上去簡單:
  •         BeeModel封裝資料儲存(很多時候是NSMutableArray,也可以是SQL lite 資料庫)。BeeUIBoard持有BeeModel, 對Server發出資料請求。MVC的M部分。
  •         BeeMessage封裝網路邏輯協議,可解析為JSON, XML,資料,返回BeeModel本地儲存,也可以更新介面。MVC的C部分。
  •         BeeUIBoard擴充套件了UIViewController, 通過BeeModel進行資料儲存,通過BeeMessage進行資料通訊,並管理自己的控制元件。MVC的V部分。
  •         BeeUIStack擴充套件了UINavigationController, 管理頁面導航。BeeUIRouter是rootViewController。沒錯,就是iOS App的基本骨架。熟悉框架的時候可以先看這幾個核心類的程式碼,。
        A2:  Bee的整體架構分層清晰,耦合少,支援多種程度的複用。瞭解架構後可以讓您和現有程式碼整合時更輕鬆,除錯修改框架程式碼也更有效率。下圖摘自開發手冊:                 最底層是Cocoa touch和第三方庫,包括fmdatabse, ASI http, JSONkit 等多種依賴。中間層是Core和工具層,提供資料庫,網路等封裝。再往上就是第一個問題的MVC元件,除了支援MVC外,還支援讀取nib/xib, 支援Bee獨有的sinal作為事件系統。廣義的最上層包括Services, Tools, App, 和User codes。Service包括支付寶,微信,微博,定位,推送等服務的封裝,Bee通過反射支援這些Service,將程式碼拖入工程編譯就能起作用。 Tools主要有Scaffold
,mac下的命令列工具,方便開發者將JSON資料快速生成BeeMessage程式碼,xproj, 可以快速將工程裡的.m檔案加入或刪除fno-objc-arc選項。Interface-builder: Safari外掛,可以預覽和設計XML模板介面。這些工具可以在tools路徑下找到。App部分主要包括介面的XML模板和介面的程式碼,Skeleton就是BeeUIApplication, 封裝UIWindow。User codes就是使用者的介面和邏輯了。         A3:Bee除了MVC和XML/CSS的介面開發方式, 還提供了一些有單獨使用價值的工具類,瞭解它們可以更好地瞭解Bee能做什麼:
  •         BeeSandBox: 封裝和簡化了應用程式沙箱的操作。
  •         BeeRuntime: 儲存執行時的class, call stacks,用於反射。
  •         BeeSystemInfo: 查詢是否越獄,螢幕尺寸,UUID, 裝置型別(iPAD/iPhone)等實用資訊。
  •         BeeThread: GCD的封裝,提供foreQueue, backQueue兩個佇列。
  •         BeeDatabase: fmdatabse的封裝,提供資料庫功能。
  •         BeeFileCache, BeeMemoryCache, BeeImageCache, 快取工具, FileCache通過key對檔案快取,Memory, ImageCache通過Array或Dictionary在記憶體中快取。
  •         BeeUserDefaults: 封裝和簡化對User defaults的操作。
  •         BeeUIImageLoader: 封裝通過GCD載入網路圖片的流程。
  •         BeeUIKeyboard:封裝鍵盤互動的各類delegate。
  •         BeeUISignal: Bee獨有的事件類,提供附加物件,源物件,目標物件,呼叫路徑等特性。
  •         BeeViewModel: 使用BeeUISignal的BeeModel, 支援事件,方便被UI物件持有。有幾種子類支援不同的展示模型(簡單展示,分頁,向下拉去更多Content)。
  •         BeeUIApplication: AppDelegate會使用,提供應用程式狀態通知(記憶體警告,掛起,執行,終止狀態切換)。
  •         NSObject+BeeKeyChain category: 鑰匙串讀取。
A4:  推薦使用geek-zoo(Bee Framework官方)的方法:
  •         將所有的介面梳理,分類,編號,文件化。可參考官方的例項:https://github.com/GeekZooStudio/ECMobile_iOS,注意doc裡文件的方法。
  •         估算每個介面(BeeUIModel)需要承載多少資料模型(BeeModel),需要多少資料協議(BeeMessage)
  •         估算好了總的介面數,總的資料模型,總的資料協議數,就可以開始開發了。當然也可以對一些關鍵問題進行設計。

相關推薦

iOS快速開發框架Bee-Framework應用解析) --- Bee framework架構概覽

        在第二部分裡,分享一下Bee Framework架構的看法。如果您下載了Bee Framework, 在/document/developer_manual.pdf有Bee的開發手冊。手冊裡有典型的教程,也有對架構的講解。本文試圖融入個人的理解,解答以下問

iOS快速開發框架Bee-Framework應用解析一) --- 為什麼使用Bee framework

        去年夏天,兼職參與了一個創業專案iOS部分的開發。可能是iOS剛入門的原因吧,對蘋果原生的開發方式有以下的不好的感覺:         巨型ViewController, 由於delegate和data source的存在,讓view controller

.netcore 微服務快速開發框架 Anno&Viper 註冊中心 服務上線下線預警通知)

1、微服務時代,服務上線先預警通知   在微服務大行其道的今天,相信很多人都用上了微服務或者是微服務的概念也已經有了一個深刻的瞭解。今天我們不在這裡展開闡述,今天我們要說的是微服務伴侶預警通知。 2、註冊中心概念   在一個微服務叢集的系統中,通常少則三五個微服務,多則成千上百個微服務。微服務之間也會因為業務

前端開發框架總結之Angular實用技巧

                                前端開發框架總結之Angular實用技巧(二) 上文講了Angular自

iOS中執行緒Call Stack的捕獲解析

1. 部分參考資料 做這一塊時也是查閱了很多連結和書籍,包括但不限於: 以及很多Google Search。 2. 相關API和資料結構 由於我們在上面回溯執行緒呼叫棧拿到的是一組地址,所以這裡進行符號化的輸入輸出應該分別是地址和符號,介面設

Formik官方應用案例解析)同步校驗

ssa tools require min roc 是否 支持 array tps 簡介 官方示例工程formik-09x-synchronous-validation-example展示的是基於Formik的表單開發中如何進行定制的同步校驗的問題。 上一個實例相關內容回顧

Android 開源框架Universal-Image-Loader完全解析)--- 圖片快取策略詳解

本篇文章繼續為大家介紹Universal-Image-Loader這個開源的圖片載入框架,介紹的是圖片快取策略方面的,如果大家對這個開源框架的使用還不瞭解,大家可以看看我之前寫的一篇文章Android 開源框架Universal-Image-Loader完全解析(一)---

android懸浮球實現各種功能、快速開發框架、單詞、筆記本、應用市場應用等源碼

jpeg 源碼 新聞 thread 並不是 類型 and 所有 大小 Android精選源碼 懸浮球,實現一鍵靜音,一鍵鎖頻,一鍵截屏等功能 一個Android快速開發框架,MVP架構 Android QQ小紅點的實現源碼 android一款單詞應用完整app源碼

learun.framework v7 — . net快速開發框架

快速開發框架 力軟 LeaRun.Framework v7,基於.NET的快速信息化系統開發、整合框架,為企業或個人在.NET環境下快速開發系統提供了強大的支持,開發人員不需要開發系統的基礎功能和公共模塊,框架自身提供了強大的函數庫和開發包,開發人員只須集中精力專註於業務部分的開發,因此大大提高

Learun.framework快速開發框架-功能特點與手機app

快速開發框架 快速開發平臺 公司的形態,團隊的狀態,直接影響著我們對開發框架的選擇。我們這樣的小成本開發團隊,更主要的是追求快而省。框架要開源,不必付出額外的成本開發要快速,能夠更迅速的根據客戶需求:代碼要簡單,任何經過簡單培訓的程序員都幾乎能夠勝任。 領導一直再給我們灌入快速開發的

基於 spring boot spring mvc 的快速開發框架 summer-boot

summer-boot 詳細介紹 此專案目的在於提供一個簡化、簡潔、迅速的開發架構。 它是基於spring boot和spring mvc高度封裝的快速開發框架,資料庫操作工具summerDao是基於jdbcTemplate高度封裝簡化、擁有超級簡單實用的O

NET快取框架CacheManager在混合式開發框架中的應用1)-CacheManager的介紹使用 基於C#的MongoDB資料庫開發應用4)--Redis的安裝及使用

在我們開發的很多分散式專案裡面(如基於WCF服務、Web API服務方式),由於資料提供涉及到資料庫的相關操作,如果客戶端的併發數量超過一定的數量,那麼資料庫的請求處理則以爆發式增長,如果資料庫伺服器無法快速處理這些併發請求,那麼將會增加客戶端的請求時間,嚴重者可能導致資料庫服務或者應用服務直接癱瘓。快取方案

.NET快取框架CacheManager在混合式開發框架中的應用1)-CacheManager的介紹使用 基於C#的MongoDB資料庫開發應用4)--Redis的安裝及使用

在我們開發的很多分散式專案裡面(如基於WCF服務、Web API服務方式),由於資料提供涉及到資料庫的相關操作,如果客戶端的併發數量超過一定的數量,那麼資料庫的請求處理則以爆發式增長,如果資料庫伺服器無法快速處理這些併發請求,那麼將會增加客戶端的請求時間,嚴重者可能導致資料庫服務或者應用服務直接癱瘓。快取方案

Curator-Framework開源Zookeeper快速開發框架介紹

Zookeeper 客戶端框架 Curator-Framework 來自Netflix公司,現在歸Apache,目前版本2.0.1! 在使用ZK開發時會遇到讓人頭疼的幾個問題,ZK連線管理、SESSION失效等一些異常問題的處理,Curator替我們解決了這些問題,通過對ZK連線狀態的監控來做出相應的重連

android快速開發框架--快速實現 頁面 載入中 載入失敗 無資料等狀態以及下拉重新整理自動載入

RapidDevelop-Android快速開發框架 框架持續更新中 這個框架是從平時專案裡用的比較多的框架裡整合而來 對本專案感興趣的可以一起研究喜歡的朋友歡迎star 同時也歡迎大家的寶貴意見issues 如果大家對MVP模式的開發 網路爬蟲以及快取策略

iOS越獄開發】怎樣將應用打包成.ipa文件

ria font 配置文件 例如 方法 col stat pack 應該 在項目開發中。我們經常須要將project文件打包成.ipa文件。提供給越獄的iphone安裝。 以下是一種方法: 1、首先應該給project安裝好配置文件(這裏不再敖述),在ios de

CRL快速開發框架4.4版發布,支持主從讀寫分離

需求 生產 由於 logs else gety img 分離 dap 經過一些調整和優化,4.3已經運行在生產環境,對於不久將會遇到的查詢性能,讀寫分離需求列上日程 讀寫分離需求 對於一個數據庫作了主從發布/訂閱,主庫為DB1,從庫為DB2 所有寫入通過DB1,所有查詢通過

.net快速開發框架工作流引擎篇)

整合 現在 效果 也會 ear workflow tar 流程設計 人員 .net快速開發框架(工作流引擎篇) 現在辦公要流程化,營銷也有流程,流程現在已經是各種生活活動不可缺少的一部分了。就像這句耳熟能詳的話:“凡事,我們先走個流程嘛!”,在信息化、流程化的背景下。工

權限管理系統 用戶信息 --MyRapid 快速開發框架 Winform

ext import -c font 頁面 port overflow clas 1.7 1.1.2 用戶信息用戶信息對用戶信息進行登記,對於權限管理來說,這裏只有用戶編號具有意義,權限系統根據用戶編號進行用戶識別綁定。其他信息,例如:權限、部門、帳號類型等是框架所需要用到

權限管理系統 用戶角色 --MyRapid 快速開發框架 Winform

back over form eight block overflow enter osi ati 1.1.3 用戶角色用戶角色將用戶和角色進行綁定,用戶對象,角色對象分別為獨立的對象,在數據庫中位於兩個獨立的數據表中,以主鍵Id進行綁定識別,將用戶Id和角色Id進行綁定,