轉:http://www.jianshu.com/p/228535226656?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io
27個iOS開源庫,讓你的開發坐上火箭吧
你不會想錯過他們,真的。
我愛開源。
並且我喜歡開發者們,把他們寶貴的私人時間用來創造神奇的東西,然後他們會和其他人分享並且不求回報。開源作者和貢獻者,你們是最帥的。感謝你們一直以來的工作。
所以,因爲我是一個分類整理狂,這是我從iOS開源庫中選出的最喜歡的。這些項目的順序都是隨機的,全部都很酷。
絕大部分庫是支持CocoaPods的,所以把它們添加到你的Xcode項目中輕而易舉。
文章的尾部你會看到一個太長不看的版本——一個簡單的列表,只有標題和到項目的鏈接。如果你發現這篇文章是有用的,把它和你的iOS開發者兄弟們分享。好東西需要被傳播。
DZNEmptyDataSet
這本應該是iOS中一個標準、內置的解決空table和collection view的方式。默認的如果你的table view是空的,屏幕就是空的。但這不是你能提供的最好的用戶體驗。
用了這個庫,你只需要遵循一系列協議,iOS會優雅地接管你的collection view並且會正確、好看地顯示給用戶信息。很明顯,每個iOS項目都應該採用。
CocoaPods:
pod ‘DZNEmptyDataSet’
GitHub
2. PDTSimpleCalendar
你的app是否需要一個簡單、好看並且有效的日曆組件呢?
現在你有了——PDTSimpleCalendar很有可能是最棒的iOS日曆組件。有很多方式來自定義它,邏輯有效而且好看。
CocoaPods:
pod 'PDTSimpleCalendar'
GitHub
3. MagicalRecord
他們說,Core Data很簡單。他們說,它很好很簡單。哈哈,你是認真的嗎,蘋果?一頓陳詞濫調的代碼被添加到每個項目裏,這真的不夠優雅和簡單。更不用說添加、移除和更新很多實體,保存上下文,爲不同的環境創建不同的Core Data棧,等等等等。我當然很喜歡Core Data,但是蘋果真的可以通過一個簡單的好方法來簡化它——MagicalRecord方法。
MagicalRecord的工作就像一個Core Data的包裝,並且向開發者隱藏了所有無關的東西。如果你曾經用過活躍紀錄模式(例如Ruby on Rails),那你已經掌握它了。如果你在app裏用Core Data的話真的真心推薦這個庫。
CocoaPods:
pod 'MagicalRecord'
GitHub
4. Chameleon
如果你讀到了這一點,你是一個很好的程序員,而不是一個設計師。這就是爲你準備的。
Chameleon是iOS的一個顏色框架。它用好看、摩登的扁平化顏色擴展了UIColor。它也給了我們能力來創建調色板,裏面是我們自己定義的顏色。它可以做很多其他事,探索readme文件。如果你想要好看的應用程序,快把這個庫加到你的項目裏吧。
CocoaPods:
pod 'ChameleonFramework'
GitHub
5. Alamofire
Alamofire是一個用Swift寫的優雅的網絡庫。你曾經用過AFNetworking嗎?ALamofire是它的弟弟。年輕也更有才華,當然啦(AFNetworking是用Objective-C寫的)。
需要做網絡相關比如下載、上傳、獲取JSON等等?Alamofire是爲你準備的。GitHub上8000人的選擇不會錯。
CocoaPods:
pod 'MagicalRecord'
GitHub
6. TextFieldEffects
你不覺得標準的UITextField有一點無聊嗎?我也是——所以對TextFieldEffects說hello吧!我不會寫太多,我只會展示你一些這個庫可以做的例子:
是的,這些就是簡單的易用的控制器。你甚至可以用storyboard裏的IBDesignable!
不幸的是這個庫不支持CocoaPods(如果你來自未來,而這在一些時間之前改變了的話,請在Twitter上讓我知道),但它支持Carthage。你也可以簡單的從GitHub下載項目,並且把它添加到你的workspace裏。
Carthage:
github "raulriera/TextFieldEffects"
GitHub
7. GPUImage
你曾經創建過一個攝像機app嗎?如果沒有,看完這個庫你就肯定會的。
GPUImage提供我們一個GPU-accelerated攝像頭效果(圖像和視頻都可以),熊熊燃燒般的速度。App Store裏有幾百個app使用這個庫——其中就有我的一個:
GitHub上8869個收藏並且還在持續增加。
CocoaPods:
pod 'GPUImage'
GitHub
8. iRate
在App Store獲得更多評價最好的方式是什麼?我沒有明確的數據來回答這個問題,但如果要我來猜測的話,我會說只要簡單的詢問用戶就可以了。也許這是一個老套的方式——大部分開發者現在創建自定義的app內置提醒——但如果你沒有時間或者不想所有事都從頭做起,用iRate比不用要好。並且這就是iRate——一個小庫,你包含在你的項目裏並且忘記詢問用戶去評價了——iRate會自動替你完成,在合適的時間裏。
CocoaPods:
pod 'iRate'
GitHub
9. GameCenterManager
喜歡或討厭一個人,在這種情況下管理Game Center非常簡單,只需要一點我們最著名的反模式的幫助(你的遊戲裏只有Game Center,對吧?)
誠實地說,在iOS裏香草管理Game Center並不是那麼困難,但用這個庫就是簡單和快速。更好的是好的敵人。
我的一個遊戲裏就用了它,真是一個愉悅的體驗。
CocoaPods:
pod 'GameCenterManager'
GitHub
10. PKRevealController 2
這是一個真正的精品,我最喜歡的iOS控件之一。PKRevealController是一個可滑動的側邊欄(向左、向右或者都可以),用你的手指來滑動(或者只通過點擊按鈕,但這樣就沒有滑動酷了)。
我使用過一些其它庫,提供這種控件,PKRevealController是最好的。設置起來很簡單,高度可自定義,手勢識別非常非常好。它真的足夠成爲一個 iOS SDK 標準控件了。
CocoaPods:
pod 'PKRevealController'
GitHub
11. SlackTextViewController
你曾經用過Slack iOS app嗎?如果你在一個更大的軟件公司工作的話,很有可能回答是。對於沒有這麼回答的人——Slack很堅硬。Slack的iOS app也是,特別是對於很好的、自定義的文本輸入控件…就是你現在有的——你的app裏可以用的代碼!
自增長文本域?對的。手勢識別,自動填充,多媒體粘貼?對的。簡單的易用的?對的。你還可能需要什麼?
CocoaPods:
pod 'SlackTextViewController'
GitHub
12. RETableViewManager
RETableViewManager會幫助你動態創建和管理你的table view,都用代碼。它提供我們預先定義好的cell(布爾型、文本、日期等等。——看下面的截圖),你也可以創建你的自定義視圖,和默認的一起使用。
這些你都可以在storybard裏做而不需要這個庫的幫忙,但有的時候代碼比可視化編輯器更簡單。
CocoaPods:
pod 'RETableViewManager'
GitHub
13. PermissionScope
有用的庫,通過在詢問用戶之前提示用戶需要系統許可帶來更好的用戶體驗。高度可接受程度->更多用戶活動使用app->更好的留存->更好的數據->更多的下載。被高度推薦的pod。
CocoaPods:
pod 'PermissionScope'
GitHub
14. SVProgressHUD
這個圖片正在被正確的加載,不會等很久也不需要刷新頁面。這就是SVProgressHUD在你的app裏看起來的樣子。如果你需要自定義等待指示,這裏就有一個(很有可能就是最好的)。
CocoaPods:
pod 'SVProgressHUD'
GitHub
15. FontAwesomeKit
Font Awesome很酷,用這個庫你可以輕鬆地添加字體到你的項目裏,並且在多種方式裏使用它。
CocoaPods:
pod 'FontAwesomeKit'
GitHub
16. SnapKit
喜歡auto layout?你應該!
至少在storyboard裏創建的時候。
用代碼創建constraints是痛苦的,如果沒有幫助的話,但幸運的是SnapKit在這裏,使用它你可以輕鬆寫你的constraints,聲明方式。看看吧。
CocoaPods:
pod 'SnapKit'
GitHub
17. MGSwipeTableCell
另一個UI組件,在很多app裏都常見,蘋果應該考慮在iOS標準庫里加入類似的東西。可滑動的table cell,這是這個pod最好的描述。最好的一個。
這些只是3個動畫種類,還有很多。探索readme文件。
CocoaPods:
pod 'MGSwipeTableCell'
GitHub
18. Quick
Swift裏的單元測試,給Swift(好吧,要給Objective-C),和Xcode融爲一體。如果你是一個Objective-C粉,我會推薦你Specta而不是這個,但對於Swift Quick很有可能是最好的。
CocoaPods:
pod 'Quick'
GitHub
19. IAPHelper
app內購帶給我們很多陳詞濫調的代碼,用這個庫就不需要了,把最有關交易金錢的普遍的任務從iOS用戶到你的(或者你的公司的)錢包簡單包裝起來。
CocoaPods:
pod 'IAPHelper'
GitHub
20. ReactiveCocoa
好吧,這裏我們有一個小怪獸。
ReactiveCocoa並不是很小、易用的項目,就像這個列表裏其它項目一樣。ReactiveCocoa帶給我們一種完全不同的編程方式/結構,基於值的信號和流。這是完全的頭腦風暴,首先你需要忘記你曾經學習的來理解它是如何工作的。這不是一個簡單的任務,但是是有回報的。
這不是一個合適的地方來教你使用ReactiveCocoa,但我會給你一些好的資源,如果你感興趣的話。
Getting Started with ReactiveCocoa
ReactiveCocoa
ReactiveCocoa Tutorial - The Definitive Introduction: Part 1/2
CocoaPods:
pod 'ReactiveCocoa'
GitHub
21. SwiftyJSON
讓Swift裏的JSON解析更簡單。
CocoaPods:
pod 'SwiftyJSON'
GitHub
22. Spring
做動畫更簡單、可鏈和聲明。
CocoaPods:
pod 'Spring'
GitHub
23. FontBlaster
在app里加載自定義字體更簡單。
CocoaPods:
pod 'FontBlaster'
GitHub
24. TAPromotee
交叉推銷你的app是最棒的銷售策略之一,你可以在它們中免費實現。用這個庫非常簡單,你不再能爲自己辯解爲什麼不用它——增加TAPromotee到你的podfile,配置、然後免費享受更多下載。
CocoaPods:
pod 'TAPromotee'
GitHub
25. Concorde
在你的app加載很多JPEG嗎?用Concorde你可以加載地更好看。有進度的方式。
CocoaPods:
pod 'Concorde'
GitHub
26. KeychainAccess
管理鑰匙串權限的小幫手庫。
CocoaPods:
pod 'KeychainAccess'
GitHub
27. iOS-charts
最後但重要的——iOS圖表庫!很簡單和有效,我不會在這兒寫太多——滑動到下面去看在你的app用它可以幹嘛。
是的,所有東西都是可用的,作爲一個可放進去(好吧,也許是“可寫進去”)的組件。
不幸的是目前還沒有CocoaPods支持,所以你需要手動拖動項目到你的Xcode workspace中。
所有庫的太長不看列表,快速訪問:
1. DZNEmptyDataSet [UI, 空table view解決方案]
2. PDTSimpleCalendar [UI, 可放入日曆組件]
3. MagicalRecord [Core Data幫手實現活動記錄模式]
4. Chameleon [UI, 顏色框架]
5. Alamofire [Swift網絡]
6. TextFieldEffects [UI, 自定義外觀text fields]
7. GPUImage [快速圖像處理]
8. iRate [獲得用戶評價]
9. GameCenterManager [輕鬆管理Game Center]
10. PKRevealController [UI, 滑動邊欄]
11. SlackTextViewController [UI, 高度自定義text field]
12. RETableViewManager [用代碼動態創建table view]
13. PermissionScope [UI, 巧妙的提前問用戶要系統許可]
14. SVProgressHUD [UI, 自定義等待菊花]
15. FontAwesomeKit [輕鬆地添加酷字體到你的app中]
16. SnapKit [用代碼輕鬆auto layout]
17. MGSwipeTableCell [UI, 可滑動的table view cells]
18. Quick [Swift 單元測試框架]
19. IAPHelper [app內購封裝幫手]
20. ReactiveCocoa [FRP框架]
21. SwiftyJSON [Swift JSON庫]
22. Spring [動畫框架]
23. FontBlaster [輕鬆在app中加載自定義字體]
24. TAPromotee [在你的app中交叉提示,置入界面]
25. Concorde [下載和解碼進度化JPEGs]
26. KeychainAccess [輕鬆管理鑰匙串]
27. iOS-charts [漂亮的圖表庫]