1. 程式人生 > >27個ios 開源庫推薦給大家

27個ios 開源庫推薦給大家

我愛開源。

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

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

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

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

1. DZNEmptyDataSet

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

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

CocoaPods:

1pod 'DZNEmptyDataSet'

2. PDTSimpleCalendar

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

CocoaPods:

1pod 'PDTSimpleCalendar'

3. MagicalRecord

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

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

CocoaPods:

1pod 'MagicalRecord'

4. Chameleon

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

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

CocoaPods:

1pod 'ChameleonFramework'

5. Alamofire

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

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

CocoaPods:

1pod 'Alamofire'

6. TextFieldEffects

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

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

CocoaPods:

1pod 'TextFieldEffects'

Carthage:

1github "raulriera/TextFieldEffects"

7. GPUImage

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

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

我的一個使用GPUImage的APP。

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

CocoaPods:

1pod 'GPUImage'

8. iRate

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

CocoaPods:

1pod 'iRate'

9. GameCenterManager

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

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

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

CocoaPods:

1pod 'GameCenterManager'

10. PKRevealController 2

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

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

CocoaPods:

1pod 'PKRevealController'

11. SlackTextViewController

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

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

CocoaPods:

1pod 'SlackTextViewController'

12. RETableViewManager

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

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

CocoaPods:

1pod 'RETableViewManager'

13、許可權作用域

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

CocoaPods:

1pod 'PermissionScope'

14、SVProgressHUD

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

CocoaPods:

1pod 'SVProgressHUD'

15. FontAwesomeKit

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

CocoaPods:

1pod 'FontAwesomeKit'

16. SnapKit

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

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

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

CocoaPods:

1pod 'SnapKit'

17. MGSwipeTableCell

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

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

CocoaPods:

1pod 'MGSwipeTableCell'

18. Quick

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

CocoaPods:

1pod 'Quick'


19. IAPHelper


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


CocoaPods:

1pod 'IAPHelper'


20. ReactiveCocoa


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


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


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


CocoaPods:

1pod 'ReactiveCocoa'


21. SwiftyJSON

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


CocoaPods:

1pod 'SwiftyJSON'


22. Spring

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


CocoaPods:

pod 'Spring'

23. FontBlaster

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

CocoaPods:

1pod 'FontBlaster'

24. TAPromotee

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

CocoaPods:

1pod 'TAPromotee'


25. Concorde


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


CocoaPods:

pod 'Concorde'


26. KeychainAccess


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


CocoaPods:

1pod 'KeychainAccess'


27. iOS-charts


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

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

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


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