寫(xiě)iOS程序的時(shí)候往往需要很多第三方框架的支持,可以大大減少工作量,講重點(diǎn)放在軟件本身的邏輯實(shí)現(xiàn)上。
GitHub里面有大量?jī)?yōu)秀的第三方框架,而且License對(duì)商業(yè)很友好。一下摘錄一下幾乎每個(gè)項(xiàng)目都想集成的幾個(gè)框架。
1. Mantle
Mantle讓我們能簡(jiǎn)化Cocoa和Cocoa Touch應(yīng)用的model層。簡(jiǎn)單點(diǎn)說(shuō),程序中經(jīng)常要進(jìn)行網(wǎng)絡(luò)請(qǐng)求,請(qǐng)求到得一般是json字符串,我們一般會(huì)建一個(gè)Model類來(lái)存放這些數(shù)據(jù)。這就要求我們編寫(xiě)一系列的序列化代碼,來(lái)把json轉(zhuǎn)換為Model。這很費(fèi)時(shí)間,容易錯(cuò),不容易修改。Mantle很好的解決了這個(gè)問(wèn)題,而且更易用。
- GitHub : https://github.com/Mantle/Mantle
- 參考:工具篇:Mantle
源碼篇:Mantle - CocoaPod集成:pod 'Mantle', '~> 1.5.4'
2. Masonry
IB時(shí)代,如果你還在用代碼絕對(duì)布局就太low了。隨著蘋(píng)果發(fā)布iPhone6、iPhone 6 plus。iOS設(shè)備將會(huì)出現(xiàn)越來(lái)越豐富的屏幕尺寸,我們不可能根據(jù)每個(gè)尺寸做一套布局。所以,使用autolayout就很有必要了。在storyboard中,可以非常方便的使用autolayout,但是為了更好的協(xié)作開(kāi)發(fā),有些公司依然在手寫(xiě)布局,令人沮喪的是蘋(píng)果提供的autolayout語(yǔ)法晦澀難懂,非常影響效率(你可以在這里動(dòng)態(tài)查看autolayout的語(yǔ)法)。Masonry就是設(shè)計(jì)來(lái)解決復(fù)雜的手寫(xiě)autolayout。如何優(yōu)雅的使用autolayout,且看Masonry。
- GitHub:https://github.com/Masonry/Masonry
- 參考:使用方法,請(qǐng)看README
- CocoaPod集成:pod 'Masonry', '~> 0.6.1'
3. Reachability
移動(dòng)互聯(lián)網(wǎng)時(shí)代,應(yīng)該很少有應(yīng)用是不需要網(wǎng)絡(luò)連接的吧。監(jiān)測(cè)網(wǎng)絡(luò)連接狀態(tài)幾乎是必不可少的一部分。Reachability可以完美的完成這一任務(wù)
- GitHub:https://github.com/tonymillion/Reachability
- 參考:使用方法非常簡(jiǎn)單,請(qǐng)看README
- CocoaPod集成:pod 'Reachability', '~> 3.2'
4. BlocksKit
BlocksKit絕對(duì)是Objective-C的知心伴侶,它為OC常用類提供了強(qiáng)大的Block語(yǔ)法支持,使得編寫(xiě)OC代碼變得舒適、快速、優(yōu)雅。反正我是絕對(duì)離不開(kāi)它。
- GitHub:https://github.com/zwaldowski/BlocksKit
- 參考:block使用小結(jié)、在arc中使用block、如何防止循環(huán)引用(zz)
- CocoaPod集成:pod 'BlocksKit', '~> 2.2.5'
5. KVOController
如果你在項(xiàng)目中有使用KVO,那么KVOController絕對(duì)是個(gè)好選擇。它是facebook開(kāi)源的一個(gè)KVO增強(qiáng)框架。有以下幾個(gè)特性:
使用 Blocks、自定義 Actions 或者 NSKeyValueObserving 回調(diào)進(jìn)行通知.
觀測(cè)者移除時(shí)無(wú)異常
控制器 dealloc 時(shí)隱式的觀測(cè)者移除
提升使用 NSKeyValueObservingInitial 的性能
線程安全并提供在觀測(cè)者恢復(fù)時(shí)額外的保護(hù)</br>
還有什么理由不使用KVOController呢?參考:KVOController:facebook 開(kāi)源的 KVO(Key-value Observing)工具
CocoaPod:pod 'KVOController', '~> 1.0.3'
6. MBProgressHUD
一個(gè)老牌、經(jīng)典的通知組件,如果你們美工沒(méi)有專門(mén)設(shè)計(jì)等待和通知視圖,那就用它吧!
- GitHub:https://github.com/jdg/MBProgressHUD
- 參考:
- CocoaPod:pod 'MBProgressHUD', '~> 0.9'
7. ODRefreshControl
很多公司都自己設(shè)計(jì)下拉刷新視圖,比如網(wǎng)易新聞iOS客戶端,下拉的時(shí)候會(huì)有廣告出現(xiàn)。如果你只是需要一個(gè)下拉刷新,那么可以考慮ODRefreshControl,它是原iOS6上的橡皮糖刷新樣式,很有意思。現(xiàn)在也很多大的App在用,比如蝦米音樂(lè)和QQ客戶端。
*GitHub:https://github.com/Sephiroth87/ODRefreshControl
*參考:
- CocoaPod:pod 'ODRefreshControl', '~> 1.1.0'
8. pop
又是Facebook開(kāi)源的。大名鼎鼎的pop,做動(dòng)畫(huà)的不二之選。收下它吧。
- GitHub:https://github.com/facebook/pop
- 參考:Facebook Pop 使用指南 popping(pop的使用實(shí)例)
- CocoaPod:pod 'pop', '~> 1.0.7'
9. AFNetworking
Objective-C下網(wǎng)絡(luò)請(qǐng)求庫(kù)。
- GitHub:https://github.com/AFNetworking/AFNetworking
- 參考
- CocoaPod:pod 'AFNetworking', '~> 2.5.0'
附加幾個(gè)
10. SDWebImage
幫助你異步加載網(wǎng)絡(luò)圖片,當(dāng)然,它有緩存功能。簡(jiǎn)單、實(shí)用、功能強(qiáng)大。
- GitHub:https://github.com/rs/SDWebImage
- 使用請(qǐng)參考相應(yīng)文檔
- CocoaPod: pod 'SDWebImage', '~>3.7'
11. TTTAttributedLabel
TTTAttributedLabel 是功能強(qiáng)大的UILabel,包含大部分對(duì)UILabel的定制。如果你想讓一個(gè)UILabel可以點(diǎn)擊并截取它,那么使用TTTAttributedLabel吧
使用請(qǐng)參考相應(yīng)文檔
CocoaPod:pod 'TTTAttributedLabel'