
文章帶目錄版請移步簡紙書生
在確定做一個項目之前有很多的因素需要考慮,筆者這里不討論項目管理中的一些比如需求確定了,項目立項這些東西。主要從項目的動工講一講自己覺得需要注意的方面。
- 前提:你已經(jīng)具備了開發(fā)的能力。
進(jìn)入主題:
開發(fā)帳號的申請
自己前不久寫過一篇入門及的帳號申請的博客,小白也能看懂。
項目的編碼風(fēng)格
項目的編碼風(fēng)格就像是一個人內(nèi)在氣質(zhì),不同的編碼風(fēng)格同樣能完成項目的開發(fā)。指定了一套統(tǒng)一的編碼風(fēng)格,更有益于后期開發(fā)人員的維護(hù),比如開發(fā)人員的離職,統(tǒng)一的風(fēng)格讓新人更快的上手。
這里收集了目前比較流行或者說是較好的編碼規(guī)范(我公司就是按照這樣的要求進(jìn)行代碼審查的)
編程語言 | 編碼規(guī)范鏈接 |
-----|------|----
OC (中文) | OC之禪 |
Swift(英文) | The Official raywenderlich.com Swift Style Guide. |
這兩套編碼規(guī)范足夠滿足開發(fā)iOS相關(guān)應(yīng)用的了。
項目的架構(gòu)
對于剛?cè)腴T的iOS開發(fā)人員來說,基本上第一個實際項目都是MVC架構(gòu)的。維護(hù)過老項目的同學(xué)就應(yīng)該知道,按照這種方式,臃腫的VC到后期基本上能夠達(dá)到兩三千行,如果這些代碼不是自己寫的,恭喜里,慢慢享受幫別人填坑的過程吧。
在設(shè)定項目架構(gòu)之前,肯定需要對相關(guān)架構(gòu)有所了解吧,來看看老外分析的結(jié)果。
iOS Architecture Patterns 需要翻墻,還有已經(jīng)有人翻譯過了
iOS 架構(gòu)模式分析 國人翻譯的
老外寫文章的風(fēng)格和國內(nèi)有很多不一樣,或許是因為翻譯的問題,自我感覺講的內(nèi)容太多的累贅,里面的名字也寫得很高大上。詳情請直接點擊鏈接。
當(dāng)前比較流行的方式應(yīng)該算是MVVM了,之前了解過一點ReactCocoa,但是在實際項目中還沒有用起來過。網(wǎng)上關(guān)于ReactCocoa的分析也很多。這里附上幾篇分析得不錯的連接供各位折騰。
ReactCocoa原理分析篇
老外篇
ReactiveCocoa and MVVM, an Introduction
雷神系列(原理分析得很不錯,關(guān)于runtime的也值得一看)
ReactCocoa實踐篇
崢吖(主要講如何使用,實用為主)
把以上的鏈接挨著一個個看完之后,對iOS的架構(gòu)或許會有更深的理解。
項目目錄結(jié)構(gòu)
項目目錄結(jié)構(gòu)再項目初期的時候并沒顯得很重要。但是當(dāng)項目迭代了多個版本后,估計你去找一個需要的文件除了使用Xcode的shift+command+o之外很難準(zhǔn)確的找到。
最常用的莫過于
-- Models
-- Views
-- Controllers(或者ViewModels)
-- Nets
-- Helpers
個人經(jīng)過實踐覺得,將功能模塊來劃分(比如根據(jù)Tabbar上Item來劃分)。如微信中,就按照微信,通訊錄,發(fā)現(xiàn),我?guī)讉€模塊分幾個大的部分,然后在各個部分里面加入如上的結(jié)構(gòu)。
-- 微信
--Models
--Views
--...
-- 通訊錄
--Models
--Views
--...
-- Public
--Models
--Views
-- ...
項目第三方管理
國內(nèi)用得做的應(yīng)該算是cocoapods了。這個第三方管理庫著實為我們解決了不少問題。但是如果沒有使用好,同樣會造成很多的問題。自己踩過的坑有,版本升級,開發(fā)人員用不同的cocoapods導(dǎo)致異常,cocoapods的完全重裝等等。
相關(guān)使用介紹我是參照的唐巧寫的用CocoaPods做iOS程序的依賴管理

可以建立多個Scheme
關(guān)于iOS項目中的arget,scheme,project和build setting概念可以看官方給出的解釋。這是最為直接了當(dāng)?shù)摹?/p>
iOS中arget,scheme,project和build setting概念
如果英文不是很好,可以看看
iOS中workspace,project,target,scheme 解析
關(guān)于Scheme的命名可以已經(jīng)開發(fā)版,測試版,發(fā)布版來分類。
如果英文夠好可以看看
How to Use Xcode Targets to Manage Development and Production Builds
如果你還愛折騰
關(guān)于項目持續(xù)集成自己一直沒有涉及過。所以也不能寫什么東東了。不過可以提供一些有用的鏈接。
About Continuous Integration in Xcode這個感覺需要xcode服務(wù)器,我望而卻步了。

iOS CI with Jenkins這篇還沒來得及看。作者寫的時間居然是2014年,??

總結(jié)
本類想些一些關(guān)于iOS架構(gòu)方面的,沒想到只把項目搭建寫了就已經(jīng)不早了,哎!時間真的過得太快。關(guān)于架構(gòu)方面具體的分析,抽個空在寫吧。