好的架構不是設計出來的,而是進化而來的!本文是一位學習iOS開發者根據多年的經驗總結了iOS工程結構,穩重總結了在開發iOS項目中工程實踐,非常實用,推薦過來,一起來看看吧,希望對大家有所幫助
寫在前面
從2011年底開始學習iOS開發,到現在也已經快3年了,雖然中途沒有一直進行iOS的開發(總是在Android和iOS間切換),但始終沒有離開,而我現在的工作也一樣,在iOS和Android間來回游走,正如我博客的slogan一樣,“In Android&iOS”。其實對我來說,兩個平臺沒有絕對的好壞,我都喜歡、我都熱愛。有人會說,同樣的產品在不同平臺做兩次不會覺得厭煩嗎?這個問題我會給出肯定的回答,不會!因為如果你真的喜歡你所做的產品,做多少次都不會覺得煩,每一次的復盤都是一次改進的過程,很多創新都是在重復的工作中產生的。在技術層面,同一套思想用不同的技術來實現,本身就是一個加強對不同平臺技術鞏固和理解的過程,技術本來就是來承載和表現業務的,在實現業務的過程中加強對業務的理解、實現對業務的創新,這或許也就是堆代碼和寫程序的區別吧!^_^
我的iOS工程結構
接下來,我就簡單介紹下我做iOS項目時使用的工程結構。首先要說的是,這只是我的工程結構,并不是規范,或許它存在很多問題和不規范的地方,我只是把它分享出來,給大家提供一個參考,也希望收到大家的一些反饋來幫助我改進!
項目結構
下圖是我做iOS項目的一個常用工程結構,整體模式還是按照MVC的結構,只是在每一層做了一些細分處理,下面就簡單介紹下。
iOS工程中沒有像Java那樣非常嚴格的分包機制,不過在iOS工程中我們也可以通過Group的方式在工程中實現邏輯分包,這樣更有利于我們組織和管理代碼,使工程結構更清晰和易于理解。在我的工程結構中,主要有如下group:
Application:這個group中放的是AppDelegate和一些系統常量及系統配置文件;
Base:一些基本父類,包括父ViewController和一些公用頂層自定義父類,其他模塊的類一般都繼承自這里的一些類;
Controller:系統控制層,放置ViewController,均繼承于Group Base中的BaseViewController或BaseTableViewController;
View:系統中視圖層,由于我比較喜歡通過代碼實現界面,所以這里放的都是繼承于UIView的視圖,我將視圖從ViewController中分離出來全部放在這里,這樣能保持ViewController的精簡;
新聞熱點
疑難解答
圖片精選