第三方庫是如今的程序員離不開的東西,不光是APP開發,基本上全部的商業項目都會或多或少的使用到第三方庫。react
Github上Star>100的開源庫數量以下git
能夠看到JS以絕對的優點排名第一,必定程度上也說明了JS在這幾年爲何發展得這麼迅速,不會點JS都很差意思說本身是碼農。不過如今JS圈的造輪子浪潮也是愈演愈烈了,本身不寫個框架都很差意思打招呼。程序員
OC排名第四,相信這個排名還會上升。Swift暫時還擠不進前十,不過超過OC也是指日可待(畢竟親兒子)。github
Xcode基本是Mac/iOS程序員的必備工具(AppCode我沒用過 不知道有多少人用?) 可是能說有多好用..這就仁者見仁了(跟Visual Studio是沒得比了), 不過在用了插件之後,倒也能讓生產力提高一大截。sql
接下來我會介紹一些我本人經常使用的第三方庫和插件,也許很少,可是必定是久經考驗,用了必定不會錯。數據庫
第三方庫緩存
CocoaPod
CocoaPod並非iOS上的第三方庫,而是大名鼎鼎的第三方庫的管理工具。在CocoaPod沒有出現以前,第三方庫的管理是很是痛苦的,尤爲是一些大型的庫(好比nimbus) 每次對庫進行更新,均可能會很是的痛苦。
CocoaPod的出現解決了這些問題,以Framework的方式引入第三方庫,極大的節約了集成的時間,並且通吃Objective-C和Swift(Swift上的Cathatage我沒有實際用過,可是它的那種集成方式仍是比CocoaPod麻煩點)。框架
iCarousel
在iOS 4.x的時代(我也是從4.0開始接觸iOS開發的) Coverflow的效果可謂是風靡一時。初出茅廬的我當年對如何實現幾乎是一籌莫展。(當年全部的電影資訊類的APP:如布丁愛生活等,都須要實現Coverflow選片的效果 ,碰巧我也要作一個) iCarousel的出現替我解決了一個大的難題。
今後iCarousel成爲了我每一個項目的必備良藥(也是我最喜歡的庫),無論是Coverflow仍是輪播廣告,都能輕描淡寫的搞定。其內置的十來種顯示類型,基本能夠解決90%的UI需求,而其強大的自定義功能,則能夠解決剩餘的10% :)
不熟悉的朋友能夠嘗試一下其精美的demo(pod try iCarousel)。 全部的功能都在demo中盡收眼底。
做者nicklockwood也是一個高產的大神,同時維護着數量衆多且優質的開源庫(好比iVersion iRate),你們不妨去看一看、淘一淘。異步
AFNetworking/ Alamofire
HTTP框架的龍頭老大。當年在與ASIHTTPRequest的競爭中笑到了最後,(固然也是由於ASIHTTPRequest的做者不維護了,不過國內不少公司,由於歷史緣由都在自行維護) 因爲及時維護和擁抱語言的新特性,迅速被你們所接受和喜好。相信每一個人都用過,這裏就不贅述了。函數
MKNetworkKit
若是說AFNetworking是老大,那麼MKNetworkKit能夠說是小弟了。不過也由於比AFNetworking輕量的緣由,也得到了許多開發者的青睞。
當年由於ASIHTTPRequest中止維護了。在機緣巧合之下,我在AFNetworking和MKNetworkKit之間選擇了後者,並在不少項目中進行了使用。不過也許是由於AFNetworking發展得更快更迅速,而做者本人是單兵做戰的緣由,做者也基本放棄了更新(版本號在停留在0.8x) 十分惋惜。
SDWebImage
圖片異步下載和緩存管理的集大成者,UITableView的黃金搭檔。其代碼被開發者研究分享過無數次,喵大的Kingfisher(能夠說是Swift版的SDWebImage)也是深受其影響。
異步下載AFNetworking和MKNetworkKit都有實現,數據緩存也有FastImageCache與TMCache等。可是將其融會貫通的,惟有SDWebImage了。除了簡單的使用sd_setImageWithURL以外,SDImageCache也是能夠獨立使用的,功能也至關之強大。
ZXingObjC
zxing是Google出品的二維碼掃描組件,本來是Java編寫的。如今也有了各類語言的移植版,而ZXingObjC就是其中之一。
zxing支持各類主流的一維碼二維碼掃描,簡單易用。小廠若是要實現二維碼掃描這個功能,基本都會選擇zxing。
不過iOS7已內置了二維碼攝像頭掃描,而iOS8也已內置了二維碼靜態圖掃描,之後可能不再須要用到ZXing了 :(
MBProgressHUD
簡單易用且穩定的HUD組件,半透明黑底白字的風格也經久不衰, loading提示的最佳選擇。
Masonry/SnapKit
最好用的Autolayout手寫庫(Cartography也不錯啦!可是仍是用不慣) 幫助我輕易的跨越了Autolayout這道坎。
我也曾屢次在文章中提到過關於Masonry的使用方法,若是尚未用過的朋友,不妨看一看。
pop
Facebook的工程師一直是神通常的存在,對開源社區的貢獻也是巨大的,極大的推進了各類變成語言的發展。好比HipHop之於PHP;react之於JavaScript;pop之於Objective-C等等。
無論是HipHop、react、Facebook的工程師老是抱着顛覆的態度來開源, pop也不例外。這點以前我也簡單介紹過,而以pop爲基礎的paper一發布就震驚整個APP屆,在這點上pop也是厥功甚偉。
pop對自定義動畫也支持得很好,我也以pop的自定義動畫爲基礎寫過MMTweanAnimation.
ReactiveCocoa
提及來慚愧,大名鼎鼎的RAC,我只使用了點皮毛(只拿來作輸入驗證了)。
暫時尚未進行深層次的使用,對RAC的理解也停留在表面階段,不過這篇文章介紹得很是詳細,值得一看。
GPUImage
若是你要作圖像(照片或者視頻)的相關處理,或者只是簡單的想作個像Camera360同樣的拍照濾鏡,那麼你必定要研究一下GPUImage
如它的名字所述:GPUImage是基於GPU的圖像處理框架。咱們都知道 GPU是提高性能的關鍵,這也就是GPUImage如此重要,如此受歡迎的緣由。
Lumberjack
log系統是每一個項目都應該有的東西,而Lumberjack是log系統中的翹楚。
你能夠簡單的把它當成NSLog的替代品(簡單來講 Lumberjack比NSLog速度更快) 或者根據你的須要來打造一個更強大的日誌系統。
NSLogger
從名字能夠看出 NSLogger也是一個log系統。其特色是附帶了一個功能強大的Desktop Viewer,可讓你方便的查看APP產生的日誌。(支持分級篩選等等,甚至能夠直接log一張圖片)
AwesomeMenu
當年橫空出世的Path,其優美的設計、精彩的動畫、不知讓多少人嘴巴都合不攏。而最讚的就是它的彈出菜單,一時成爲了每一個APP爭相模仿的對象,有了AwesomeMenu,你能夠輕易的實現它。
MMDrawerController
普通的側滑菜單,用MMDrawerController就搞定了。
realm
做爲數據存儲的一等公民,CoreData的地位不言而喻。不過也由於使用起來不夠方便,纔會出現MagicalRecord這種輔助類,甚至fmdb這種基於純sqlite的庫。而realm以挑戰者的身份閃亮登場,不只讀取性能更快(聽說數倍於CoraData) 接口簡單易用(以對象的形式使用數據,這點和leancloud的思路很類似) 而且還跨平臺(iOS/Android都可使用 OC/Swift/Java都支持)
若是你習慣使用Mantle之類的Modal轉換的話,Realm-JSON確定能討你歡心。
做爲YCombinator的孵化項目,其質量仍是能得以保證的,至少我試用下來,確實給我以很大的驚喜。無論是API的設計,仍是數據對象的定義,就連數據庫的版本升級,都很是的方便。
Alcatraz
與CocoaPod相似。Alcatraz是Xcode的插件管理器,可以讓你方便的管理Xcode的插件。不只能夠管理插件,還能夠管理主題等等。
FuzzyAutocomplete
若是隻讓我選一個插件留下,那必須是FuzzyAutocomplete.強大的模糊匹配輸入,讓你寫代碼的時候不再用費腦子去記住名字那麼長的對象或者函數名了,好用到讓你想哭。
XAlign
做爲有潔癖的碼農,看到不對齊的代碼必定是不能忍的,XAlign能夠輕鬆解決你的煩惱。
VVDocumenter-Xcode
喵大的又一力做,可以識別當前函數的參數和返回類型,幫助你快速編寫符合規範的註釋。(目前是以Javadoc爲標準)
deriveddata-exterminator
若是你總是遇到Xcode抽風,提示你要由於某個緣由要刪除某個目錄下的文件,不然編譯不過,那你必定會被這個插件感動,由於說明了遇到這個事的人不僅你一個。
Xcode-Quick-Localization
多語言在iOS開發中一直不是很方便。有了它, 你能夠省很多事。
Backlight-for-XCode
就若是Xcode默認的80個字的分頁提示同樣,高亮當前正在編輯的一行,也是一種友好的提示,喜不喜歡也就因人而異了。
Helmet
若是你跟我同樣,常常開發的時候回去查看系統API的話,那必定有過不當心按錯鍵而後修改了系統頭文件的經驗,就算你撤銷了修改,從新編譯時Xcode也會報錯,提示你清除cache helmet能夠有效的防止這個問題的發生。(不過你想改pod的代碼也被阻止了~~ 這點我以爲須要改進)
文章源自:http://adad184.com/2015/07/08/my-favorite-libraries-and-plugins/