文章來源:http://www.cocoachina.com/ios/20150727/12720.htmlhtml
我熱愛開源,更喜好那些花費寶貴的業餘時間來創造奇蹟的開發者們,感謝他們將本身辛苦勞動的成果無償分享給你們。開源做者和貢獻者們,大家太了不得了,感謝大家所付出的一切。react
鑑於我是收集不全會死星人,這裏我根據我的喜愛選取了一些iOS的開源庫。這些項目的順序徹底隨機,每一個都棒到爆。絕大多數支持CocoaPods,因此將它們添加到你的Xcode項目中只是小事一樁。ios
在本文末尾你能夠找到一個長文慎入版本——一個只包含題目與項目連接的簡單列表。若是你以爲這篇文章有用的話,請把它分享給其餘作iOS開發的小夥伴們,好酒也怕巷子深。git
1. DZNEmptyDataSetgithub
DZNEmptyDataSet算是一個很標準的iOS內建方式,適合用來處理空的table view和collection view。默認狀況下,若是你的table view爲空,屏幕就爲空,這樣一來用戶體驗並不理想。編程
使用這個庫,你只需遵照一些協議,iOS就會自動將collection view處理完善,並將用戶消息以合適美觀的方式顯示出來。每一個iOS項目均可以自動處理,不用再一一費神。網絡
你的應用須要一個簡單美觀且正常運行的日曆組件嗎?如今有了——PDTSimpleCalendar也許能夠算是iOS最棒的日曆組件了。你能夠在各個方面對它進行定製,不管是運行邏輯仍是外觀方面。編輯器
他們都說:Core Data簡潔易用。他們又說:很棒很好用噢。哈?真的嗎,蘋果?添加到各個項目中的大量樣板數據徹底不符合簡潔而易用的標準。更別提添加、移除和更新那一大堆的entities、保存context、按不一樣環境建立不一樣的Core Data堆棧等等。固然,我很喜歡Core Data,可是蘋果然的能夠把它更好地簡化一下——使用MagicalRecord方式。
MagicalRecord就像是給Core Data提供了一層外包裝,隱藏掉全部不相關的東西。若是你曾經使用過active record模式(好比Ruby on Rails),你就知道了。傾情推薦,在應用中使用Core Data的童鞋們可必定要試試。
若是你已經看到這裏了,我猜你更有多是個程序猿,而不是設計獅。這裏有個東東很適合你。
Chameleon是一個iOS的色彩框架。它運用現代化flat color將UIColor擴展地很是美觀。咱們還能夠經過它運用自定義顏色建立調色板。它還有不少功用,請瀏覽readme。若是你想要應用美觀的話,必定要把這個庫加到項目裏。
Alamofire是一個簡潔的網絡庫,用Swift語言編寫。你是否曾經使用過AFNetworking呢?Alamofire是它的小弟。更年輕更時尚,固然(AFNetworking是用Objective-C編寫的)。
若是你須要進行網絡的相關工做,諸以下載、上傳與獲取JSONs等等的話,Alamofire正是你所須要的。GitHub上8000人次推薦,必定不會錯。
你不以爲標準的UITextField有些枯燥麼?我也這樣想——來認識一下TextFieldEffects吧!廢話很少說,只要看幾個例子:
是啊,都是些簡單的dropin控制器。你甚至能夠在storyboard中使用IBDesignables。
不幸地是:這個庫不支持CocoaPods(若是你來自將來,而這一狀況何時會改變的話,必定要在Twitter上告訴我),可是它支持Carthage。你只管從GitHub上下載項目,把它放入你的workspace就好了。
你曾經寫過照相機應用嗎?若是沒有的話,很快你必定會遇到這個庫的。
GPUImage爲咱們提供了一個GPU加速的照相機效果(同時支持照片與視頻),並且處理速度飛快。在App Store中,使用這個庫的應用數以百計。我有一個應用也用到了GPUImage。 它在GitHub上得到了8869個star,並且還在增加。
想要在App Store中得到更多評論的最佳方式是什麼?想要回答這個問題,我缺少切實數據,但若是必須猜一下的話,我會建議問問用戶。也許這樣作有點老套——大多開發者如今都有建立定製的應用內置alert。
可是若是你沒有時間,或者不想從頭實現的話,最好用一下iRata。這個就是iRata——一個小型庫——你能夠把它放入項目中,把問卷調查什麼的都忘記吧,iRate會在恰當的時候爲你解決這個問題。
不管你喜不喜歡單例模式,管理一個GameCenter都比咱們已知的其餘相反模式要好不少。(你的遊戲只有一個GameCenter,對嗎?)
說實話,在iOS上管理GameCenter vanilla並不算難,可是有了這個庫會更簡單也更快。好上加好不是更好麼。
我在我一個遊戲中用到了這個,體驗很好。
這個要注意,真的很棒!是我最喜好的iOS控件之一。PKRevealController是一個能夠滑動的側邊欄菜單(可向左、向右或者同時向兩側),只需手指輕輕一點(或者按一下按鈕,可是這樣滑動時不夠炫酷)。
我試過一些能夠提供這類控制的其餘庫,而PKRevealController是最棒的。安裝簡便,高度定製且對手勢識別良好。能夠當作一個標準控件用在iOS SDK中。
你曾經用過Slack iOS應用嗎?若是你在較大的軟件公司工做,也許會用過。對那些沒用過的人呢?—?Slack使人激動。用到Slack的應用也是這樣,尤爲是用做極佳、定製的文本輸入控制時。這時你有了一個現成可用在應用中的代碼。
自適應文本區域?試一下。
手勢識別、自動填充、多媒體合併?試一下。
快速drop-in解決方案?試一下。
其餘還想要什麼?
RETableViewManager能夠幫助你進行動態建立與管理table views。它給咱們提供了預約義cells(bool類型、文本、日期等等——請看下面的截圖),可是你還能夠建立自定義views,並與默認視圖一同使用。
左側截圖顯得很是古板!在storyboard中沒有這個庫的時候,你能作的就是這些了,可是有時候代碼比可視化編輯器要好。
用這個庫能夠在詢問用戶前,就告知用戶所需的系統權限,爲用戶帶來更好的體驗。接受度更高—>更多活躍用戶->更高的留存率->數據更好->下載率更高。牆裂推薦pod。
這張圖片在正常加載,無需等待過久或者刷新頁面。這正是SVProgressHUD在你的應用中的表現。若是你須要定製化的等待提示器,這個就是了(也許是最好的)。
Font Awesome很棒,有了它你能夠很容易地給項目加字體,使用方式繁多。
喜歡自動佈局嗎?固然喜歡!至少在storyboard中建立時會喜歡。 在代碼中純手工建立約束灰常痛苦,但幸運的是咱們有了SnapKit,在board中用上它,你能夠簡單直觀地編寫約束了。
這是另外一個常見於不少應用中的UI組件,蘋果應該考慮在標準的iOS SDK中加入一些相似的內容。Swipeable表格cell是這個pod的最佳描述,也是最好的。
這只是其中三個動畫類型,還有更多變化,請查看readme。
用於Swift中的單元測試(也可用於Objective-C),與Xcode整合在一塊兒。若是你是Objective-C的粉絲,我建議用Specta代替這個,可是對Swift使用者來講,Quick是最佳選擇。
應用內付費給咱們提供了不少樣本代碼,而這個庫丟掉了那些代碼,將金錢交易相關的大多通用任務作了簡單的封裝。
好吧,這是個小怪物。
ReactiveCocoa並不像列表中其餘庫同樣,它不是小型的drop-in項目。ReactiveCocoa給咱們帶來了一個迥異的編程風格與結構,它是基於信號與數據流的。首先你須要忘掉已知的一切,才能理解它的工做方式。頗有難度,可是價值不斐。
在這裏教ReactiveCocoa有點不合適,可是若是你感興趣的話,我會提供一些好源:
注意:對咱們iOS開發社區的朋友來講,這會是一個稍微有些技術含量的活兒。
使Swift的JSON解析變得簡單。
使動畫在簡單性、可連接性與聲明性方面有所提升。
載入定製字體時更簡單。
交叉推廣應用是你能夠免費實現的最佳市場推廣策略之一。使用這個庫作起來很是簡單,不用都不可能——將TAPromotee加入你的podfile中,免費配置與享受更多下載吧。
你在應用中載入了一堆jpeg嗎?有了Concorde,你能夠用更好的方式來解決,這是一個很大的進步。
管理Keychain接入的小助手。
最後一個,但毫不是最不重要的——iOS圖表庫!很是有用並且美觀,這裏我無需贅言。向下看,你就知道用它能夠作什麼了。
沒錯,一切都變成了drop-in組件了(也許是「code-in組件)。
不幸的是,它還不支持CocoaPods,因此你得手動把它拽到你的Xcode workspace裏面去。
超長慎入列表:
DZNEmptyDataSet(UI,空表格視圖解算器)
PDTSimpleCalendar(UI,drop-in日曆組件)
MagicalRecord(實施活躍記錄模式的Core Data助手)
Chameleon(UI,色彩框架)
Alamofire(Swift 網絡)
TextFieldEffects (UI,自定義外觀的文本區域)
GPUImage(快速圖片處理)
iRate(獲取用戶評價)
GameCenterManager(快速管理遊戲中心)
PKRevealController(UI,滑動側邊欄菜單)
SlackTextViewController(UI,高度可定製的自定義文本區域)
RETableViewManager(自動以代碼建立表格視圖)
PermissionScope(UI,預詢問用戶系統權限的友好體驗)
SVProgressHUD (UI,自定義等待進度條)
FontAwesomeKit (快速添加Awesome字體)
SnapKit(在代碼中快速自動佈局)
MGSwipeTableCell (UI,可滑動的表格視圖cell)
Quick(Swift單元測試框架)
IAPHelper(應用內購買助手封裝)
ReactiveCocoa(FRP框架)
SwiftyJSON(Swift JSON庫)
Spring(動畫框架)
FontBlaster(在應用中快速載入個性化字體)
TAPromotee(使用drop-in視圖交叉推廣應用)
Concorde(下載解碼漸進式jpeg)
KeychainAccess(簡便管理keychain)
iOS-charts(美觀的圖表庫)