個人常用iOS第三方庫以及XCode外掛介紹

Eidesen發表於2015-11-30

前言

第三方庫是現在的程式設計師離不開的東西 不光是APP開發 基本上所有的商業專案 都會或多或少的使用到第三方庫

Github上Star>100的開源庫數量如下

可以看到JS以絕對的優勢排名第一 一定程度上也說明了JS在這幾年為什麼發展得這麼迅速 不會點JS都不好意思說自己是碼農 不過現在JS圈的造輪子浪潮也是愈演愈烈了 自己不寫個框架都不好意思打招呼

OC排名第四 相信這個排名還會上升 Swift暫時還擠不進前十 不過超過OC 也是指日可待(畢竟親兒子)

Xcode基本是Mac/iOS程式設計師的必備工具(AppCode我沒用過 不知道有多少人用?) 但是能說有多好用..這就仁者見仁了(跟Visual Studio是沒得比了) 不過在用了外掛以後 倒也能讓生產力提升一大截

接下來我會介紹一些我本人常用的第三方庫和外掛 也許不多 但是一定是久經考驗 用了一定不會錯
介紹
第三方庫

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) 介面簡單易用(以物件的形式使用資料 這點和aws/leancloud的思路很相似) 並且還跨平臺(iOS/Android均可使用 OC/Swift/Java都支援)
如果你習慣使用Mantle之類的Modal轉換的話 Realm-JSON肯定能討你歡心
作為YCombinator的孵化專案 其質量還是能得以保證的 至少我試用下來 確實給我以很大的驚喜 不管是API的設計 還是資料物件的定義 就連資料庫的版本升級 都非常的方便)

   
Xcode外掛

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的程式碼也被阻止了~~ 這點我覺得需要改進)  

相關文章