我也愛開發(fā)者們部默,他們花費(fèi)大量寶貴的時間創(chuàng)造出如此驚人的東西侵蒙,然后與其他人分享,而不要求任何回報傅蹂。開源作者和貢獻(xiàn)者們纷闺,你們令人敬佩。感謝你們所有的工作份蝴。
我在處理自己的 App的日常工作中急但,收藏了一些 iOS 開源庫,本文我只從中選擇了一部分搞乏。這些項目的排序是隨機(jī)的波桩,但是它們都很棒。
多數(shù)庫支持CocoaPods请敦,所以很容易把它們加到你的 XCode 項目中镐躲。
在文章的底部,你會發(fā)現(xiàn)一個簡化版本?—就是一個簡單的標(biāo)題及其鏈接的列表侍筛。如果你覺得這篇文章有用萤皂,請分享給你的 iOS 朋友。好東西需要傳播匣椰。
1. DZNEmptyDataSet
這是?iOS 內(nèi)建的標(biāo)準(zhǔn)裆熙,用于處理空表和集合視圖。默認(rèn)情況下禽笑,如果你的表視圖是空的入录,屏幕上什么也不會顯示。它給予的用戶體驗還不算最佳佳镜。
使用這個庫僚稿,你只需要一些協(xié)議,iOS 就會很好地處理集合視圖蟀伸,然后合理美觀地顯示出用戶信息蚀同。你不需要為每一個 iOS 項目費(fèi)心。
CocoaPods:
pod'DZNEmptyDataSet'
DZNEmptyDataSet - UITableView/UICollectionView 超類類別啊掏,用于顯示人數(shù)據(jù)集…github.
2. PDTSimpleCalendar
你的應(yīng)用需要一個好看的日歷組件嗎蠢络?現(xiàn)在你有了?—?PDTSimpleCalendar 可以說是最好的 iOS 日歷組件。你可以通過許多方法定義它迟蜜,包括工作邏輯和視覺效果刹孔。
CocoaPods:
pod'PDTSimpleCalendar'
jivesoftware/PDTSimpleCalendar
PDTSimpleCalendar - iOS 的簡單的日歷/日期選擇組件,使用 UIColectionView ...?github.com
3. MagicalRecord
有人說 Core Data 簡單小泉。也有人說它不僅簡單而且美觀芦疏。呵冕杠,得了吧,說的是蘋果嗎酸茴?巨多的封裝代碼被添加到工程里面并不會非常優(yōu)雅和簡單的分预,更別提要添加、刪除和更新如此多的實體薪捍、保存上下文笼痹,為不同的環(huán)境創(chuàng)建不同的 Core Data 棧等等等等這些事情了。我當(dāng)然也很喜歡?Core Data酪穿, 但蘋果公司真應(yīng)該用更好的方式把它簡化一下了?—?MagicalRecord 的方式就可以凳干。
MagicalRecord 就像是針對 Core Data 的一個封裝,隱藏了所有跟開發(fā)者無關(guān)的東西被济。如果你用過動態(tài)記錄模式(例如救赐, Ruby on Rails 就有用到)的話, 那這個非你莫屬。如果你的應(yīng)用里面也使用到了 Core Data只磷,那我真的非常非常推薦這個庫经磅。
CocoaPods:
pod'MagicalRecord'
MagicalRecord - 超贊,幫助你輕松搞定 Core Data 1!!!11!!!!1!github.com
4.?Chameleon
如果你正讀到這個钮追,那么比起設(shè)計師预厌,你可能會是一個更好的程序員。而這個就是為你準(zhǔn)備的元媚。
Chameleon 是一個 iOS 的顏色框架轧叽。它擴(kuò)展了 UIColor,加入了漂亮的刊棕、現(xiàn)代扁平化風(fēng)格的顏色炭晒。它也讓我們可以從由我們自己定義的顏色創(chuàng)建出調(diào)色板。通過閱讀 readme鞠绰,你會發(fā)現(xiàn)它還能做很多其它的事情腰埂。如果你想要的是一個漂亮的應(yīng)用程序飒焦,絕對要把這個庫添加到代碼工程里面蜈膨。
CocoaPods:
pod'ChameleonFramework'
Chameleon - iOS??(Obj-C & Swift)的扁平風(fēng)格顏色框架github.com
5.?Alamofire
Alamofire 是一個寫在 Swift 上的十分美觀的網(wǎng)絡(luò)文庫。你有使用過 AFNetwork 嗎牺荠?Alamofire 就是它的姐妹版翁巍,但 Alamofire?更新穎,更有型休雌,當(dāng)然(AFNetwork 是寫在 Objective-C 上的)灶壶。
是否還需要做一些網(wǎng)絡(luò)的東西,例如下載杈曲,上傳驰凛,獲取 JSONs 等等呢胸懈?Alamofire 已經(jīng)為你準(zhǔn)備好了。GitHub 上 8000 人的選擇肯定不會錯恰响。
CocoaPods:
pod'Alamofire'
Alamofire -?Swift中的優(yōu)雅 HTTP 網(wǎng)絡(luò).github.com
6.?TextFieldEffects
你是不是感覺標(biāo)準(zhǔn)的 UIT 文本域有點(diǎn)無聊趣钱?我也有這樣的感覺——讓我們來跟 TextFieldEffects 打個招呼吧! 我不會寫太多胚宦,只是為你展示一些這個文庫可以做到的事例:
是的首有,這些是簡單的下拉插入鍵。你甚至可以利用腳本里的 IBDesignables枢劝!
CocoaPods:
pod'TextFieldEffects'
Carthage:
github"raulriera/TextFieldEffects"
TextFieldEffects -?自定義 UITextFields 效果靈感來自 Codrops井联,使用 Swift 構(gòu)建.github.com
7. GPUImage
你是否有創(chuàng)建過相機(jī)APP的經(jīng)歷?如果沒有您旁,你一定會在不久之后遇到這個庫的烙常。
GPUImage為我們提供了由GPU加速的相機(jī)預(yù)覽效果(包括圖像和視頻),速度極快鹤盒。 在App Store有數(shù)百個APP已經(jīng)使用這個庫——我其中的一個也使用了:
我的一個使用GPUImage的APP军掂。
8869 stars on GitHub and still counting.在GitHub上有8869顆星,并且還在不斷增加中昨悼。
CocoaPods:
pod'GPUImage'
GPUImage - An open source iOS framework for GPU-based image and video processinggithub.com
(GPUImage:iOS上開源的基于GPU的圖像視頻處理框架)
8. iRate
在App Store中獲得更多評論的最好方法是什么蝗锥? 我沒有實際數(shù)據(jù)來回答這個問題,但如果我不得不猜測的話率触,我會說直接去問用戶终议。也許這么做是一個很老式的方式——大多數(shù)開發(fā)人員現(xiàn)在創(chuàng)建自定義的App提示窗——但如果你沒有時間或你不想一切從頭開始,最好是使用iRate而不是不用葱蝗。iRate是這樣的:一個你可以包含到你的工程中穴张,并且不需要考慮要求用戶評論的小型庫——iRate將會在合適的時機(jī)自動完成這個。
CocoaPods:
pod'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應(yīng)用商店下載并使用你的app用戶給你推薦)
9. GameCenterManager
不管你喜歡或討厭單例子,在這里通過我們最熟悉的?anti-pattern?(反模式)管理?Game Center 都是一件非常簡單的事(你的游戲里只有一個Game Center在,不是嗎?)
老實說年局,vanilla-managing 在 iOS 中管理 Game Center 并不是很難吼过,但是使用這個庫就更加簡單和快捷了。好上加好的體驗。
我正在我的一個游戲項目中使用它,它帶給我愉快的體驗。
CocoaPods:
pod'GameCenterManager'
GameCenterManager -?iOS 游戲中心助手singletongithub.com
10.PKRevealController 2
這個是我最喜歡的 iOS 控件之一墓塌,它就像一個寶石。PKRevealController 是一個側(cè)滑的菜單(左,右苫幢,或者同時)访诱,滑向哪邊是看你的使用習(xí)慣(或者僅僅通過一個按鈕,但是這樣看起來并沒有像滑動那樣的 Cool)韩肝。
關(guān)于類似功能盐数,我嘗試過不少其他的庫,但是 PKRevealController 給我的感覺是最好的伞梯,非常簡單的設(shè)置玫氢,高度的自定義,手勢的識別非常好谜诫。這個真的可以被包括在 iOS 的 SDK 中漾峡,作為一個標(biāo)準(zhǔn)庫。
CocoaPods:
pod'PKRevealController'
Introducing PKRevealController 2 -?第二版本的 iOS 的最流行的視圖控制器容器... github.com
11. SlackTextViewController
你使用過 Slack iOS 的 App 嗎喻旷?如果你在一個大型的軟件公司工作生逸,可能答案是肯定的。但也有一些人尚未接觸 Slack且预。 Slack 的 iOS App 非常強(qiáng)大槽袄,尤其是它的自定義文本輸入控件...這里有一段代碼,你可在 APP 中使用锋谐!
需要自動增長的文本區(qū)域遍尺?驗證下。需要手勢識別涮拗、自動完成乾戏、多媒體粘貼? 驗證下三热。需要易于方案集成鼓择?驗證下。你還可能需要什么其他功能呢就漾?
CocoaPods:
pod'SlackTextViewController'
slackhq/SlackTextViewController
SlackTextViewController -?一個插入UIViewController子類與不斷增長的文本輸入視圖和其他有用的消息... github.com
12. RETableViewManager
RETableViewManager 將幫助您動態(tài)創(chuàng)建和管理表視圖呐能,自動生成控制代碼。 它為我們提供了預(yù)定義的單元格(對于 bools抑堡,文本摆出,日期等 - 請查看下面的屏幕截圖),但你也可以創(chuàng)建自定義視圖夷野,并支持與默認(rèn)的視圖一起使用懊蒸。
所有這些元素,你可以在不使用這個庫的前提下在 storyboard 中實現(xiàn)悯搔。但有時簡單的代碼比可視化編輯器更好。
CocoaPods:
pod'RETableViewManager'
romaonthego/RETableViewManager
RETableViewManager -?強(qiáng)大的數(shù)據(jù)驅(qū)動內(nèi)容管理器UITableView.github.com
13、權(quán)限作用域
該庫通過在請求用戶之前通知用戶有關(guān)所需的系統(tǒng)權(quán)限妒貌,以提供更好的用戶體驗通危。更高的接受率->更多活躍用戶使用 app->更佳反饋->更好狀態(tài)->更多下載量。鼎力推薦的 pod灌曙。
CocoaPods:
pod'PermissionScope'
PermissionScope - 一個 Periscope-啟發(fā)方式來自 iOS 權(quán)限.github.com
14菊碟、SVProgressHUD
這個圖片展示的是正常下載,不用等到更長時間在刺,也不用刷新頁面逆害。這就是 SVProgressHUD 在 app 中所呈現(xiàn)的。假如你需要自定義等待提示蚣驼,這里有一個例子(可能是合適的)魄幕。
CocoaPods:
pod'SVProgressHUD'
SVProgressHUD - 為 iOS 應(yīng)用程序提供一個干凈、輕巧的進(jìn)度 HUD.github.com
15. FontAwesomeKit
Font Awesome 是非常優(yōu)秀的颖杏,使用這個庫可以簡單地添加字體到你的項目當(dāng)中纯陨,另外還有很多其它方面的功能。
CocoaPods:
pod'FontAwesomeKit'
FontAwesomeKit - 適用于 iOS 的圖標(biāo)字體庫留储。當(dāng)前支持?Font-Awesome翼抠,Foundation icons,Zocial 和ionicons获讳。?github.com
16. SnapKit
喜歡自動布局(auto layout)阴颖?應(yīng)該是!
至少在?storyboards 中創(chuàng)建的時候是這樣的丐膝。
在沒有幫助的情況下膘盖,在代碼上創(chuàng)建約束是痛苦的,幸運(yùn)地是用 SnapKit 你可以很方便地通過聲明的方式尤误,來約束你的代碼侠畔。來看看吧。
CocoaPods:
pod'SnapKit'
SnapKit - 一個為 iOS & OSX 系統(tǒng)的快速的自動布局 DSL?github.com
17. MGSwipeTableCell
這是另一個在很多應(yīng)用里經(jīng)乘鹞睿看到的 UI 模塊软棺,Apple 也許應(yīng)該考慮將之納入標(biāo)準(zhǔn)的 iOS SDK 里。Swipeable table cell(可擦除式表格單元)——是關(guān)于這個產(chǎn)品最好的描述尤勋。最好的一個喘落。
以上只是3種動畫類型,還有更多動畫lei'xin最冰,請查閱Readme瘦棋。
CocoaPods:
pod'MGSwipeTableCell'
MGSwipeTableCell -?MGSwipeTableCell - 一個易用的UITableViewCell子類,允許顯示可擦除式按鈕暖哨,并提供各種...github.com
18. Quick
Swift 里的單元測試赌朋,適用于 Swift(好吧,Objective-C 也能用),已與 Xcode 集成沛慢。如果你是 Objective-C 粉赡若,我更推薦Specta,但是對于 Swift 來說团甲,Quick 應(yīng)該是最棒的選擇逾冬。
CocoaPods:
pod'Quick'
Quick -?Swift(及 Objective-C)的測試框架。github.com
19. IAPHelper
應(yīng)用內(nèi)置支付給我們帶來大量的樣板代碼躺苦,這個庫簡單封裝了大量常見的任務(wù)來擺脫那些樣板代碼身腻。它封裝功能都是關(guān)于如何將 iOS?用戶的錢送到你(或者你的公司)的錢包。
CocoaPods:
pod'IAPHelper'
IAPHelper -?iOS?的內(nèi)購助手?github.com
20. ReactiveCocoa
好啊匹厘,這里有一個小怪物嘀趟。
不像這個列表中的其它項,ReactiveCocoa?不小而且不會嵌入項目中集乔。ReactiveCocoa?給我們帶來不同的編程風(fēng)格/架構(gòu)去件,它基于信號和數(shù)據(jù)流。它令人感覺驚奇扰路,不過你得先忘掉以前所學(xué)的內(nèi)容才能理解它的工作原理尤溜。這不是一件容易的事情,但值得汗唱。
這里并不適合教你 ReactiveCocoa宫莱,但是如果你有興趣,我會給你很好的資源:
CocoaPods:
pod'ReactiveCocoa'
ReactiveCocoa -?一個組成和傳輸數(shù)據(jù)流的框架?github.com
21. SwiftyJSON
使得在 Swift 中的JSON?解析更加簡便哩罪。
CocoaPods:
pod'SwiftyJSON'
SwiftyJSON -?在 Swift 中處理 JSON 數(shù)據(jù)的更好方法github.com
22. Spring
使制作動畫變得容易授霸、更具表達(dá)性,并且可鏈接际插。
CocoaPods:
pod'Spring'
Spring -?Swift中用于簡化iOS動畫的庫.github.com
23. FontBlaster
簡化自定義字體加載到 APP 的實現(xiàn)碘耳。
CocoaPods:
pod'FontBlaster'
FontBlaster - 編程實現(xiàn)在 iOS app 中加載自定義字體.github.com
()
24. TAPromotee
這是交替宣傳 APP 的最佳營銷策略之一,它可在 APP 中免費(fèi)實現(xiàn)框弛。有了這個庫辛辨,一切操作都變得簡單,你會忍不住想試一試的——添加 TAPromotee 到你的的 podfile 中瑟枫,配置后斗搞,就可以免費(fèi)享受更多下載量了。
CocoaPods:
pod'TAPromotee'
TAPromotee - Objective-C 庫慷妙,用于互相推薦 iOS 應(yīng)用.github.com
25. Concorde
你是否在 APP 中加載了大量的 JPEG僻焚??Concorde 是一種漸進(jìn)的加載方式,它可以讓圖片以更好看的方式加載出來膝擂。
CocoaPods:
pod'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 圖表庫咐旧!它非常實用驶鹉,也非常優(yōu)雅绩蜻,因此我不用過于贅述——你只要滾動下頁面铣墨,就能知道使用這個項目能為你的 app 做些什么。
是的办绝,一切都可以當(dāng)成一個簡單的(也許可稱為“代碼嵌入”)組件使用伊约。
遺憾的是目前還沒有支持 CocoaPods,所以你需要手工將項目拖動到你的 Xcode 工作區(qū)中孕蝉。
TL;DR list of all these libraries for quick?access:
DZNEmptyDataSet?[UI,?解決空表顯示]
PDTSimpleCalendar?[UI,?下拉日歷組件]
MagicalRecord?[實現(xiàn)活動記錄模式?的 Core Data?助手]
Chameleon?[UI,?色彩框架]
Alamofire?[Swift?網(wǎng)絡(luò)化]
TextFieldEffects?[UI,?自定義視覺的文本框]
GPUImage?[快速圖像處理]
iRate?[獲得用戶對等級的投票]
GameCenterManager?[易于管理的用戶中心]
PKRevealController?[UI,?側(cè)滑菜單]
SlackTextViewController?[UI,?高度可定制的文本框]
RETableViewManager?[從代碼動態(tài)創(chuàng)建表格視圖]
PermissionScope?[UI,?提前向用戶請求系統(tǒng)權(quán)限]
SVProgressHUD?[UI,?自定義等待圖示]
FontAwesomeKit?[把 Font Awesome?添到項目變得簡單]
SnapKit?[在代碼中簡單地自動布局]
MGSwipeTableCell?[UI,?讓表格視圖的單元格可滑動]
Quick?[Swift?單元測試框架]
IAPHelper?[內(nèi)購助手]
ReactiveCocoa?[FRP框架]
SwiftyJSON?[Swift JSON?庫]
Spring?[動畫框架]
FontBlaster?[在應(yīng)用中簡單地加載自定義字體]
TAPromotee?[通過下拉視圖全方位推廣你的應(yīng)用]
Concorde?[邊下載邊顯示 JPEG?圖像]
KeychainAccess?[密碼管理器]
iOS-charts?[漂亮的圖表庫]