27個提升效率的iOS開源庫推薦
我熱愛開源,更喜愛那些花費寶貴的業(yè)余時間來創(chuàng)造奇跡的開發(fā)者們,感謝他們將自己辛苦勞動的成果無償分享給大家。開源作者和貢獻者們,你們太了不起了,感謝你們所付出的一切。
鑒于我是收集不全會死星人,這里我根據(jù)個人喜好選取了一些iOS的開源庫。這些項目的順序完全隨機,每個都棒到爆。絕大多數(shù)支持CocoaPods,所以將它們添加到你的Xcode項目中只是小事一樁。
在本文末尾你可以找到一個長文慎入版本——一個只包含題目與項目鏈接的簡單列表。如果你覺得這篇文章有用的話,請把它分享給其他做iOS開發(fā)的小伙伴們,好酒也怕巷子深。
DZNEmptyDataSet算是一個很標(biāo)準(zhǔn)的iOS內(nèi)建方式,適合用來處理空的table view和collection view。默認(rèn)情況下,如果你的table view為空,屏幕就為空,這樣一來用戶體驗并不理想。
使用這個庫,你只需遵守一些協(xié)議,iOS就會自動將collection view處理完善,并將用戶消息以合適美觀的方式顯示出來。每個iOS項目都可以自動處理,不用再一一費神。
你的應(yīng)用需要一個簡單美觀且正常運行的日歷組件嗎?現(xiàn)在有了——PDTSimpleCalendar也許可以算是iOS最棒的日歷組件了。你可以在各個方面對它進行定制,無論是運行邏輯還是外觀方面。
他們都說:Core Data簡潔易用。他們又說:很棒很好用噢。哈?真的嗎,蘋果?添加到各個項目中的大量樣板數(shù)據(jù)完全不符合簡潔而易用的標(biāo)準(zhǔn)。更別提添加、移除和更新那一大堆的entities、保存context、按不同環(huán)境創(chuàng)建不同的Core Data堆棧等等。當(dāng)然,我很喜歡Core Data,但是蘋果真的可以把它更好地簡化一下——使用MagicalRecord方式。
MagicalRecord就像是給Core Data提供了一層外包裝,隱藏掉所有不相關(guān)的東西。如果你曾經(jīng)使用過active record模式(比如Ruby on Rails),你就知道了。傾情推薦,在應(yīng)用中使用Core Data的童鞋們可一定要試試。
如果你已經(jīng)看到這里了,我猜你更有可能是個程序猿,而不是設(shè)計獅。這里有個東東很適合你。
Chameleon是一個iOS的色彩框架。它運用現(xiàn)代化flat color將UIColor擴展地非常美觀。我們還可以通過它運用自定義顏色創(chuàng)建調(diào)色板。它還有很多功用,請瀏覽readme。如果你想要應(yīng)用美觀的話,一定要把這個庫加到項目里。
Alamofire是一個簡潔的網(wǎng)絡(luò)庫,用Swift語言編寫。你是否曾經(jīng)使用過AFNetworking呢?Alamofire是它的小弟。更年輕更時尚,當(dāng)然(AFNetworking是用Objective-C編寫的)。
如果你需要進行網(wǎng)絡(luò)的相關(guān)工作,諸如下載、上傳與獲取JSONs等等的話,Alamofire正是你所需要的。GitHub上8000人次推薦,一定不會錯。
#p#
你不覺得標(biāo)準(zhǔn)的UITextField有些枯燥么?我也這樣想——來認(rèn)識一下TextFieldEffects吧!廢話不多說,只要看幾個例子:
是啊,都是些簡單的dropin控制器。你甚至可以在storyboard中使用IBDesignables。
不幸地是:這個庫不支持CocoaPods(如果你來自未來,而這一情況什么時候會改變的話,一定要在Twitter上告訴我),但是它支持Carthage。你只管從GitHub上下載項目,把它放入你的workspace就行了。
你曾經(jīng)寫過照相機應(yīng)用嗎?如果沒有的話,很快你一定會遇到這個庫的。
GPUImage為我們提供了一個GPU加速的照相機效果(同時支持照片與視頻),而且處理速度飛快。在App Store中,使用這個庫的應(yīng)用數(shù)以百計。我有一個應(yīng)用也用到了GPUImage。 它在GitHub上獲得了8869個star,而且還在增長。
想要在App Store中獲得更多評論的最佳方式是什么?想要回答這個問題,我缺乏切實數(shù)據(jù),但如果必須猜一下的話,我會建議問問用戶。也許這樣做有點老套——大多開發(fā)者現(xiàn)在都有創(chuàng)建定制的應(yīng)用內(nèi)置alert。
但是如果你沒有時間,或者不想從頭實現(xiàn)的話,最好用一下iRata。這個就是iRata——一個小型庫——你可以把它放入項目中,把問卷調(diào)查什么的都忘記吧,iRate會在恰當(dāng)?shù)臅r候為你解決這個問題。
無論你喜不喜歡單例模式,管理一個GameCenter都比我們已知的其他相反模式要好很多。(你的游戲只有一個GameCenter,對嗎?)
說實話,在iOS上管理GameCenter vanilla并不算難,但是有了這個庫會更簡單也更快。好上加好不是更好么。
我在我一個游戲中用到了這個,體驗很好。
這個要注意,真的很棒!是我最喜愛的iOS控件之一。PKRevealController是一個可以滑動的側(cè)邊欄菜單(可向左、向右或者同時向兩側(cè)),只需手指輕輕一點(或者按一下按鈕,但是這樣滑動時不夠炫酷)。
我試過一些可以提供這類控制的其他庫,而PKRevealController是最棒的。安裝簡便,高度定制且對手勢識別良好。可以當(dāng)做一個標(biāo)準(zhǔn)控件用在iOS SDK中。
你曾經(jīng)用過Slack iOS應(yīng)用嗎?如果你在較大的軟件公司工作,也許會用過。對那些沒用過的人呢?—?Slack令人激動。用到Slack的應(yīng)用也是這樣,尤其是用作極佳、定制的文本輸入控制時。這時你有了一個現(xiàn)成可用在應(yīng)用中的代碼。
自適應(yīng)文本區(qū)域?試一下。
手勢識別、自動填充、多媒體合并?試一下。
快速drop-in解決方案?試一下。
其他還想要什么?
RETableViewManager可以幫助你進行動態(tài)創(chuàng)建與管理table views。它給我們提供了預(yù)定義cells(bool類型、文本、日期等等——請看下面的截圖),但是你還可以創(chuàng)建自定義views,并與默認(rèn)視圖一同使用。
左側(cè)截圖顯得非常古板!在storyboard中沒有這個庫的時候,你能做的就是這些了,但是有時候代碼比可視化編輯器要好。
#p#
用這個庫可以在詢問用戶前,就告知用戶所需的系統(tǒng)權(quán)限,為用戶帶來更好的體驗。接受度更高—>更多活躍用戶->更高的留存率->數(shù)據(jù)更好->下載率更高。墻裂推薦pod。
這張圖片在正常加載,無需等待太久或者刷新頁面。這正是SVProgressHUD在你的應(yīng)用中的表現(xiàn)。如果你需要定制化的等待提示器,這個就是了(也許是最好的)。
Font Awesome很棒,有了它你可以很容易地給項目加字體,使用方式繁多。
喜歡自動布局嗎?當(dāng)然喜歡!至少在storyboard中創(chuàng)建時會喜歡。 在代碼中純手工創(chuàng)建約束灰常痛苦,但幸運的是我們有了SnapKit,在board中用上它,你可以簡單直觀地編寫約束了。
這是另一個常見于很多應(yīng)用中的UI組件,蘋果應(yīng)該考慮在標(biāo)準(zhǔn)的iOS SDK中加入一些類似的內(nèi)容。Swipeable表格cell是這個pod的最佳描述,也是最好的。
這只是其中三個動畫類型,還有更多變化,請查看readme。
用于Swift中的單元測試(也可用于Objective-C),與Xcode整合在一起。如果你是Objective-C的粉絲,我建議用Specta代替這個,但是對Swift使用者來說,Quick是最佳選擇。
應(yīng)用內(nèi)付費給我們提供了很多樣本代碼,而這個庫丟掉了那些代碼,將金錢交易相關(guān)的大多通用任務(wù)做了簡單的封裝。
好吧,這是個小怪物。
ReactiveCocoa并不像列表中其他庫一樣,它不是小型的drop-in項目。ReactiveCocoa給我們帶來了一個迥異的編程風(fēng)格與結(jié)構(gòu),它是基于信號與數(shù)據(jù)流的。首先你需要忘掉已知的一切,才能理解它的工作方式。很有難度,但是價值不斐。
在這里教ReactiveCocoa有點不合適,但是如果你感興趣的話,我會提供一些好源:
注意:對我們iOS開發(fā)社區(qū)的朋友來說,這會是一個稍微有些技術(shù)含量的活兒。
使Swift的JSON解析變得簡單。
使動畫在簡單性、可鏈接性與聲明性方面有所提高。
載入定制字體時更簡單。
交叉推廣應(yīng)用是你可以免費實現(xiàn)的最佳市場推廣策略之一。使用這個庫做起來非常簡單,不用都不可能——將TAPromotee加入你的podfile中,免費配置與享受更多下載吧。
你在應(yīng)用中載入了一堆jpeg嗎?有了Concorde,你可以用更好的方式來解決,這是一個很大的進步。
管理Keychain接入的小助手。
最后一個,但絕不是最不重要的——iOS圖表庫!非常有用而且美觀,這里我無需贅言。向下看,你就知道用它可以做什么了。
沒錯,一切都變成了drop-in組件了(也許是“code-in組件)。
不幸的是,它還不支持CocoaPods,所以你得手動把它拽到你的Xcode workspace里面去。
超長慎入列表:
-
DZNEmptyDataSet(UI,空表格視圖解算器)
-
PDTSimpleCalendar(UI,drop-in日歷組件)
-
MagicalRecord(實施活躍記錄模式的Core Data助手)
-
Chameleon(UI,色彩框架)
-
Alamofire(Swift 網(wǎng)絡(luò))
-
TextFieldEffects (UI,自定義外觀的文本區(qū)域)
-
GPUImage(快速圖片處理)
-
iRate(獲取用戶評價)
-
GameCenterManager(快速管理游戲中心)
-
PKRevealController(UI,滑動側(cè)邊欄菜單)
-
SlackTextViewController(UI,高度可定制的自定義文本區(qū)域)
-
RETableViewManager(自動以代碼創(chuàng)建表格視圖)
-
PermissionScope(UI,預(yù)詢問用戶系統(tǒng)權(quán)限的友好體驗)
-
SVProgressHUD (UI,自定義等待進度條)
-
FontAwesomeKit (快速添加Awesome字體)
-
SnapKit(在代碼中快速自動布局)
-
MGSwipeTableCell (UI,可滑動的表格視圖cell)
-
Quick(Swift單元測試框架)
-
IAPHelper(應(yīng)用內(nèi)購買助手封裝)
-
ReactiveCocoa(FRP框架)
-
SwiftyJSON(Swift JSON庫)
-
Spring(動畫框架)
-
FontBlaster(在應(yīng)用中快速載入個性化字體)
-
TAPromotee(使用drop-in視圖交叉推廣應(yīng)用)
-
Concorde(下載解碼漸進式j(luò)peg)
-
KeychainAccess(簡便管理keychain)
-
iOS-charts(美觀的圖表庫)