27 款 iOS 開源庫,讓你的開發溜到飛起

發表於2016-12-17

我愛開源。

我也愛開發者們,他們花費大量寶貴的時間創造出如此驚人的東西,然後與其他人分享,而不要求任何回報。開源作者和貢獻者們,你們令人敬佩。感謝你們所有的工作。

我在處理自己的 App 的日常工作中,收藏了一些 iOS 開源庫,本文我只從中選擇了一部分。這些專案的排序是隨機的,但是它們都很棒。

多數庫支援 CocoaPods,所以很容易把它們加到你的 XCode 專案中。

在文章的底部,你會發現一個簡化版本 —就是一個簡單的標題及其連結的列表。如果你覺得這篇文章有用,請分享給你的 iOS 朋友。好東西需要傳播。

1. DZNEmptyDataSet

這是 iOS 內建的標準,用於處理空表和集合檢視。預設情況下,如果你的表檢視是空的,螢幕上什麼也不會顯示。它給予的使用者體驗還不算最佳。

使用這個庫,你只需要一些協議,iOS 就會很好地處理集合檢視,然後合理美觀地顯示出使用者資訊。你不需要為每一個 iOS 專案費心。

11181833_hddf_2903254

CocoaPods:

DZNEmptyDataSet
DZNEmptyDataSet – UITableView/UICollectionView 超類類別,用於顯示人資料集…github.

2. PDTSimpleCalendar

你的應用需要一個好看的日曆元件嗎?現在你有了 — PDTSimpleCalendar 可以說是最好的 iOS 日曆元件。你可以通過許多方法定義它,包括工作邏輯和視覺效果。

12182029_mpd0_2903254

CocoaPods:

jivesoftware/PDTSimpleCalendar
PDTSimpleCalendar – iOS 的簡單的日曆/日期選擇元件,使用 UIColectionView … github.com

3. MagicalRecord

有人說 Core Data 簡單。也有人說它不僅簡單而且美觀。呵,得了吧,說的是蘋果嗎?巨多的封裝程式碼被新增到工程裡面並不會非常優雅和簡單的,更別提要新增、刪除和更新如此多的實體、儲存上下文,為不同的環境建立不同的 Core Data 棧等等等等這些事情了。我當然也很喜歡 Core Data, 但蘋果公司真應該用更好的方式把它簡化一下了 — MagicalRecord 的方式就可以。

MagicalRecord 就像是針對 Core Data 的一個封裝,隱藏了所有跟開發者無關的東西。如果你用過動態記錄模式(例如, Ruby on Rails 就有用到)的話, 那這個非你莫屬。如果你的應用裡面也使用到了 Core Data,那我真的非常非常推薦這個庫。

CocoaPods:

magicalpanda/MagicalRecord
MagicalRecord – 超讚,幫助你輕鬆搞定 Core Data 1!!!11!!!!1!github.com

4. Chameleon

如果你正讀到這個,那麼比起設計師,你可能會是一個更好的程式設計師。而這個就是為你準備的。

13182214_88jc_2903254

Chameleon 是一個 iOS 的顏色框架。它擴充套件了 UIColor,加入了漂亮的、現代扁平化風格的顏色。它也讓我們可以從由我們自己定義的顏色建立出調色盤。通過閱讀 readme,你會發現它還能做很多其它的事情。如果你想要的是一個漂亮的應用程式,絕對要把這個庫新增到程式碼工程裡面。

14182246_ebfn_2903254

CocoaPods:

ViccAlexander/Chameleon
Chameleon – iOS  (Obj-C & Swift)的扁平風格顏色框架github.com

5. Alamofire

Alamofire 是一個寫在 Swift 上的十分美觀的網路文庫。你有使用過 AFNetwork 嗎?Alamofire 就是它的姐妹版,但 Alamofire 更新穎,更有型,當然(AFNetwork 是寫在 Objective-C 上的)。

15182318_2r9i_2903254

是否還需要做一些網路的東西,例如下載,上傳,獲取 JSONs 等等呢?Alamofire 已經為你準備好了。GitHub 上 8000 人的選擇肯定不會錯。

CocoaPods:

Alamofire/Alamofire
Alamofire – Swift中的優雅 HTTP 網路.github.com

6. TextFieldEffects

你是不是感覺標準的 UIT 文字域有點無聊?我也有這樣的感覺——讓我們來跟 TextFieldEffects 打個招呼吧! 我不會寫太多,只是為你展示一些這個文庫可以做到的事例:

16182451_7tnr_2903254

是的,這些是簡單的下拉插入鍵。你甚至可以利用指令碼里的 IBDesignables!

CocoaPods:

Carthage:

raulriera/TextFieldEffects
TextFieldEffects – 自定義 UITextFields 效果靈感來自 Codrops,使用 Swift 構建.github.com

7. GPUImage

你是否有建立過相機APP的經歷?如果沒有,你一定會在不久之後遇到這個庫的。

17182641_sc8p_2903254

GPUImage為我們提供了由GPU加速的相機預覽效果(包括影象和視訊),速度極快。 在App Store有數百個APP已經使用這個庫——我其中的一個也使用了:

18182724_e4uc_2903254

我的一個使用GPUImage的APP。

8869 stars on GitHub and still counting.在GitHub上有8869顆星,並且還在不斷增加中。

CocoaPods:

BradLarson/GPUImage
GPUImage – An open source iOS framework for GPU-based image and video processinggithub.com
 (GPUImage:iOS上開源的基於GPU的影象視訊處理框架)

8. iRate

在App Store中獲得更多評論的最好方法是什麼? 我沒有實際資料來回答這個問題,但如果我不得不猜測的話,我會說直接去問使用者。也許這麼做是一個很老式的方式——大多數開發人員現在建立自定義的App提示窗——但如果你沒有時間或你不想一切從頭開始,最好是使用iRate而不是不用。iRate是這樣的:一個你可以包含到你的工程中,並且不需要考慮要求使用者評論的小型庫——iRate將會在合適的時機自動完成這個。

CocoaPods:

nicklockwood/iRate
iRate – A handy class that prompts users of your iPhone or Mac App Store app to rate your application after using it…github.com
 (iRate:一個便於使用的類庫,可用於督促在iPhone、Mac應用商店下載並使用你的app使用者給你推薦)

9. GameCenterManager

不管你喜歡或討厭單例子,在這裡通過我們最熟悉的 anti-pattern (反模式)管理 Game Center 都是一件非常簡單的事(你的遊戲裡只有一個Game Center在,不是嗎?)

19182813_dvev_2903254

老實說,vanilla-managing 在 iOS 中管理 Game Center 並不是很難,但是使用這個庫就更加簡單和快捷了。好上加好的體驗。

20182844_9d1g_2903254

我正在我的一個遊戲專案中使用它,它帶給我愉快的體驗。

CocoaPods:

nihalahmed/GameCenterManager
GameCenterManager – iOS 遊戲中心助手singletongithub.com

10. PKRevealController 2

這個是我最喜歡的 iOS 控制元件之一,它就像一個寶石。PKRevealController 是一個側滑的選單(左,右,或者同時),滑向哪邊是看你的使用習慣(或者僅僅通過一個按鈕,但是這樣看起來並沒有像滑動那樣的 Cool)。

21182938_gtfi_2903254

關於類似功能,我嘗試過不少其他的庫,但是 PKRevealController 給我的感覺是最好的,非常簡單的設定,高度的自定義,手勢的識別非常好。這個真的可以被包括在 iOS 的 SDK 中,作為一個標準庫。

CocoaPods:

pkluz/PKRevealController
Introducing PKRevealController 2 – 第二版本的 iOS 的最流行的檢視控制器容器… github.com

11. SlackTextViewController

你使用過 Slack iOS 的 App 嗎?如果你在一個大型的軟體公司工作,可能答案是肯定的。但也有一些人尚未接觸 Slack。 Slack 的 iOS App 非常強大,尤其是它的自定義文字輸入控制元件…這裡有一段程式碼,你可在 APP 中使用!

需要自動增長的文字區域?驗證下。需要手勢識別、自動完成、多媒體貼上? 驗證下。需要易於方案整合?驗證下。你還可能需要什麼其他功能呢?

CocoaPods:

slackhq/SlackTextViewController
SlackTextViewController – 一個插入UIViewController子類與不斷增長的文字輸入檢視和其他有用的訊息… github.com

12. RETableViewManager

RETableViewManager 將幫助您動態建立和管理表檢視,自動生成控制程式碼。 它為我們提供了預定義的單元格(對於 bools,文字,日期等 – 請檢視下面的螢幕截圖),但你也可以建立自定義檢視,並支援與預設的檢視一起使用。

22183036_ap5g_2903254

所有這些元素,你可以在不使用這個庫的前提下在 storyboard 中實現。但有時簡單的程式碼比視覺化編輯器更好。

CocoaPods:

romaonthego/RETableViewManager
RETableViewManager – 強大的資料驅動內容管理器UITableView.github.com

13、許可權作用域

該庫通過在請求使用者之前通知使用者有關所需的系統許可權,以提供更好的使用者體驗。更高的接受率->更多活躍使用者使用 app->更佳反饋->更好狀態->更多下載量。鼎力推薦的 pod。

23183118_uj7z_2903254

CocoaPods:

nickoneill/PermissionScope
PermissionScope – 一個 Periscope-啟發方式來自 iOS 許可權.github.com

14、SVProgressHUD

這個圖片展示的是正常下載,不用等到更長時間,也不用重新整理頁面。這就是 SVProgressHUD 在 app 中所呈現的。假如你需要自定義等待提示,這裡有一個例子(可能是合適的)。

24183156_daw0_2903254

CocoaPods:

TransitApp/SVProgressHUD
SVProgressHUD – 為 iOS 應用程式提供一個乾淨、輕巧的進度 HUD.github.com

15. FontAwesomeKit

Font Awesome 是非常優秀的,使用這個庫可以簡單地新增字型到你的專案當中,另外還有很多其它方面的功能。

25183241_afxu_2903254

CocoaPods:

PrideChung/FontAwesomeKit

FontAwesomeKit – 適用於 iOS 的圖示字型庫。當前支援 Font-Awesome,Foundation icons,Zocial 和 ionicons。 github.com

16. SnapKit

喜歡自動佈局(auto layout)?應該是!

至少在 storyboards 中建立的時候是這樣的。

在沒有幫助的情況下,在程式碼上建立約束是痛苦的,幸運地是用 SnapKit 你可以很方便地通過宣告的方式,來約束你的程式碼。來看看吧。

26183327_qk38_2903254

CocoaPods:

SnapKit/SnapKit
SnapKit – 一個為 iOS & OSX 系統的快速的自動佈局 DSL github.com

17. MGSwipeTableCell

這是另一個在很多應用裡經常看到的 UI 模組,Apple 也許應該考慮將之納入標準的 iOS SDK 裡。Swipeable table cell(可擦除式表格單元)——是關於這個產品最好的描述。最好的一個。

27183515_6hnt_2903254

28183416_dz0w_2903254

29183552_9xgg_2903254

以上只是3種動畫型別,還有更多動畫lei’xin,請查閱Readme。

CocoaPods:

MortimerGoro/MGSwipeTableCell
MGSwipeTableCell – MGSwipeTableCell – 一個易用的UITableViewCell子類,允許顯示可擦除式按鈕,並提供各種…github.com

18. Quick

Swift 裡的單元測試,適用於 Swift(好吧,Objective-C 也能用),已與 Xcode 整合。如果你是 Objective-C 粉,我更推薦 Specta,但是對於 Swift 來說,Quick 應該是最棒的選擇。

30183659_f8jy_2903254

31183717_1jt3_2903254

CocoaPods:

Quick/Quick
Quick –  Swift(及 Objective-C)的測試框架。github.com

19. IAPHelper

應用內建支付給我們帶來大量的樣板程式碼,這個庫簡單封裝了大量常見的任務來擺脫那些樣板程式碼。它封裝功能都是關於如何將 iOS 使用者的錢送到你(或者你的公司)的錢包。

CocoaPods:

saturngod/IAPHelper
IAPHelper – iOS 的內購助手 github.com

20. ReactiveCocoa

好啊,這裡有一個小怪物。

32183929_broh_2903254

不像這個列表中的其它項,ReactiveCocoa 不小而且不會嵌入專案中。ReactiveCocoa 給我們帶來不同的程式設計風格/架構,它基於訊號和資料流。它令人感覺驚奇,不過你得先忘掉以前所學的內容才能理解它的工作原理。這不是一件容易的事情,但值得。

這裡並不適合教你 ReactiveCocoa,但是如果你有興趣,我會給你很好的資源:

CocoaPods:

ReactiveCocoa/ReactiveCocoa
ReactiveCocoa – 一個組成和傳輸資料流的框架 github.com

21. SwiftyJSON

使得在 Swift 中的 JSON 解析更加簡便。

CocoaPods:

SwiftyJSON/SwiftyJSON
SwiftyJSON – 在 Swift 中處理 JSON 資料的更好方法github.com

22. Spring

使製作動畫變得容易、更具表達性,並且可連結。

33184031_d5s7_2903254

CocoaPods:

MengTo/Spring
Spring – Swift中用於簡化iOS動畫的庫.github.com

23. FontBlaster

簡化自定義字型載入到 APP 的實現。

CocoaPods:

ArtSabintsev/FontBlaster
FontBlaster – 程式設計實現在 iOS app 中載入自定義字型.github.com
 ()

24. TAPromotee

這是交替宣傳 APP 的最佳營銷策略之一,它可在 APP 中免費實現。有了這個庫,一切操作都變得簡單,你會忍不住想試一試的——新增 TAPromotee 到你的的 podfile 中,配置後,就可以免費享受更多下載量了。

34184100_6wr0_2903254

CocoaPods:

JanC/TAPromotee
TAPromotee – Objective-C 庫,用於互相推薦 iOS 應用.github.com

25. Concorde

你是否在 APP 中載入了大量的 JPEG? Concorde 是一種漸進的載入方式,它可以讓圖片以更好看的方式載入出來。

35184136_efah_2903254

CocoaPods:

contentful-labs/Concorde
Concorde – 解碼 JPEGs 及下載 :iOS.github.com

26. KeychainAccess

這是一個小助手庫,用於管理 Keychain 訪問。

37184158_t8tm_290325436184221_bebx_2903254

38184244_a2a9_2903254

CocoaPods:

kishikawakatsumi/KeychainAccess
KeychainAccess – Simple Swift 包裝器,f適用於 iOS and OS X .github.com

27. iOS-charts

最後同樣重要的是—— iOS 圖表庫!它非常實用,也非常優雅,因此我不用過於贅述——你只要滾動下頁面,就能知道使用這個專案能為你的 app 做些什麼39184357_f5dn_290325440184400_hz6j_2903254

是的,一切都可以當成一個簡單的(也許可稱為“程式碼嵌入”)元件使用。

遺憾的是目前還沒有支援 CocoaPods,所以你需要手工將專案拖動到你的 Xcode 工作區中。

TL;DR list of all these libraries for quick access:

  1. DZNEmptyDataSet [UI, 解決空表顯示]
  2. PDTSimpleCalendar [UI, 下拉日曆元件]
  3. MagicalRecord [實現活動記錄模式 的 Core Data 助手]
  4. Chameleon [UI, 色彩框架]
  5. Alamofire [Swift 網路化]
  6. TextFieldEffects [UI, 自定義視覺的文字框]
  7. GPUImage [快速影象處理]
  8. iRate [獲得使用者對等級的投票]
  9. GameCenterManager [易於管理的使用者中心]
  10. PKRevealController [UI, 側滑選單]
  11. SlackTextViewController [UI, 高度可定製的文字框]
  12. RETableViewManager [從程式碼動態建立表格檢視]
  13. PermissionScope [UI, 提前向使用者請求系統許可權]
  14. SVProgressHUD [UI, 自定義等待圖示]
  15. FontAwesomeKit [把 Font Awesome 添到專案變得簡單]
  16. SnapKit [在程式碼中簡單地自動佈局]
  17. MGSwipeTableCell [UI, 讓表格檢視的單元格可滑動]
  18. Quick [Swift 單元測試框架]
  19. IAPHelper [內購助手]
  20. ReactiveCocoa [FRP 框架]
  21. SwiftyJSON [Swift JSON 庫]
  22. Spring [動畫框架]
  23. FontBlaster [在應用中簡單地載入自定義字型]
  24. TAPromotee [通過下拉檢視全方位推廣你的應用]
  25. Concorde [邊下載邊顯示 JPEG 影象]
  26. KeychainAccess [密碼管理器]
  27. iOS-charts [漂亮的圖表庫]

相關文章