摘要:本文作者根據(jù)個(gè)人喜歡選取了一些能夠大幅提升開發(fā)效率的iOS開源庫(kù)祷舀,包括DZNEmptyDataSet峻仇、PDTSimpleCalendar疙挺、MagicalRecord硅蹦、Alamofire等翅帜,開發(fā)者可以非常輕松地將其添加到Xcode項(xiàng)目中姻檀。
CSDN移動(dòng)將持續(xù)為您優(yōu)選移動(dòng)開發(fā)的精華內(nèi)容,共同探討移動(dòng)開發(fā)的技術(shù)熱點(diǎn)話題涝滴,涵蓋移動(dòng)應(yīng)用绣版、開發(fā)工具、移動(dòng)游戲及引擎歼疮、智能硬件杂抽、物聯(lián)網(wǎng)等方方面面。如果您想投稿韩脏、參與內(nèi)容翻譯工作缩麸,或?qū)で蠼硤?bào)道,請(qǐng)發(fā)送郵件至tangxy#csdn.net(請(qǐng)把#改成@)赡矢。
我熱愛開源杭朱,更喜愛那些花費(fèi)寶貴的業(yè)余時(shí)間來創(chuàng)造奇跡的開發(fā)者們,感謝他們將自己辛苦勞動(dòng)的成果無償分享給大家吹散。開源作者和貢獻(xiàn)者們弧械,你們太了不起了,感謝你們所付出的一切空民。
鑒于我是收集不全會(huì)死星人刃唐,這里我根據(jù)個(gè)人喜好選取了一些iOS的開源庫(kù)。這些項(xiàng)目的順序完全隨機(jī)袭景,每個(gè)都棒到爆唁桩。絕大多數(shù)支持CocoaPods,所以將它們添加到你的Xcode項(xiàng)目中只是小事一樁耸棒。
在本文末尾你可以找到一個(gè)長(zhǎng)文慎入版本——一個(gè)只包含題目與項(xiàng)目鏈接的簡(jiǎn)單列表荒澡。如果你覺得這篇文章有用的話,請(qǐng)把它分享給其他做iOS開發(fā)的小伙伴們与殃,好酒也怕巷子深单山。
1.DZNEmptyDataSet
DZNEmptyDataSet算是一個(gè)很標(biāo)準(zhǔn)的iOS內(nèi)建方式碍现,適合用來處理空的table view和collection view。默認(rèn)情況下米奸,如果你的table view為空昼接,屏幕就為空,這樣一來用戶體驗(yàn)并不理想悴晰。
使用這個(gè)庫(kù)慢睡,你只需遵守一些協(xié)議,iOS就會(huì)自動(dòng)將collection view處理完善铡溪,并將用戶消息以合適美觀的方式顯示出來漂辐。每個(gè)iOS項(xiàng)目都可以自動(dòng)處理,不用再一一費(fèi)神棕硫。
2.PDTSimpleCalendar
你的應(yīng)用需要一個(gè)簡(jiǎn)單美觀且正常運(yùn)行的日歷組件嗎髓涯?現(xiàn)在有了——PDTSimpleCalendar也許可以算是iOS最棒的日歷組件了。你可以在各個(gè)方面對(duì)它進(jìn)行定制哈扮,無論是運(yùn)行邏輯還是外觀方面纬纪。
3.MagicalRecord
他們都說:Core Data簡(jiǎn)潔易用。他們又說:很棒很好用噢滑肉。哈包各?真的嗎,蘋果赦邻?添加到各個(gè)項(xiàng)目中的大量樣板數(shù)據(jù)完全不符合簡(jiǎn)潔而易用的標(biāo)準(zhǔn)髓棋。更別提添加、移除和更新那一大堆的entities惶洲、保存context、按不同環(huán)境創(chuàng)建不同的Core Data堆棧等等膳犹。當(dāng)然恬吕,我很喜歡Core Data,但是蘋果真的可以把它更好地簡(jiǎn)化一下——使用MagicalRecord方式须床。
MagicalRecord就像是給Core Data提供了一層外包裝铐料,隱藏掉所有不相關(guān)的東西。如果你曾經(jīng)使用過active record模式(比如Ruby on Rails)豺旬,你就知道了钠惩。傾情推薦,在應(yīng)用中使用Core Data的童鞋們可一定要試試族阅。
4.Chameleon
如果你已經(jīng)看到這里了篓跛,我猜你更有可能是個(gè)程序猿,而不是設(shè)計(jì)獅坦刀。這里有個(gè)東東很適合你愧沟。
Chameleon是一個(gè)iOS的色彩框架蔬咬。它運(yùn)用現(xiàn)代化flat color將UIColor擴(kuò)展地非常美觀。我們還可以通過它運(yùn)用自定義顏色創(chuàng)建調(diào)色板沐寺。它還有很多功用林艘,請(qǐng)瀏覽readme。如果你想要應(yīng)用美觀的話混坞,一定要把這個(gè)庫(kù)加到項(xiàng)目里狐援。
5.Alamofire
Alamofire是一個(gè)簡(jiǎn)潔的網(wǎng)絡(luò)庫(kù),用Swift語言編寫究孕。你是否曾經(jīng)使用過AFNetworking呢咕村?Alamofire是它的小弟。更年輕更時(shí)尚蚊俺,當(dāng)然(AFNetworking是用Objective-C編寫的)懈涛。
如果你需要進(jìn)行網(wǎng)絡(luò)的相關(guān)工作,諸如下載泳猬、上傳與獲取JSONs等等的話批钠,Alamofire正是你所需要的。GitHub上8000人次推薦得封,一定不會(huì)錯(cuò)埋心。
6.TextFieldEffects
你不覺得標(biāo)準(zhǔn)的UITextField有些枯燥么?我也這樣想——來認(rèn)識(shí)一下TextFieldEffects吧忙上!廢話不多說拷呆,只要看幾個(gè)例子:
是啊,都是些簡(jiǎn)單的dropin控制器疫粥。你甚至可以在storyboard中使用IBDesignables茬斧。
不幸地是:這個(gè)庫(kù)不支持CocoaPods(如果你來自未來,而這一情況什么時(shí)候會(huì)改變的話梗逮,一定要在Twitter上告訴我)项秉,但是它支持Carthage。你只管從GitHub上下載項(xiàng)目慷彤,把它放入你的workspace就行了娄蔼。
7.GPUImage
你曾經(jīng)寫過照相機(jī)應(yīng)用嗎?如果沒有的話底哗,很快你一定會(huì)遇到這個(gè)庫(kù)的岁诉。
GPUImage為我們提供了一個(gè)GPU加速的照相機(jī)效果(同時(shí)支持照片與視頻),而且處理速度飛快跋选。在App Store中涕癣,使用這個(gè)庫(kù)的應(yīng)用數(shù)以百計(jì)。我有一個(gè)應(yīng)用也用到了GPUImage野建。它在GitHub上獲得了8869個(gè)star属划,而且還在增長(zhǎng)恬叹。
8.iRate
想要在App Store中獲得更多評(píng)論的最佳方式是什么?想要回答這個(gè)問題同眯,我缺乏切實(shí)數(shù)據(jù)绽昼,但如果必須猜一下的話,我會(huì)建議問問用戶须蜗。也許這樣做有點(diǎn)老套——大多開發(fā)者現(xiàn)在都有創(chuàng)建定制的應(yīng)用內(nèi)置alert硅确。
但是如果你沒有時(shí)間,或者不想從頭實(shí)現(xiàn)的話明肮,最好用一下iRata菱农。這個(gè)就是iRata——一個(gè)小型庫(kù)——你可以把它放入項(xiàng)目中,把問卷調(diào)查什么的都忘記吧柿估,iRate會(huì)在恰當(dāng)?shù)臅r(shí)候?yàn)槟憬鉀Q這個(gè)問題循未。
9.GameCenterManager
無論你喜不喜歡單例模式嘲叔,管理一個(gè)GameCenter都比我們已知的其他相反模式要好很多最仑。(你的游戲只有一個(gè)GameCenter,對(duì)嗎璧眠?)
說實(shí)話足陨,在iOS上管理GameCenter vanilla并不算難嫂粟,但是有了這個(gè)庫(kù)會(huì)更簡(jiǎn)單也更快。好上加好不是更好么墨缘。
我在我一個(gè)游戲中用到了這個(gè)星虹,體驗(yàn)很好。
10.PKRevealController 2
這個(gè)要注意镊讼,真的很棒宽涌!是我最喜愛的iOS控件之一。PKRevealController是一個(gè)可以滑動(dòng)的側(cè)邊欄菜單(可向左狠毯、向右或者同時(shí)向兩側(cè))护糖,只需手指輕輕一點(diǎn)(或者按一下按鈕,但是這樣滑動(dòng)時(shí)不夠炫酷)嚼松。
我試過一些可以提供這類控制的其他庫(kù),而PKRevealController是最棒的锰扶。安裝簡(jiǎn)便献酗,高度定制且對(duì)手勢(shì)識(shí)別良好】琅#可以當(dāng)做一個(gè)標(biāo)準(zhǔn)控件用在iOS SDK中罕偎。
11.SlackTextViewController
你曾經(jīng)用過Slack iOS應(yīng)用嗎?如果你在較大的軟件公司工作京闰,也許會(huì)用過颜及。對(duì)那些沒用過的人呢甩苛?—?Slack令人激動(dòng)。用到Slack的應(yīng)用也是這樣俏站,尤其是用作極佳讯蒲、定制的文本輸入控制時(shí)。這時(shí)你有了一個(gè)現(xiàn)成可用在應(yīng)用中的代碼肄扎。
自適應(yīng)文本區(qū)域墨林?試一下。
手勢(shì)識(shí)別犯祠、自動(dòng)填充旭等、多媒體合并?試一下衡载。
快速drop-in解決方案搔耕?試一下。
其他還想要什么痰娱?
12.RETableViewManager
RETableViewManager可以幫助你進(jìn)行動(dòng)態(tài)創(chuàng)建與管理table views弃榨。它給我們提供了預(yù)定義cells(bool類型、文本猜揪、日期等等——請(qǐng)看下面的截圖)惭墓,但是你還可以創(chuàng)建自定義views,并與默認(rèn)視圖一同使用而姐。
左側(cè)截圖顯得非常古板腊凶!在storyboard中沒有這個(gè)庫(kù)的時(shí)候,你能做的就是這些了拴念,但是有時(shí)候代碼比可視化編輯器要好钧萍。
13.PermissionScope
用這個(gè)庫(kù)可以在詢問用戶前,就告知用戶所需的系統(tǒng)權(quán)限政鼠,為用戶帶來更好的體驗(yàn)风瘦。接受度更高—>更多活躍用戶->更高的留存率->數(shù)據(jù)更好->下載率更高。墻裂推薦pod公般。
14.SVProgressHUD
這張圖片在正常加載万搔,無需等待太久或者刷新頁(yè)面。這正是SVProgressHUD在你的應(yīng)用中的表現(xiàn)官帘。如果你需要定制化的等待提示器瞬雹,這個(gè)就是了(也許是最好的)。
15.FontAwesomeKit
Font Awesome很棒刽虹,有了它你可以很容易地給項(xiàng)目加字體酗捌,使用方式繁多。
16.SnapKit
喜歡自動(dòng)布局嗎?當(dāng)然喜歡胖缤!至少在storyboard中創(chuàng)建時(shí)會(huì)喜歡尚镰。在代碼中純手工創(chuàng)建約束灰常痛苦,但幸運(yùn)的是我們有了SnapKit哪廓,在board中用上它狗唉,你可以簡(jiǎn)單直觀地編寫約束了。
17.MGSwipeTableCell
這是另一個(gè)常見于很多應(yīng)用中的UI組件撩独,蘋果應(yīng)該考慮在標(biāo)準(zhǔn)的iOS SDK中加入一些類似的內(nèi)容敞曹。Swipeable表格cell是這個(gè)pod的最佳描述,也是最好的综膀。
這只是其中三個(gè)動(dòng)畫類型澳迫,還有更多變化,請(qǐng)查看readme剧劝。
18.Quick
用于Swift中的單元測(cè)試(也可用于Objective-C)橄登,與Xcode整合在一起。如果你是Objective-C的粉絲讥此,我建議用Specta代替這個(gè)拢锹,但是對(duì)Swift使用者來說,Quick是最佳選擇萄喳。
19.IAPHelper
應(yīng)用內(nèi)付費(fèi)給我們提供了很多樣本代碼卒稳,而這個(gè)庫(kù)丟掉了那些代碼,將金錢交易相關(guān)的大多通用任務(wù)做了簡(jiǎn)單的封裝他巨。
20.ReactiveCocoa
好吧充坑,這是個(gè)小怪物。
ReactiveCocoa并不像列表中其他庫(kù)一樣染突,它不是小型的drop-in項(xiàng)目捻爷。ReactiveCocoa給我們帶來了一個(gè)迥異的編程風(fēng)格與結(jié)構(gòu),它是基于信號(hào)與數(shù)據(jù)流的份企。首先你需要忘掉已知的一切也榄,才能理解它的工作方式。很有難度司志,但是價(jià)值不斐甜紫。
在這里教ReactiveCocoa有點(diǎn)不合適,但是如果你感興趣的話骂远,我會(huì)提供一些好源:
Getting Started with ReactiveCocoa
Mattt Thompson:Reactive?Cocoa
ReactiveCocoa Tutorial – The Definitive Introduction: Part 1/2
注意:對(duì)我們iOS開發(fā)社區(qū)的朋友來說棵介,這會(huì)是一個(gè)稍微有些技術(shù)含量的活兒。
21.SwiftyJSON
使Swift的JSON解析變得簡(jiǎn)單吧史。
22.Spring
使動(dòng)畫在簡(jiǎn)單性、可鏈接性與聲明性方面有所提高。
23.FontBlaster
載入定制字體時(shí)更簡(jiǎn)單贸营。
24.TAPromotee
交叉推廣應(yīng)用是你可以免費(fèi)實(shí)現(xiàn)的最佳市場(chǎng)推廣策略之一吨述。使用這個(gè)庫(kù)做起來非常簡(jiǎn)單,不用都不可能——將TAPromotee加入你的podfile中钞脂,免費(fèi)配置與享受更多下載吧揣云。
25.Concorde
你在應(yīng)用中載入了一堆jpeg嗎?有了Concorde冰啃,你可以用更好的方式來解決邓夕,這是一個(gè)很大的進(jìn)步。
26.KeychainAccess
管理Keychain接入的小助手阎毅。
27.iOS-charts
最后一個(gè)焚刚,但絕不是最不重要的——iOS圖表庫(kù)!非常有用而且美觀扇调,這里我無需贅言矿咕。向下看,你就知道用它可以做什么了狼钮。
沒錯(cuò)碳柱,一切都變成了drop-in組件了(也許是“code-in組件)。
不幸的是熬芜,它還不支持CocoaPods莲镣,所以你得手動(dòng)把它拽到你的Xcode workspace里面去。
超長(zhǎng)慎入列表:
DZNEmptyDataSet(UI涎拉,空表格視圖解算器)
PDTSimpleCalendar(UI瑞侮,drop-in日歷組件)
MagicalRecord(實(shí)施活躍記錄模式的Core Data助手)
Chameleon(UI,色彩框架)
Alamofire(Swift 網(wǎng)絡(luò))
TextFieldEffects(UI曼库,自定義外觀的文本區(qū)域)
GPUImage(快速圖片處理)
iRate(獲取用戶評(píng)價(jià))
GameCenterManager(快速管理游戲中心)
PKRevealController(UI区岗,滑動(dòng)側(cè)邊欄菜單)
SlackTextViewController(UI,高度可定制的自定義文本區(qū)域)
RETableViewManager(自動(dòng)以代碼創(chuàng)建表格視圖)
PermissionScope(UI毁枯,預(yù)詢問用戶系統(tǒng)權(quán)限的友好體驗(yàn))
SVProgressHUD(UI慈缔,自定義等待進(jìn)度條)
FontAwesomeKit(快速添加Awesome字體)
SnapKit(在代碼中快速自動(dòng)布局)
MGSwipeTableCell(UI,可滑動(dòng)的表格視圖cell)
Quick(Swift單元測(cè)試框架)
IAPHelper(應(yīng)用內(nèi)購(gòu)買助手封裝)
ReactiveCocoa(FRP框架)
SwiftyJSON(Swift JSON庫(kù))
Spring(動(dòng)畫框架)
FontBlaster(在應(yīng)用中快速載入個(gè)性化字體)
TAPromotee(使用drop-in視圖交叉推廣應(yīng)用)
Concorde(下載解碼漸進(jìn)式j(luò)peg)
KeychainAccess(簡(jiǎn)便管理keychain)
iOS-charts(美觀的圖表庫(kù))