作者:張嘉夫
鏈接:https://www.zhihu.com/question/28816900/answer/76634312
來源:知乎
著作權(quán)歸作者所有芋齿。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處成翩。
1.IGListKit作者是Instagram Engineering
<img src="https://pic4.zhimg.com/v2-7cf7f0ea0c426b44ce963614eebddf83_b.jpg" data-rawwidth="800" data-rawheight="176" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic4.zhimg.com/v2-7cf7f0ea0c426b44ce963614eebddf83_r.jpg">
Instagram 程序員做的觅捆,IGListKit 是數(shù)據(jù)驅(qū)動的 UICollectionView 框架,為了構(gòu)建快速和可擴展的列表麻敌。另外栅炒,它有助于你在 app 結(jié)束對于大量視圖控制器的使用∈醺幔看看這篇來自Ray Wenderlich 的教程赢赊,關(guān)于如何在項目中實現(xiàn)這個庫,或者讀讀這篇Rodrigo Cavalcante 的文章级历,關(guān)于遷移現(xiàn)有的 UITableView 到 IGListCollectionView释移。
Instagram/IGListKit - 為了構(gòu)建快速和可擴展的列表而生的數(shù)據(jù)驅(qū)動 UICollectionView 框架
<img src="https://pic1.zhimg.com/v2-e5862087960267ad0e333e23a838f000_b.png" data-rawwidth="170" data-rawheight="60" class="content_image" width="170">
Realm是一個直接運行在手機、平板和可穿戴設(shè)備內(nèi)部的移動端數(shù)據(jù)庫寥殖,不只是 iOS玩讳。如果你想試一點和 Core Data 不一樣的,就用 Realm扛禽。許多人說它是一個現(xiàn)代化的锋边、產(chǎn)品已經(jīng)可以替代蘋果原生的解決方案皱坛。
realm/realm-cocoa - Realm 是一個移動端數(shù)據(jù)庫:Core Data 和 SQLite 的替代品
3.Moya作者是Ash Furrow
<img src="https://pic4.zhimg.com/v2-28493495c711fa3df370b1c37f611cdf_b.png" data-rawwidth="322" data-rawheight="320" class="content_image" width="322">
Moya 是你的 app 中缺失的網(wǎng)絡(luò)層编曼。不用再去想在哪兒(或者如何)安放網(wǎng)絡(luò)請求,Moya 替你管理剩辟。
<img src="https://pic1.zhimg.com/v2-4ea5d7d1d004c22d80945eb43ea52860_b.png" data-rawwidth="800" data-rawheight="579" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic1.zhimg.com/v2-4ea5d7d1d004c22d80945eb43ea52860_r.png">
Moya/Moya - 用 Swift 寫的網(wǎng)絡(luò)抽象層
Swift 界 JSON 解析之王掐场。
把這段代碼:
if let statusesArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],? ? let user = statusesArray[0]["user"] as? [String: Any],? ? let username = user["name"] as? String {? ? // Finally we got the username}
變成了這段:
let json = JSON(data: dataFromNetworking)if let userName = json[0]["user"]["name"].string {? // Now you got your value}
自動替你完成了可選值的拆包。
SwiftyJSON/SwiftyJSON - 在 Swift 里處理 JSON 更好的方式
Valet 允許你安全的在 iOS 或 OS X 鑰匙鏈中存儲數(shù)據(jù)贩猎,而不需要掌握任何鑰匙鏈如何工作的知識熊户。它支持在一臺設(shè)備的多個應(yīng)用(同一個開發(fā)者)間分享數(shù)據(jù),以及在一個應(yīng)用中在多個設(shè)備間利用 iCloud 進行分享吭服。支持 Touch ID嚷堡?沒問題。
square/Valet - Valet 可以讓你安全地在 iOS 或 OS X 鑰匙鏈中存儲數(shù)據(jù),而不需要掌握任何鑰匙鏈工作的知識蝌戒。它…
6.Firebase Analytics作者是Google Developers
<img src="https://pic1.zhimg.com/v2-17c99e678621903c1b434a857d8cde38_b.png" data-rawwidth="800" data-rawheight="410" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic1.zhimg.com/v2-17c99e678621903c1b434a857d8cde38_r.png">由谷歌制作(好吧串塑,
由谷歌制作(好吧,收購)北苟,應(yīng)該是 iOS 最好的免費分析解決方案桩匪。追蹤 app 使用量、用戶活躍度友鼻、以及事件傻昙;設(shè)置用戶屬性;創(chuàng)建自定義受眾彩扔;還有更多妆档。
Firebase Analytics | Firebase - Firebase Analytics 是一個免費 app 監(jiān)測解決方案,洞察 app 用量和用戶活躍度
<img src="https://pic1.zhimg.com/v2-1764209cbaa9ca899127ee3fbce09f10_b.png" data-rawwidth="800" data-rawheight="243" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic1.zhimg.com/v2-1764209cbaa9ca899127ee3fbce09f10_r.png">Facebook 為他們的 app
Facebook 為他們的 appPaper創(chuàng)造了這個異步 UI SDK借杰。如果你想讓你的 app 總是每秒用 60 幀的速度來渲染过吻,一定要看看這個庫。這兒有一篇來自 Buffer 團隊的故事:
facebook/AsyncDisplayKit - iOS app 的平滑異步用戶界面纤虽。
用戶安裝了你的 app 之后,就會看見一個空白的 UITableView绞惦。
DZNEmptyDataSet 幫助你避免這個情況逼纸,它提供了Empty Data Set Pattern的默認實現(xiàn)。
<img src="https://pic1.zhimg.com/v2-7f555a77f3ae544b6a97a52da57c2a24_b.png" data-rawwidth="800" data-rawheight="276" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic1.zhimg.com/v2-7f555a77f3ae544b6a97a52da57c2a24_r.png">
dzenbot/DZNEmptyDataSet - 嵌入式 UITableView/UICollectionView 的父類類別济蝉,用于顯示空的數(shù)據(jù)集杰刽,無論何時…
<img src="https://pic3.zhimg.com/v2-bcae05f7f2ed84c2d39fa56585d230b2_b.png" data-rawwidth="800" data-rawheight="428" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-bcae05f7f2ed84c2d39fa56585d230b2_r.png">
Chameleon 是一個輕量、又強大的 iOS 顏色框架王滤。它基于“軟件應(yīng)用程序應(yīng)該輕松地實現(xiàn)功能贺嫂,同時保持漂亮的界面”這個想法而創(chuàng)建。
有了 Chameleon雁乡,你就不再需要搗鼓 RGB 值第喳、浪費時間搞明白 app 里正確的顏色組合、以及為文本能否在 app 里不同的背景下可以被看見而煩惱踱稍。
<img src="https://pic1.zhimg.com/v2-82040ca5806a05629656ccc4eb630828_b.png" data-rawwidth="800" data-rawheight="428" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic1.zhimg.com/v2-82040ca5806a05629656ccc4eb630828_r.png">
<img src="https://pic3.zhimg.com/v2-882ac2a79c8b7edc4f4ea6858ace19ca_b.png" data-rawwidth="800" data-rawheight="466" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-882ac2a79c8b7edc4f4ea6858ace19ca_r.png">
ViccAlexander/Chameleon - iOS 的扁平顏色框架(Obj-C 和 Swift)
10.PermissionScope作者是Nick O’Neill
<img src="https://pic3.zhimg.com/v2-77e6a6b8a1916ceb124c1c57d7da05ca_b.png" data-rawwidth="800" data-rawheight="200" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-77e6a6b8a1916ceb124c1c57d7da05ca_r.png">PermissionScope 是一個 Swift 框架曲饱,為了向用戶巧妙地請求權(quán)限。它不只包含簡單的權(quán)限請求 UI珠月,還有統(tǒng)一的權(quán)限 API 可以告訴你任意給定的系統(tǒng)權(quán)限的狀態(tài)扩淀,當然也可以輕松地請求它們。
PermissionScope 是一個 Swift 框架啤挎,為了向用戶巧妙地請求權(quán)限驻谆。它不只包含簡單的權(quán)限請求 UI,還有統(tǒng)一的權(quán)限 API 可以告訴你任意給定的系統(tǒng)權(quán)限的狀態(tài),當然也可以輕松地請求它們胜臊。
<img src="https://pic4.zhimg.com/v2-739fe17560ee29612660da98fdbf8dd7_b.png" data-rawwidth="320" data-rawheight="570" class="content_image" width="320">
nickoneill/PermissionScope - 巧妙的 iOS 權(quán)限 UI 和 統(tǒng)一 API
11.FileKit作者是Nikolai Vazquez
<img src="https://pic3.zhimg.com/v2-601523c5e25a3ccda68d2995f04700fa_b.png" data-rawwidth="800" data-rawheight="200" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-601523c5e25a3ccda68d2995f04700fa_r.png">
FileKit 是一個 Swift 框架氛谜,提供了簡單和富有表現(xiàn)力的文件管理。看看使用示例区端。
nvzqz/FileKit - 簡單和富有表現(xiàn)力的 Swift 文件管理
12.SwiftyUserDefaults作者是Radek Pietruszewski
SwiftyUserDefaults 讓 user defaults 用起來很愉悅值漫,通過結(jié)合意味深長的 Swifty API 和靜態(tài)輸入的益處。在一個地方定義鍵织盼,輕松地使用值類型杨何,獲得額外的安全性和方便的編譯時檢查,這些都是免費的沥邻。
radex/SwiftyUserDefaults - NSUserDefaults 的現(xiàn)代化 Swift API
13.Kingfisher作者是王巍
<img src="https://pic4.zhimg.com/v2-7f5b5c7eaf8a73302e7150560cc3d243_b.png" data-rawwidth="800" data-rawheight="144" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic4.zhimg.com/v2-7f5b5c7eaf8a73302e7150560cc3d243_r.png">
Kingfisher 是一個輕量危虱、純 Swift 的庫,可以從網(wǎng)絡(luò)中異步下載和緩存圖片唐全。
<img src="https://pic2.zhimg.com/v2-4b21080237395a4ae5430f8698a1d141_b.png" data-rawwidth="776" data-rawheight="444" class="origin_image zh-lightbox-thumb" width="776" data-original="https://pic2.zhimg.com/v2-4b21080237395a4ae5430f8698a1d141_r.png">
Hero 是為了構(gòu)建 iOS 試圖控制器過渡動畫的庫攘蔽。它在 UIKit 繁瑣的過渡動畫 API 之上提供了一個層近她,使得自定義過渡動畫對于開發(fā)人員來說是一個輕松的任務(wù)。
lkzhao/Hero - iOS 優(yōu)雅的過渡動畫庫,用 Swift 寫的枢步。
<img src="https://pic3.zhimg.com/v2-ba7967db5d553036c5c98e41be730ce2_b.png" data-rawwidth="800" data-rawheight="236" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-ba7967db5d553036c5c98e41be730ce2_r.png">
Hedwig 是一個 Swift 包铝阐,提供了一組高級 API消玄,可以讓你輕松地發(fā)送電子郵件到SMTP服務(wù)器荔燎。如果你打算在下一個神奇的 Swift 服務(wù)器 app里發(fā)送 email,Hedwig 可能是一個好的選擇方庭。
onevcat/Hedwig - 像老板一樣發(fā)送郵件到任意 SMTP 服務(wù)器厕吉,用 Swift 編寫并且是跨平臺的
16.DeviceKit作者是Dennis Weissmann
DeviceKit 是 UIDevice 的值類型替換。輕松獲取設(shè)備信息和電池電量械念。
17.Charts
<img src="https://pic3.zhimg.com/v2-48e7671fee37718e7e9f362736f6db22_b.png" data-rawwidth="800" data-rawheight="340" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-48e7671fee37718e7e9f362736f6db22_r.png">漂亮的線圖头朱、餅圖、條形圖龄减、分布圖项钮、氣泡圖、雷達圖還有更多種類欺殿,這是一個圖表庫寄纵。
漂亮的線圖鳖敷、餅圖脖苏、條形圖、分布圖定踱、氣泡圖棍潘、雷達圖還有更多種類,這是一個圖表庫。
<img src="https://pic3.zhimg.com/v2-050688dffbbee6463fa786e268555f1e_b.png" data-rawwidth="800" data-rawheight="369" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-050688dffbbee6463fa786e268555f1e_r.png">
danielgindi/Charts - iOS/tvOS/OSX 的漂亮圖表亦歉!跨平臺的 MPAndroidChart 的蘋果端
一個易于使用的UITableViewCell子類恤浪,允許顯示帶有多種轉(zhuǎn)換的可滑動按鈕。
<img src="https://pic4.zhimg.com/v2-b475446ed1079b1eea6b9d7966e18393_b.png" data-rawwidth="478" data-rawheight="176" class="origin_image zh-lightbox-thumb" width="478" data-original="https://pic4.zhimg.com/v2-b475446ed1079b1eea6b9d7966e18393_r.png">
<img src="https://pic3.zhimg.com/v2-e6704502438d1f3a5ac4aa85bddb4756_b.png" data-rawwidth="478" data-rawheight="176" class="origin_image zh-lightbox-thumb" width="478" data-original="https://pic3.zhimg.com/v2-e6704502438d1f3a5ac4aa85bddb4756_r.png">
<img src="https://pic3.zhimg.com/v2-3c2010225f7e35b26bdb380948cfd7be_b.png" data-rawwidth="478" data-rawheight="176" class="origin_image zh-lightbox-thumb" width="478" data-original="https://pic3.zhimg.com/v2-3c2010225f7e35b26bdb380948cfd7be_r.png">
19.RandomKit作者是Nikolai Vazquez
<img src="https://pic3.zhimg.com/v2-fab2bdd25d0bc67b9b96dc9d3544c79e_b.png" data-rawwidth="800" data-rawheight="200" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-fab2bdd25d0bc67b9b96dc9d3544c79e_r.png">
簡單易用的隨機數(shù)據(jù)生成肴楷。
#285: 用 RandomKit 生成隨機數(shù)據(jù) - 無論是在 app 的原型界面需要樣本值水由,還是游戲邏輯的一些乘法器,隨機…
nvzqz/RandomKit - Swift 中的隨機數(shù)據(jù)生成
<img src="https://pic1.zhimg.com/v2-10657a62e9fdc471acf7bc0c53709d64_b.png" data-rawwidth="800" data-rawheight="97" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic1.zhimg.com/v2-10657a62e9fdc471acf7bc0c53709d64_r.png">
ResponseDetective 是一個非嵌入式框架赛蔫,用于攔截應(yīng)用程序和服務(wù)器之間的任何傳出請求和傳入響應(yīng)以用于調(diào)試目的砂客。
netguru/ResponseDetective - 網(wǎng)絡(luò)層里的夏洛克·福爾摩斯
21.Onboard
只需幾行代碼鞠值,即可輕松創(chuàng)建漂亮,引人入勝的用戶指導頁體驗渗钉。
<img src="https://pic1.zhimg.com/v2-231be172a7ef1f807b7ed20efe2df7d4_b.jpg" data-rawwidth="288" data-rawheight="511" class="content_image" width="288">
<img src="https://pic4.zhimg.com/v2-5cdcb3f75cedfa2ea33b67c5b816fc07_b.jpg" data-rawwidth="284" data-rawheight="511" class="content_image" width="284">
<img src="https://pic3.zhimg.com/v2-d0983e6673f3fff34cc4d35c9b47370e_b.png" data-rawwidth="800" data-rawheight="248" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-d0983e6673f3fff34cc4d35c9b47370e_r.png">
Quick是 Swift 和 Objective-C 的BDD測試框架彤恶,和匹配器框架 Nimble 配合使用。
Quick/Quick - Swift (以及 Objective-C)測試框架鳄橘。
Quick/Nimble - Swift 和 Objective-C 的匹配器
23.Natalie作者是Marcin Krzyzanowski
Natalie 生成基于 storyboard 文件的 Swift 代碼声离,使 storyboard 和 segue 更容易使用。生成的文件減少了用字符串作為 Segue 或 Storyboard 的標識符的情況瘫怜。
krzyzanowskim/Natalie - Storyboard 代碼生成器(Swift)
24.RxSwift作者是ReactiveExtensions*
<img src="https://pic3.zhimg.com/v2-f9360efb162e9151790b3bad3111d762_b.png" data-rawwidth="512" data-rawheight="512" class="origin_image zh-lightbox-thumb" width="512" data-original="https://pic3.zhimg.com/v2-f9360efb162e9151790b3bad3111d762_r.png">
對Swift中的 reactive 編程感興趣抵恋?這里是RxSwift。
25.GDPerformanceView作者是Daniil Gavrilov
<img src="https://pic3.zhimg.com/v2-d70803ebe4fbf014a70618ef8ab34306_b.png" data-rawwidth="750" data-rawheight="40" class="origin_image zh-lightbox-thumb" width="750" data-original="https://pic3.zhimg.com/v2-d70803ebe4fbf014a70618ef8ab34306_r.png">
<img src="https://pic3.zhimg.com/v2-51e09d36dbbac8b619ea692c6cf35bc2_b.png" data-rawwidth="750" data-rawheight="40" class="origin_image zh-lightbox-thumb" width="750" data-original="https://pic3.zhimg.com/v2-51e09d36dbbac8b619ea692c6cf35bc2_r.png">
<img src="https://pic1.zhimg.com/v2-cce1e09a6885d75c94a40850bb0d4de8_b.png" data-rawwidth="750" data-rawheight="40" class="origin_image zh-lightbox-thumb" width="750" data-original="https://pic1.zhimg.com/v2-cce1e09a6885d75c94a40850bb0d4de8_r.png">
<img src="https://pic3.zhimg.com/v2-8861069409c7e36c26a8d71854a25406_b.png" data-rawwidth="750" data-rawheight="40" class="origin_image zh-lightbox-thumb" width="750" data-original="https://pic3.zhimg.com/v2-8861069409c7e36c26a8d71854a25406_r.png">
GDPerformanceView在狀態(tài)欄上方顯示 FPS宝磨,CPU 使用情況弧关,app 和 iOS 版本,并通過 delegate 報告 FPS 和 CPU 使用情況唤锉。
dani-gavrilov/GDPerformanceView-Swift
26.Alamofire
<img src="https://pic3.zhimg.com/v2-25270e282cf01c9601e59c091908dd4a_b.png" data-rawwidth="800" data-rawheight="235" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-25270e282cf01c9601e59c091908dd4a_r.png">
Alamofire 是用 Swift 寫的 HTTP 網(wǎng)絡(luò)庫世囊。
Alamofire/Alamofire - Swift 中 優(yōu)雅的 HTTP 網(wǎng)絡(luò)
27.SwiftyStoreKit作者是Andrea Bizzotto
<img src="https://pic1.zhimg.com/v2-e72bcee117a4230743c5085957cbf89c_b.png" data-rawwidth="800" data-rawheight="266" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic1.zhimg.com/v2-e72bcee117a4230743c5085957cbf89c_r.png">
SwiftyStoreKit 是一個輕量的 app 內(nèi)購框架,支持 iOS 8.0+晒衩,tvOS 9.0+和macOS 10.10+嗤瞎。
Swift 里直觀的日期處理。
29.CryptoSwift作者是Marcin Krzyzanowski
Swift 里加密相關(guān)的幫助函數(shù)實現(xiàn)听系。
krzyzanowskim/CryptoSwift - CryptoSwift 是一個不斷擴充的集合贝奇,包含了標準、安全靠胜、用 Swift 實現(xiàn)的加密算法
30.FSCalendar
<img src="https://pic3.zhimg.com/v2-cbe0a6d8fdf1c2d4766921c3e6aba516_b.png" data-rawwidth="800" data-rawheight="273" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-cbe0a6d8fdf1c2d4766921c3e6aba516_r.png">完全自定義的 iOS 日歷庫掉瞳,兼容 Objective-C 和 Swift毕源。
完全自定義的 iOS 日歷庫,兼容 Objective-C 和 Swift陕习。
<img src="https://pic3.zhimg.com/v2-a12a6c6f82858169e96417db36268cee_b.jpg" data-rawwidth="1000" data-rawheight="295" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic3.zhimg.com/v2-a12a6c6f82858169e96417db36268cee_r.jpg">
<img src="https://pic3.zhimg.com/v2-4ea0c081d715556b13e886843702443e_b.png" data-rawwidth="800" data-rawheight="290" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic3.zhimg.com/v2-4ea0c081d715556b13e886843702443e_r.png">
31.ImageViewer作者是Kristian Angyal
模仿 Twitter 的圖片瀏覽器霎褐。
32.PromiseKit
<img src="https://pic4.zhimg.com/v2-85f7736939dcd200379529b929cf4cc3_b.png" data-rawwidth="800" data-rawheight="141" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic4.zhimg.com/v2-85f7736939dcd200379529b929cf4cc3_r.png">
PromiseKit 是對于任意有 swiftc 的平臺的周到和完整的 promises 實現(xiàn),它有優(yōu)秀的 Objective-C 橋接和賞心悅目的 iOS该镣、macOS冻璃、tvOS 和 watchOS 專業(yè)化。
mxcl/PromiseKit - Swift 和 ObjC 的 Promises
33.Ensembles作者是Drew McCormack
<img src="https://pic3.zhimg.com/v2-414571e294e1b633360713a139279d46_b.png" data-rawwidth="414" data-rawheight="136" class="content_image" width="414">
Ensembles 是一個 Objective-C 框架——也支持 Swift —— 它擴展了Apple的Core Data框架损合,為Mac OS和iOS添加了點對點同步俱饿。多個 SQLite persistent store 可以通過文件同步平臺(如iCloud或Dropbox)耦合在一起。該框架可以容易地擴展以支持能夠在設(shè)備之間移動文件的任何服務(wù)塌忽,包括自定義服務(wù)器拍埠。
這些庫的 TL;DR 列表,供快速查詢:
IGListKit[UICollectionView 框架] -> pod 'IGListKit', '~> 2.0.0
Realm[移動端數(shù)據(jù)庫] -> pod 'RealmSwift’
Moya[抽象網(wǎng)絡(luò)層] -> pod 'Moya', ‘8.0.0’
SwiftyJSON[JSON 解析] -> pod 'SwiftyJSON’
Valet[鑰匙串幫手] -> pod 'Valet’
Firebase Analytics[分析] -> pod 'Firebase/Core’
AsyncDisplayKit[異步 UI SDK] -> pod 'AsyncDisplayKit’
DZNEmptyDataSet[空狀態(tài)模式] -> pod 'DZNEmptyDataSet’
Chameleon[扁平化顏色框架] -> pod 'ChameleonFramework/Swift', :git => 'ViccAlexander/Chameleon'
PermissionScope[iOS 權(quán)限框架] -> pod 'PermissionScope’
FileKit[文件管理] -> pod 'FileKit', '~> 4.0.0’
SwiftyUserDefaults[user defaults 幫手] -> pod 'SwiftyUserDefaults’
Kingfisher[下載圖片] -> pod 'Kingfisher', '~> 3.0’
Hero[自定義試圖控制器過渡動畫] -> pod 'Hero’
Hedwig[發(fā)送 email]
DeviceKit[設(shè)備信息] -> pod 'DeviceKit', '~> 1.0’
Charts[圖表] -> pod 'Charts’
MGSwipeTableCell[可以滑動的 table cells] -> pod 'MGSwipeTableCell’
RandomKit[隨機生成數(shù)字] -> pod 'RandomKit', '~> 3.0.0’
ResponseDetective[調(diào)適網(wǎng)絡(luò)請求] -> pod 'ResponseDetective’
Onboard[用戶指導頁] -> pod 'Onboard’
Quick+Nimble[BDD 測試] -> pod 'Quick’
pod 'Nimble’
Natalie[從 storyboard 生成代碼]
RxSwift[reactive 編程] -> pod 'RxSwift', '~> 3.0’
GDPerformanceView[實時 FPS and CPU 用量] -> pod 'GDPerformanceView-Swift', '~> 1.1.0’
Alamofire[網(wǎng)絡(luò)] -> pod 'Alamofire', '~> 4.3’
SwiftyStoreKit[app 內(nèi)購] -> pod 'SwiftyStoreKit’
Timepiece[date 幫手] -> pod 'Timepiece’
CryptoSwift[加密] -> pod 'CryptoSwift’
FSCalendar[日歷] -> pod 'FSCalendar’
ImageViewer[模仿 Twitter 的圖片查看器] -> pod 'ImageViewer’
PromiseKit[promises] -> pod 'PromiseKit', '~> 4.0’
Ensembles[Core Data 同步] -> pod 'Ensembles’
感謝閱讀土居,這不是你在 Medium 上可以讀到的最短的文章枣购!如果你喜歡這篇文章,點擊下面的 ?? 來把它分享給你的朋友擦耀,這樣更多的人會發(fā)現(xiàn)這些非常棒的庫棉圈。你也可以在 Twitter 上 follow 我,眷蜓,那兒我發(fā)的基本都是 iOS 開發(fā)分瘾。謝謝!
hey吁系,還有一件事德召,如果你已經(jīng)注意到我了,可以看看我現(xiàn)在的一個并不屬于 iOS 編程世界的主要項目:
對科普汽纤,業(yè)余天文學和太空探索感興趣上岗?認識一下Enter Universe(是的,它是直接可以點擊的T唐骸)肴掷。
<img src="https://pic4.zhimg.com/v2-7af79c9e461180334ad0917e6e4a987f_b.jpg" data-rawwidth="1000" data-rawheight="666" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic4.zhimg.com/v2-7af79c9e461180334ad0917e6e4a987f_r.jpg">
感謝閱讀!點贊背传,分享呆瞻,關(guān)注,然后下次再見径玖!
-------------以下為原答案-------------
本文翻譯自Medium痴脾,原作者是Pawe? Bia?ecki,原文
27個iOS開源庫挺狰,讓你的開發(fā)坐上火箭吧
你不會想錯過他們明郭,真的。
我愛開源丰泊。
并且我喜歡開發(fā)者們薯定,把他們寶貴的私人時間用來創(chuàng)造神奇的東西,然后他們會和其他人分享并且不求回報瞳购。開源作者和貢獻者话侄,你們是最帥的。感謝你們一直以來的工作学赛。
所以年堆,因為我是一個分類整理狂,這是我從iOS開源庫中選出的最喜歡的盏浇。這些項目的順序都是隨機的变丧,全部都很酷。
絕大部分庫是支持CocoaPods的绢掰,所以把它們添加到你的Xcode項目中輕而易舉痒蓬。
文章的尾部你會看到一個太長不看的版本——一個簡單的列表,只有標題和到項目的鏈接滴劲。如果你發(fā)現(xiàn)這篇文章是有用的攻晒,把它和你的iOS開發(fā)者兄弟們分享。好東西需要被傳播班挖。
DZNEmptyDataSet
這本應(yīng)該是iOS中一個標準鲁捏、內(nèi)置的解決空table和collection view的方式。默認的如果你的table view是空的萧芙,屏幕就是空的给梅。但這不是你能提供的最好的用戶體驗。
用了這個庫双揪,你只需要遵循一系列協(xié)議破喻,iOS會優(yōu)雅地接管你的collection view并且會正確、好看地顯示給用戶信息盟榴。很明顯曹质,每個iOS項目都應(yīng)該采用。
<img src="https://pic3.zhimg.com/c6bb4ee140c9b3e0beb12c4113c25c96_b.png" data-rawwidth="753" data-rawheight="528" class="origin_image zh-lightbox-thumb" width="753" data-original="https://pic3.zhimg.com/c6bb4ee140c9b3e0beb12c4113c25c96_r.png">
這是完全可自定義的擎场。
CocoaPods:
pod ‘DZNEmptyDataSet’
2. PDTSimpleCalendar
你的app是否需要一個簡單羽德、好看并且有效的日歷組件呢?
現(xiàn)在你有了——PDTSimpleCalendar很有可能是最棒的iOS日歷組件迅办。有很多方式來自定義它宅静,邏輯有效而且好看。
<img src="https://pic2.zhimg.com/88e326d9b6cfb3c59438a9e5a01115cd_b.png" data-rawwidth="612" data-rawheight="564" class="origin_image zh-lightbox-thumb" width="612" data-original="https://pic2.zhimg.com/88e326d9b6cfb3c59438a9e5a01115cd_r.png">
CocoaPods:
pod 'PDTSimpleCalendar'
3. MagicalRecord
他們說站欺,Core Data很簡單姨夹。他們說纤垂,它很好很簡單。哈哈磷账,你是認真的嗎峭沦,蘋果?一頓陳詞濫調(diào)的代碼被添加到每個項目里逃糟,這真的不夠優(yōu)雅和簡單吼鱼。更不用說添加、移除和更新很多實體绰咽,保存上下文菇肃,為不同的環(huán)境創(chuàng)建不同的Core Data棧,等等等等取募。我當然很喜歡Core Data琐谤,但是蘋果真的可以通過一個簡單的好方法來簡化它——MagicalRecord方法。
MagicalRecord的工作就像一個Core Data的包裝玩敏,并且向開發(fā)者隱藏了所有無關(guān)的東西笑跛。如果你曾經(jīng)用過活躍紀錄模式(例如Ruby on Rails),那你已經(jīng)掌握它了聊品。如果你在app里用Core Data的話真的真心推薦這個庫飞蹂。
CocoaPods:
pod 'MagicalRecord'
4. Chameleon
如果你讀到了這一點,你是一個很好的程序員翻屈,而不是一個設(shè)計師陈哑。這就是為你準備的。
<img src="https://pic4.zhimg.com/d6a4b7ff14bd6a80a05ddf529e72f99b_b.png" data-rawwidth="800" data-rawheight="428" class="origin_image zh-lightbox-thumb" width="800" data-original="https://pic4.zhimg.com/d6a4b7ff14bd6a80a05ddf529e72f99b_r.png">
Chameleon是iOS的一個顏色框架伸眶。它用好看惊窖、摩登的扁平化顏色擴展了UIColor。它也給了我們能力來創(chuàng)建調(diào)色板厘贼,里面是我們自己定義的顏色界酒。它可以做很多其他事,探索readme文件嘴秸。如果你想要好看的應(yīng)用程序毁欣,快把這個庫加到你的項目里吧。
Chameleon基礎(chǔ)扁平化顏色
CocoaPods:
pod 'ChameleonFramework'
5. Alamofire
Alamofire是一個用Swift寫的優(yōu)雅的網(wǎng)絡(luò)庫岳掐。你曾經(jīng)用過AFNetworking嗎凭疮?ALamofire是它的弟弟。年輕也更有才華串述,當然啦(AFNetworking是用Objective-C寫的)。
<img src="https://pic4.zhimg.com/8be834a8a26c1a0134de4d986794a963_b.png" data-rawwidth="850" data-rawheight="250" class="origin_image zh-lightbox-thumb" width="850" data-original="https://pic4.zhimg.com/8be834a8a26c1a0134de4d986794a963_r.png">
需要做網(wǎng)絡(luò)相關(guān)比如下載纲酗、上傳被因、獲取JSON等等卿拴?Alamofire是為你準備的。GitHub上8000人的選擇不會錯梨与。
CocoaPods:
pod 'MagicalRecord'
6. TextFieldEffects
你不覺得標準的UITextField有一點無聊嗎堕花?我也是——所以對TextFieldEffects說hello吧!我不會寫太多粥鞋,我只會展示你一些這個庫可以做的例子:
是的缘挽,這些就是簡單的易用的控制器。你甚至可以用storyboard里的IBDesignable呻粹!
不幸的是這個庫不支持CocoaPods(如果你來自未來壕曼,而這在一些時間之前改變了的話,請在Twitter上讓我知道)等浊,但它支持Carthage腮郊。你也可以簡單的從GitHub下載項目,并且把它添加到你的workspace里筹燕。
Carthage:
github "raulriera/TextFieldEffects"
7. GPUImage
你曾經(jīng)創(chuàng)建過一個攝像機app嗎轧飞?如果沒有,看完這個庫你就肯定會的撒踪。
<img src="https://pic1.zhimg.com/d18762cd87f59f22def6123db2d33284_b.png" data-rawwidth="240" data-rawheight="240" class="content_image" width="240">
GPUImage可能性
GPUImage提供我們一個GPU-accelerated攝像頭效果(圖像和視頻都可以)踪少,熊熊燃燒般的速度。App Store里有幾百個app使用這個庫——其中就有我的一個:
<img src="https://pic2.zhimg.com/ce4f586c5503377a682a12430253d381_b.png" data-rawwidth="640" data-rawheight="135" class="origin_image zh-lightbox-thumb" width="640" data-original="https://pic2.zhimg.com/ce4f586c5503377a682a12430253d381_r.png">
我的一個app中用的GPUImage
GitHub上8869個收藏并且還在持續(xù)增加糠涛。
CocoaPods:
pod 'GPUImage'
8. iRate
在App Store獲得更多評價最好的方式是什么援奢?我沒有明確的數(shù)據(jù)來回答這個問題,但如果要我來猜測的話忍捡,我會說只要簡單的詢問用戶就可以了集漾。也許這是一個老套的方式——大部分開發(fā)者現(xiàn)在創(chuàng)建自定義的app內(nèi)置提醒——但如果你沒有時間或者不想所有事都從頭做起切黔,用iRate比不用要好。并且這就是iRate——一個小庫具篇,你包含在你的項目里并且忘記詢問用戶去評價了——iRate會自動替你完成纬霞,在合適的時間里。
CocoaPods:
pod 'iRate'
9. GameCenterManager
喜歡或討厭一個人驱显,在這種情況下管理Game Center非常簡單诗芜,只需要一點我們最著名的反模式的幫助(你的游戲里只有Game Center,對吧埃疫?)
<img src="https://pic2.zhimg.com/72eb2862e5ecb3a88247fc1c8a6776c9_b.png" data-rawwidth="725" data-rawheight="100" class="origin_image zh-lightbox-thumb" width="725" data-original="https://pic2.zhimg.com/72eb2862e5ecb3a88247fc1c8a6776c9_r.png">
誠實地說伏恐,在iOS里香草管理Game Center并不是那么困難,但用這個庫就是簡單和快速栓霜。更好的是好的敵人翠桦。
<img src="https://pic1.zhimg.com/c1d46072731266aa10da0af927670b38_b.png" data-rawwidth="1000" data-rawheight="646" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic1.zhimg.com/c1d46072731266aa10da0af927670b38_r.png">
我的一個游戲里就用了它,真是一個愉悅的體驗胳蛮。
CocoaPods:
pod 'GameCenterManager'
10. PKRevealController 2
這是一個真正的寶石销凑,我最喜歡的iOS控件之一。PKRevealController是一個可滑動的側(cè)邊欄(向左仅炊、向右或者都可以)斗幼,用你的手指來滑動(或者只通過點擊按鈕,但這樣就沒有滑動酷了)抚垄。
<img src="https://pic3.zhimg.com/2e4c6b26ee1db3ed04e65b8d402769ce_b.png" data-rawwidth="722" data-rawheight="410" class="origin_image zh-lightbox-thumb" width="722" data-original="https://pic3.zhimg.com/2e4c6b26ee1db3ed04e65b8d402769ce_r.png">
我使用過一些其它庫蜕窿,提供這種空間,PKRevealController是最好的督勺。設(shè)置起來很簡單渠羞,高度可自定義,手勢識別非常非常好智哀。它可以在iOS SDK中包含作為一個標準空間次询,真的。
CocoaPods:
pod 'PKRevealController'
11. SlackTextViewController
你曾經(jīng)用過Slack iOS app嗎瓷叫?如果你在一個更大的軟件公司工作的話屯吊,很有可能回答是。對于沒有這么回答的人——Slack很堅硬摹菠。Slack的iOS app也是盒卸,特別是對于很好的、自定義的文本輸入控件…就是你現(xiàn)在有的——你的app里可以用的代碼次氨!
自增長文本域蔽介?對的。手勢識別,自動填充虹蓄,多媒體粘貼犀呼?對的。簡單的易用的薇组?對的外臂。你還可能需要什么?
CocoaPods:
pod 'SlackTextViewController'
12. RETableViewManager
RETableViewManager會幫助你動態(tài)創(chuàng)建和管理你的table view律胀,都用代碼宋光。它提供我們預先定義好的cell(布爾型、文本炭菌、日期等等⊥奘蓿——看下面的截圖)菇民,你也可以創(chuàng)建你的自定義視圖尽楔,和默認的一起使用投储。
<img src="https://pic3.zhimg.com/e9769f750681399cae22def5822f24aa_b.png" data-rawwidth="1000" data-rawheight="830" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic3.zhimg.com/e9769f750681399cae22def5822f24aa_r.png">
左側(cè)截圖好老套!
這些你都可以在storybard里做而不需要這個庫的幫忙阔馋,但有的時候代碼比可視化編輯器更簡單玛荞。
CocoaPods:
pod 'RETableViewManager'
13. PermissionScope
有用的庫,通過在詢問用戶之前提示用戶需要系統(tǒng)許可帶來更好的用戶體驗呕寝。高度可接受程度->更多用戶活動使用app->更好的留存->更好的數(shù)據(jù)->更多的下載勋眯。被高度推薦的pod。
<img src="https://pic4.zhimg.com/6032b9a93aa418273ea9867546a5ed9b_b.png" data-rawwidth="374" data-rawheight="666" class="content_image" width="374">
CocoaPods:
pod 'PermissionScope'
14. SVProgressHUD
這個圖片正在被正確的加載下梢,不會等很久也不需要刷新頁面客蹋。這就是SVProgressHUD在你的app里看起來的樣子。如果你需要自定義等待指示孽江,這里就有一個(很有可能就是最好的)讶坯。
CocoaPods:
pod 'SVProgressHUD'
15. FontAwesomeKit
Font Awesome很酷,用這個庫你可以輕松地添加字體到你的項目里岗屏,并且在多種方式里使用它辆琅。
<img src="https://pic3.zhimg.com/3cab09d5e1992f631478f2e4d7a040fa_b.jpg" data-rawwidth="1000" data-rawheight="405" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic3.zhimg.com/3cab09d5e1992f631478f2e4d7a040fa_r.jpg">
CocoaPods:
pod 'FontAwesomeKit'
16. SnapKit
喜歡auto layout?你應(yīng)該这刷!
至少在storyboard里創(chuàng)建的時候婉烟。
用代碼創(chuàng)建constraints是痛苦的,如果沒有幫助的話暇屋,但幸運的是SnapKit在這里似袁,使用它你可以輕松寫你的constraints,聲明方式£夹疲看看吧屋彪。
<img src="https://pic3.zhimg.com/821b2667dc113624343a67b40010090e_b.png" data-rawwidth="728" data-rawheight="197" class="origin_image zh-lightbox-thumb" width="728" data-original="https://pic3.zhimg.com/821b2667dc113624343a67b40010090e_r.png">
CocoaPods:
pod 'SnapKit'
17. MGSwipeTableCell
另一個UI組件,在很多app里都常見绒尊,蘋果應(yīng)該考慮在iOS標準庫里加入類似的東西畜挥。可滑動的table cell,這是這個pod最好的描述婴谱。最好的一個蟹但。
這些只是3個動畫種類,還有很多谭羔。探索readme文件华糖。
CocoaPods:
pod 'MGSwipeTableCell'
18. Quick
Swift里的單元測試,給Swift(好吧瘟裸,要給Objective-C)客叉,和Xcode融為一體。如果你是一個Objective-C粉话告,我會推薦你Specta而不是這個兼搏,但對于Swift Quick很有可能是最好的。
<img src="https://pic4.zhimg.com/bcdb0055f9cad828efe1576b10dc1c7f_b.png" data-rawwidth="1000" data-rawheight="310" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic4.zhimg.com/bcdb0055f9cad828efe1576b10dc1c7f_r.png">
<img src="https://pic1.zhimg.com/08a2cf787b5cba2b1e46b3482070e4e0_b.png" data-rawwidth="1000" data-rawheight="718" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic1.zhimg.com/08a2cf787b5cba2b1e46b3482070e4e0_r.png">
CocoaPods:
pod 'Quick'
19. IAPHelper
app內(nèi)購帶給我們很多陳詞濫調(diào)的代碼沙郭,用這個庫就不需要了佛呻,把最有關(guān)交易金錢的普遍的任務(wù)從iOS用戶到你的(或者你的公司的)錢包簡單包裝起來。
CocoaPods:
pod 'IAPHelper'
20. ReactiveCocoa
好吧病线,這里我們有一個小怪獸精算。
<img src="https://pic4.zhimg.com/9705b92cd460504a70409487d17f081f_b.png" data-rawwidth="624" data-rawheight="132" class="origin_image zh-lightbox-thumb" width="624" data-original="https://pic4.zhimg.com/9705b92cd460504a70409487d17f081f_r.png">
ReactiveCocoa并不是很小宙枷、易用的項目兄淫,就像這個列表里其它項目一樣哈误。ReactiveCocoa帶給我們一種完全不同的編程方式/結(jié)構(gòu),基于值的信號和流惕耕。這是完全的頭腦風暴纺裁,首先你需要忘記你曾經(jīng)學習的來理解它是如何工作的。這不是一個簡單的任務(wù)赡突,但是是有回報的对扶。
這不是一個合適的地方來教你使用ReactiveCocoa,但我會給你一些好的資源惭缰,如果你感興趣的話浪南。
Getting Started with ReactiveCocoaReactiveCocoaReactiveCocoa Tutorial - The Definitive Introduction: Part 1/2CocoaPods:
pod 'ReactiveCocoa'
21. SwiftyJSON
讓Swift里的JSON解析更簡單。
CocoaPods:
pod 'SwiftyJSON'
22. Spring
做動畫更簡單漱受、可鏈和聲明络凿。
<img src="https://pic3.zhimg.com/018cd2013926dc4f2cb9330a4dd251a2_b.jpg" data-rawwidth="1000" data-rawheight="375" class="origin_image zh-lightbox-thumb" width="1000" data-original="https://pic3.zhimg.com/018cd2013926dc4f2cb9330a4dd251a2_r.jpg">
CocoaPods:
pod 'SwiftyJSON'
23. FontBlaster
在app里加載自定義字體更簡單骡送。
CocoaPods:
pod 'FontBlaster'
24. TAPromotee
交叉推銷你的app是最棒的銷售策略之一,你可以在它們中免費實現(xiàn)絮记。用這個庫非常簡單摔踱,你不再能為自己辯解為什么不用它——增加TAPromotee到你的podfile,配置怨愤、然后免費享受更多下載派敷。
<img src="https://pic1.zhimg.com/9645893e4d710d123d3fb505ca14f6f4_b.png" data-rawwidth="375" data-rawheight="667" class="content_image" width="375">
CocoaPods:
pod 'TAPromotee'
25. Concorde
在你的app加載很多JPEG嗎?用Concorde你可以加載地更好看撰洗。有進度的方式篮愉。
CocoaPods:
pod 'Concorde'
26. KeychainAccess
管理鑰匙串權(quán)限的小幫手庫。
<img src="https://pic1.zhimg.com/bef223b5322f96bd500fd5263e2c57b8_b.png" data-rawwidth="563" data-rawheight="999" class="origin_image zh-lightbox-thumb" width="563" data-original="https://pic1.zhimg.com/bef223b5322f96bd500fd5263e2c57b8_r.png">
<img src="https://pic2.zhimg.com/322d9e1533b9702062797249c90df655_b.png" data-rawwidth="563" data-rawheight="1000" class="origin_image zh-lightbox-thumb" width="563" data-original="https://pic2.zhimg.com/322d9e1533b9702062797249c90df655_r.png">
<img src="https://pic1.zhimg.com/9d213c3d221d3dc699ba0987daecb010_b.png" data-rawwidth="563" data-rawheight="1000" class="origin_image zh-lightbox-thumb" width="563" data-original="https://pic1.zhimg.com/9d213c3d221d3dc699ba0987daecb010_r.png">
CocoaPods:
pod 'KeychainAccess'
27. iOS-charts
最后但重要的——iOS圖表庫差导!很簡單和有效试躏,我不會在這兒寫太多——滑動到下面去看在你的app用它可以干嘛。
是的设褐,所有東西都是可用的颠蕴,作為一個可放進去(好吧,也許是“可寫進去”)的組件助析。
不幸的是目前還沒有CocoaPods支持犀被,所以你需要手動拖動項目到你的Xcode workspace中。
所有庫的太長不看列表貌笨,快速訪問:
1.DZNEmptyDataSet[UI, 空table view解決方案]
2.PDTSimpleCalendar[UI, 可放入日歷組件]
3.MagicalRecord[Core Data幫手實現(xiàn)活動記錄模式]
4.Chameleon[UI, 顏色框架]
5.Alamofire[Swift網(wǎng)絡(luò)]
6.TextFieldEffects[UI, 自定義外觀text fields]
7.GPUImage[快速圖像處理]
8.iRate[獲得用戶評價]
9.GameCenterManager[輕松管理Game Center]
10.PKRevealController[UI, 滑動邊欄]
11.SlackTextViewController[UI, 高度自定義text field]
12.RETableViewManager[用代碼動態(tài)創(chuàng)建table view]
13.PermissionScope[UI, 巧妙的提前問用戶要系統(tǒng)許可]
14.SVProgressHUD[UI, 自定義等待菊花]
15.FontAwesomeKit[輕松地添加酷字體到你的app中]
16.SnapKit[用代碼輕松auto layout]
17.MGSwipeTableCell[UI, 可滑動的table view cells]
18.Quick[Swift 單元測試框架]
19.IAPHelper[app內(nèi)購封裝幫手]
20.ReactiveCocoa[FRP框架]
21.SwiftyJSON[Swift JSON庫]
22.Spring[動畫框架]
23.FontBlaster[輕松在app中加載自定義字體]
24.TAPromotee[在你的app中交叉提示弱判,置入界面]
25.Concorde[下載和解碼進度化JPEGs]
26.KeychainAccess[輕松管理鑰匙串]
27.iOS-charts[漂亮的圖表庫]