寫iOS 程序的時候每每須要不少第三方框架的支持,能夠大大減小工做量,講重點放在軟件自己的邏輯實現上。
html
GitHub 裏面有大量優秀的第三方框架,並且 License 對商業很友好。一下摘錄一下幾乎每一個項目都想集成的幾個框架。git
1. Mantlegithub
Mantle 讓咱們能簡化 Cocoa 和 Cocoa Touch 應用的 model 層。簡單點說,程序中常常要進行網絡請求,請求到得通常是 json 字符串,咱們通常會建一個 Model 類來存放這些數據。這就要求咱們編寫一系列的序列化代碼,來把 json 轉換爲 Model 。這很費時間,容易錯,不容易修改。 Mantle 很好的解決了這個問題,並且更易用。json
GitHub : https://github.com/Mantle/Mantlesegmentfault
參考:
安全
CocoaPod 集成: pod 'Mantle', '~> 1.5.4'框架
2. Masonryide
IB 時代,若是你還在用代碼絕對佈局就太 low 了。隨着蘋果發佈 iPhone6 、 iPhone 6 plus 。 iOS 設備將會出現愈來愈豐富的屏幕尺寸,咱們不可能根據每一個尺寸作一套佈局。因此,使用 autolayout 就頗有必要了。在 storyboard 中,能夠很是方便的使用 autolayout ,可是爲了更好的協做開發,有些公司依然在手寫佈局,使人沮喪的是蘋果提供的 autolayout 語法晦澀難懂,很是影響效率(你能夠在 這裏 動態查看 autolayout 的語法)。 Masonry 就是設計來解決複雜的手寫 autolayout 。如何優雅的使用 autolayout ,且看 Masonry 。工具
GitHub : https://github.com/Masonry/Masonry
參考:使用方法,請看 README
CocoaPod 集成: pod 'Masonry', '~> 0.6.1'
3. Reachability
移動互聯網時代,應該不多有應用是不須要網絡鏈接的吧。監測網絡鏈接狀態幾乎是必不可少的一部分。 Reachability 能夠完美的完成這一任務
參考:使用方法很是簡單,請看 README
CocoaPod 集成: pod 'Reachability', '~> 3.2'
4. BlocksKit
BlocksKit絕對是 Objective-C 的知心伴侶,它爲 OC 經常使用類提供了強大的 Block 語法支持,使得編寫 OC 代碼變得溫馨、快速、優雅。反正我是絕對離不開它。
CocoaPod 集成: pod 'BlocksKit', '~> 2.2.5'
5. KVOController
若是你在項目中有使用 KVO ,那麼 KVOController 絕對是個好選擇。它是 facebook 開源的一個 KVO 加強框架。有如下幾個特性:
使用 Blocks 、自定義 Actions 或者 NSKeyValueObserving 回調進行通知 .
觀測者移除時無異常
控制器 dealloc 時隱式的觀測者移除
提高使用 NSKeyValueObservingInitial 的性能
線程安全並提供在觀測者恢復時額外的保護
還有什麼理由不使用 KVOController 呢?
參考: KVOController : facebook 開源的 KVO ( Key-value Observing )工具
CocoaPod : pod 'KVOController', '~> 1.0.3'
6. MBProgressHUD
一個老牌、經典的通知組件,若是大家美工沒有專門設計等待和通知視圖,那就用它吧!
GitHub : https://github.com/jdg/MBProgressHUD
參考
CocoaPod : pod 'MBProgressHUD', '~> 0.9'
7. ODRefreshControl
不少公司都本身設計下拉刷新視圖,好比網易新聞 iOS 客戶端,下拉的時候會有廣告出現。若是你只是須要一個下拉刷新,那麼能夠考慮 ODRefreshControl ,它是原 iOS6 上的橡皮糖刷新樣式,頗有意思。如今也不少大的 App 在用,好比蝦米音樂和 QQ 客戶端。
CocoaPod : pod 'ODRefreshControl', '~> 1.1.0'
8. pop
又是 Facebook 開源的。大名鼎鼎的 pop ,作動畫的不二之選。收下它吧。
GitHub : https://github.com/facebook/pop
CocoaPod : pod 'pop', '~> 1.0.7'
9. AFNetworking
Objective-C下網絡請求庫。
參考
CocoaPod : pod 'AFNetworking', '~> 2.5.0