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

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

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

多數庫支持CocoaPods,所以很容易把它們加到你的 XCode 項目中。

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

1. DZNEmptyDataSet

這是?iOS 內建的標準,用于處理空表和集合視圖。默認情況下,如果你的表視圖是空的,屏幕上什么也不會顯示。它給予的用戶體驗還不算最佳。

使用這個庫,你只需要一些協議,iOS 就會很好地處理集合視圖,然后合理美觀地顯示出用戶信息。你不需要為每一個 iOS 項目費心。

CocoaPods:

pod'DZNEmptyDataSet'

DZNEmptyDataSet

DZNEmptyDataSet - UITableView/UICollectionView 超類類別,用于顯示人數據集…github.

2. PDTSimpleCalendar

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

CocoaPods:

pod'PDTSimpleCalendar'

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:

pod'MagicalRecord'

magicalpanda/MagicalRecord

MagicalRecord - 超贊,幫助你輕松搞定 Core Data 1!!!11!!!!1!github.com

4.?Chameleon

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

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

CocoaPods:

pod'ChameleonFramework'

ViccAlexander/Chameleon

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

5.?Alamofire

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

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

CocoaPods:

pod'Alamofire'

Alamofire/Alamofire

Alamofire -?Swift中的優雅 HTTP 網絡.github.com

6.?TextFieldEffects

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

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

CocoaPods:

pod'TextFieldEffects'

Carthage:

github"raulriera/TextFieldEffects"

raulriera/TextFieldEffects

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

7. GPUImage

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

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

我的一個使用GPUImage的APP。

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

CocoaPods:

pod'GPUImage'

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:

pod'iRate'

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在,不是嗎?)

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

我正在我的一個游戲項目中使用它,它帶給我愉快的體驗。

CocoaPods:

pod'GameCenterManager'

nihalahmed/GameCenterManager

GameCenterManager -?iOS 游戲中心助手singletongithub.com

10.PKRevealController 2

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

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

CocoaPods:

pod'PKRevealController'

pkluz/PKRevealController

Introducing PKRevealController 2 -?第二版本的 iOS 的最流行的視圖控制器容器... github.com

11. SlackTextViewController

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

需要自動增長的文本區域?驗證下。需要手勢識別、自動完成、多媒體粘貼? 驗證下。需要易于方案集成?驗證下。你還可能需要什么其他功能呢?

CocoaPods:

pod'SlackTextViewController'

slackhq/SlackTextViewController

SlackTextViewController -?一個插入UIViewController子類與不斷增長的文本輸入視圖和其他有用的消息... github.com

12. RETableViewManager

RETableViewManager 將幫助您動態創建和管理表視圖,自動生成控制代碼。 它為我們提供了預定義的單元格(對于 bools,文本,日期等 - 請查看下面的屏幕截圖),但你也可以創建自定義視圖,并支持與默認的視圖一起使用。

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

CocoaPods:

pod'RETableViewManager'

romaonthego/RETableViewManager

RETableViewManager -?強大的數據驅動內容管理器UITableView.github.com

13、權限作用域

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

CocoaPods:

pod'PermissionScope'

nickoneill/PermissionScope

PermissionScope - 一個 Periscope-啟發方式來自 iOS 權限.github.com

14、SVProgressHUD

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

CocoaPods:

pod'SVProgressHUD'

TransitApp/SVProgressHUD

SVProgressHUD - 為 iOS 應用程序提供一個干凈、輕巧的進度 HUD.github.com

15. FontAwesomeKit

Font Awesome 是非常優秀的,使用這個庫可以簡單地添加字體到你的項目當中,另外還有很多其它方面的功能。

CocoaPods:

pod'FontAwesomeKit'

PrideChung/FontAwesomeKit

FontAwesomeKit - 適用于 iOS 的圖標字體庫。當前支持?Font-Awesome,Foundation icons,Zocial 和ionicons。?github.com

16. SnapKit

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

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

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

CocoaPods:

pod'SnapKit'

SnapKit/SnapKit

SnapKit - 一個為 iOS & OSX 系統的快速的自動布局 DSL?github.com

17. MGSwipeTableCell

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

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

CocoaPods:

pod'MGSwipeTableCell'

MortimerGoro/MGSwipeTableCell

MGSwipeTableCell -?MGSwipeTableCell - 一個易用的UITableViewCell子類,允許顯示可擦除式按鈕,并提供各種...github.com

18. Quick

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

CocoaPods:

pod'Quick'

Quick/Quick

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

19. IAPHelper

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

CocoaPods:

pod'IAPHelper'

saturngod/IAPHelper

IAPHelper -?iOS?的內購助手?github.com

20. ReactiveCocoa

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

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

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

CocoaPods:

pod'ReactiveCocoa'

ReactiveCocoa/ReactiveCocoa

ReactiveCocoa -?一個組成和傳輸數據流的框架?github.com

21. SwiftyJSON

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

CocoaPods:

pod'SwiftyJSON'

SwiftyJSON/SwiftyJSON

SwiftyJSON -?在 Swift 中處理 JSON 數據的更好方法github.com

22. Spring

使制作動畫變得容易、更具表達性,并且可鏈接。

CocoaPods:

pod'Spring'

MengTo/Spring

Spring -?Swift中用于簡化iOS動畫的庫.github.com

23. FontBlaster

簡化自定義字體加載到 APP 的實現。

CocoaPods:

pod'FontBlaster'

ArtSabintsev/FontBlaster

FontBlaster - 編程實現在 iOS app 中加載自定義字體.github.com

()

24. TAPromotee

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

CocoaPods:

pod'TAPromotee'

JanC/TAPromotee

TAPromotee - Objective-C 庫,用于互相推薦 iOS 應用.github.com

25. Concorde

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

CocoaPods:

pod'Concorde'

contentful-labs/Concorde

Concorde - 解碼 JPEGs 及下載 :iOS.github.com

26. KeychainAccess

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

CocoaPods:

pod'KeychainAccess'

kishikawakatsumi/KeychainAccess

KeychainAccess - Simple Swift 包裝器,f適用于 iOS and OS X .github.com

27. iOS-charts

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

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

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

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

DZNEmptyDataSet?[UI,?解決空表顯示]

PDTSimpleCalendar?[UI,?下拉日歷組件]

MagicalRecord?[實現活動記錄模式?的 Core Data?助手]

Chameleon?[UI,?色彩框架]

Alamofire?[Swift?網絡化]

TextFieldEffects?[UI,?自定義視覺的文本框]

GPUImage?[快速圖像處理]

iRate?[獲得用戶對等級的投票]

GameCenterManager?[易于管理的用戶中心]

PKRevealController?[UI,?側滑菜單]

SlackTextViewController?[UI,?高度可定制的文本框]

RETableViewManager?[從代碼動態創建表格視圖]

PermissionScope?[UI,?提前向用戶請求系統權限]

SVProgressHUD?[UI,?自定義等待圖示]

FontAwesomeKit?[把 Font Awesome?添到項目變得簡單]

SnapKit?[在代碼中簡單地自動布局]

MGSwipeTableCell?[UI,?讓表格視圖的單元格可滑動]

Quick?[Swift?單元測試框架]

IAPHelper?[內購助手]

ReactiveCocoa?[FRP框架]

SwiftyJSON?[Swift JSON?庫]

Spring?[動畫框架]

FontBlaster?[在應用中簡單地加載自定義字體]

TAPromotee?[通過下拉視圖全方位推廣你的應用]

Concorde?[邊下載邊顯示 JPEG?圖像]

KeychainAccess?[密碼管理器]

iOS-charts?[漂亮的圖表庫]

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網絡請求組件 FMDB本地數據庫組件 SD...
    陽明AGI閱讀 16,018評論 3 119
  • 外公是一個在單位里受人尊重的前輩,也算是個知識分子。在他的書房放在不少書,但是他很少拿來看,也許是他已經看完了,也...
    大靜不靜閱讀 323評論 0 0
  • 高斯分布是自然界最常見的分布形態,用它來做異常檢測是非常合適的模型。槍打出頭鳥,那些分布在兩端的小概率事件,要么好...
    kamidox閱讀 6,157評論 5 22
  • Time:2016/12/27 首先是html的部分,基本有三個部分。 label:表單描述,格式 。 input...
    Hugo1973閱讀 313評論 0 0
  • 2013年我看了兩本人物傳記,吉姆-莫里森的《此地無人生還》和米歇爾-福柯的《福柯的生死愛欲》。讀后覺得兩本書中講...
    笑忘貓貓閱讀 727評論 0 1