本文翻譯自Medium,原作者是Pawe? Bia?ecki,原文
27個iOS開源庫,讓你的開發(fā)坐上火箭吧
你不會想錯過他們,真的。
我愛開源。
并且我喜歡開發(fā)者們,把他們寶貴的私人時間用來創(chuàng)造神奇的東西,然后他們會和其他人分享并且不求回報。開源作者和貢獻者,你們是最帥的。感謝你們一直以來的工作。
所以,因為我是一個分類整理狂,這是我從iOS開源庫中選出的最喜歡的。這些項目的順序都是隨機的,全部都很酷。
絕大部分庫是支持CocoaPods的,所以把它們添加到你的Xcode項目中輕而易舉。
文章的尾部你會看到一個太長不看的版本——一個簡單的列表,只有標題和到項目的鏈接。如果你發(fā)現(xiàn)這篇文章是有用的,把它和你的iOS開發(fā)者兄弟們分享。好東西需要被傳播。
DZNEmptyDataSet
這本應該是iOS中一個標準、內(nèi)置的解決空table和collection view的方式。默認的如果你的table view是空的,屏幕就是空的。但這不是你能提供的最好的用戶體驗。
用了這個庫,你只需要遵循一系列協(xié)議,iOS會優(yōu)雅地接管你的collection view并且會正確、好看地顯示給用戶信息。很明顯,每個iOS項目都應該采用。
CocoaPods:
pod ‘DZNEmptyDataSet’
GitHub
2. PDTSimpleCalendar
你的app是否需要一個簡單、好看并且有效的日歷組件呢?
現(xiàn)在你有了——PDTSimpleCalendar很有可能是最棒的iOS日歷組件。有很多方式來自定義它,邏輯有效而且好看。
CocoaPods:
pod 'PDTSimpleCalendar'
GitHub
3. MagicalRecord
他們說,Core Data很簡單。他們說,它很好很簡單。哈哈,你是認真的嗎,蘋果?一頓陳詞濫調(diào)的代碼被添加到每個項目里,這真的不夠優(yōu)雅和簡單。更不用說添加、移除和更新很多實體,保存上下文,為不同的環(huán)境創(chuàng)建不同的Core Data棧,等等等等。我當然很喜歡Core Data,但是蘋果真的可以通過一個簡單的好方法來簡化它——MagicalRecord方法。
MagicalRecord的工作就像一個Core Data的包裝,并且向開發(fā)者隱藏了所有無關的東西。如果你曾經(jīng)用過活躍紀錄模式(例如Ruby on Rails),那你已經(jīng)掌握它了。如果你在app里用Core Data的話真的真心推薦這個庫。
CocoaPods:
pod 'MagicalRecord'
GitHub
4. Chameleon
如果你讀到了這一點,你是一個很好的程序員,而不是一個設計師。這就是為你準備的。
Chameleon是iOS的一個顏色框架。它用好看、摩登的扁平化顏色擴展了UIColor。它也給了我們能力來創(chuàng)建調(diào)色板,里面是我們自己定義的顏色。它可以做很多其他事,探索readme文件。如果你想要好看的應用程序,快把這個庫加到你的項目里吧。
CocoaPods:
pod 'ChameleonFramework'
GitHub
5. Alamofire
Alamofire是一個用Swift寫的優(yōu)雅的網(wǎng)絡庫。你曾經(jīng)用過AFNetworking嗎?ALamofire是它的弟弟。年輕也更有才華,當然啦(AFNetworking是用Objective-C寫的)。
需要做網(wǎng)絡相關比如下載、上傳、獲取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
你曾經(jīng)創(chuàng)建過一個攝像機app嗎?如果沒有,看完這個庫你就肯定會的。
GPUImage提供我們一個GPU-accelerated攝像頭效果(圖像和視頻都可以),熊熊燃燒般的速度。App Store里有幾百個app使用這個庫——其中就有我的一個:
GitHub上8869個收藏并且還在持續(xù)增加。
CocoaPods:
pod 'GPUImage'
GitHub
8. iRate
在App Store獲得更多評價最好的方式是什么?我沒有明確的數(shù)據(jù)來回答這個問題,但如果要我來猜測的話,我會說只要簡單的詢問用戶就可以了。也許這是一個老套的方式——大部分開發(fā)者現(xiàn)在創(chuàng)建自定義的app內(nèi)置提醒——但如果你沒有時間或者不想所有事都從頭做起,用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是一個可滑動的側(cè)邊欄(向左、向右或者都可以),用你的手指來滑動(或者只通過點擊按鈕,但這樣就沒有滑動酷了)。
我使用過一些其它庫,提供這種控件,PKRevealController是最好的。設置起來很簡單,高度可自定義,手勢識別非常非常好。它真的足夠成為一個 iOS SDK 標準控件了。
CocoaPods:
pod 'PKRevealController'
GitHub
11. SlackTextViewController
你曾經(jīng)用過Slack iOS app嗎?如果你在一個更大的軟件公司工作的話,很有可能回答是。對于沒有這么回答的人——Slack很堅硬。Slack的iOS app也是,特別是對于很好的、自定義的文本輸入控件…就是你現(xiàn)在有的——你的app里可以用的代碼!
自增長文本域?對的。手勢識別,自動填充,多媒體粘貼?對的。簡單的易用的?對的。你還可能需要什么?
CocoaPods:
pod 'SlackTextViewController'
GitHub
12. RETableViewManager
RETableViewManager會幫助你動態(tài)創(chuàng)建和管理你的table view,都用代碼。它提供我們預先定義好的cell(布爾型、文本、日期等等。——看下面的截圖),你也可以創(chuàng)建你的自定義視圖,和默認的一起使用。
這些你都可以在storybard里做而不需要這個庫的幫忙,但有的時候代碼比可視化編輯器更簡單。
CocoaPods:
pod 'RETableViewManager'
GitHub
13. PermissionScope
有用的庫,通過在詢問用戶之前提示用戶需要系統(tǒng)許可帶來更好的用戶體驗。高度可接受程度->更多用戶活動使用app->更好的留存->更好的數(shù)據(jù)->更多的下載。被高度推薦的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里創(chuàng)建的時候。
用代碼創(chuàng)建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內(nèi)購帶給我們很多陳詞濫調(diào)的代碼,用這個庫就不需要了,把最有關交易金錢的普遍的任務從iOS用戶到你的(或者你的公司的)錢包簡單包裝起來。
CocoaPods:
pod 'IAPHelper'
GitHub
20. ReactiveCocoa
好吧,這里我們有一個小怪獸。
ReactiveCocoa并不是很小、易用的項目,就像這個列表里其它項目一樣。ReactiveCocoa帶給我們一種完全不同的編程方式/結(jié)構,基于值的信號和流。這是完全的頭腦風暴,首先你需要忘記你曾經(jīng)學習的來理解它是如何工作的。這不是一個簡單的任務,但是是有回報的。
這不是一個合適的地方來教你使用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是最棒的銷售策略之一,你可以在它們中免費實現(xiàn)。用這個庫非常簡單,你不再能為自己辯解為什么不用它——增加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幫手實現(xiàn)活動記錄模式]
4. Chameleon [UI, 顏色框架]
5. Alamofire [Swift網(wǎng)絡]
6. TextFieldEffects [UI, 自定義外觀text fields]
7. GPUImage [快速圖像處理]
8. iRate [獲得用戶評價]
9. GameCenterManager [輕松管理Game Center]
10. PKRevealController [UI, 滑動邊欄]
11. SlackTextViewController [UI, 高度自定義text field]
12. RETableViewManager [用代碼動態(tài)創(chuàng)建table view]
13. PermissionScope [UI, 巧妙的提前問用戶要系統(tǒng)許可]
14. SVProgressHUD [UI, 自定義等待菊花]
15. FontAwesomeKit [輕松地添加酷字體到你的app中]
16. SnapKit [用代碼輕松auto layout]
17. MGSwipeTableCell [UI, 可滑動的table view cells]
18. Quick [Swift 單元測試框架]
19. IAPHelper [app內(nèi)購封裝幫手]
20. ReactiveCocoa [FRP框架]
21. SwiftyJSON [Swift JSON庫]
22. Spring [動畫框架]
23. FontBlaster [輕松在app中加載自定義字體]
24. TAPromotee [在你的app中交叉提示,置入界面]
25. Concorde [下載和解碼進度化JPEGs]
26. KeychainAccess [輕松管理鑰匙串]
27. iOS-charts [漂亮的圖表庫]
感謝閱讀,真是一個長列表!如果你認為創(chuàng)建是有價值的,請分享它,通過點擊文章下方的分享按鈕——更多人會從中受益。并且如果你是一個Meduim用戶,請點擊推薦按鈕——它會鼓舞我創(chuàng)建更多iOS開發(fā)文章!
One more thing——如果你在讀這篇文章,你很有可能是個iOS開發(fā)者。很多iOS開發(fā)者也是iPhone用戶——所以我有一些你可能感興趣的東西。
我運行著一個每周一次手選最好的iOS app和游戲——看看吧,我關注高質(zhì)量并且只挑選酷的app。連接也會很酷!
你也可以在推特上follow我,我最經(jīng)常討論iOS開發(fā)的地方。