文/Pawe? Bia?ecki譯/Mantra原文:https://medium.com/app-coder-io/33-ios-open-source-libraries-that-will-dominate-2017-4762cf3ce449#.cdqp06lb5
文末倉庫資源地址匯總
 IGListKit 是由 Instagram 的開發(fā)者編寫的數(shù)據(jù)驅(qū)動 UICollectionView 框架,它可以構(gòu)建快速靈活的列表。同時,它能幫你避免在應(yīng)用程序里使用大量冗余的 View Controllers。
IGListKit 是由 Instagram 的開發(fā)者編寫的數(shù)據(jù)驅(qū)動 UICollectionView 框架,它可以構(gòu)建快速靈活的列表。同時,它能幫你避免在應(yīng)用程序里使用大量冗余的 View Controllers。GitHub:https://github.com/Instagram/IGListKit
 Realm 是一個可以直接在手機,平板電腦和可穿戴設(shè)備上運行的移動數(shù)據(jù)庫,不僅只限 iOS。如果你想嘗試一些與 Core Data 不同的數(shù)據(jù)庫,可以試一下 Realm。 很多人說這是一個完美的作品,已經(jīng)能夠完全地替代蘋果原生的解決方案。
Realm 是一個可以直接在手機,平板電腦和可穿戴設(shè)備上運行的移動數(shù)據(jù)庫,不僅只限 iOS。如果你想嘗試一些與 Core Data 不同的數(shù)據(jù)庫,可以試一下 Realm。 很多人說這是一個完美的作品,已經(jīng)能夠完全地替代蘋果原生的解決方案。GitHub:https://github.com/realm/realm-cocoa
 Moya 是一個非常適合作為你應(yīng)用程序網(wǎng)絡(luò)層的第三方庫。你不用再思考在何時何地去寫網(wǎng)絡(luò)請求了,Moya 統(tǒng)統(tǒng)幫你搞定。
Moya 是一個非常適合作為你應(yīng)用程序網(wǎng)絡(luò)層的第三方庫。你不用再思考在何時何地去寫網(wǎng)絡(luò)請求了,Moya 統(tǒng)統(tǒng)幫你搞定。 GitHub:https://github.com/Moya/Moya
GitHub:https://github.com/Moya/Moya在 Swift 中,用來解析 JSON 的絕對王牌。
轉(zhuǎn)換這個:
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}轉(zhuǎn)換為:
let json = JSON(data: dataFromNetworking)if let userName = json[0]["user"]["name"].string { // Now you got your value}GitHub:https://github.com/SwiftyJSON/SwiftyJSON
5. Valet by Square
Valet 可以讓你安全地將數(shù)據(jù)存儲在 iOS 或 OS X Keychain 中,并且無需知道 Keychain 是如何工作的。它支持在單個設(shè)備上的多個應(yīng)用程序(同一個開發(fā)人員)之間共享數(shù)據(jù),也可以在具有 iCloud 的不同設(shè)備之間的同一款應(yīng)用程序中共享數(shù)據(jù)。Touch ID 之間也絕對沒有問題!
GitHub:https://github.com/square/Valet
6. Firebase Analytics by Google Developers
 由 Google 開發(fā),可能是 iOS 上最好用的免費的統(tǒng)計分析解決方案。跟蹤應(yīng)用使用情況、用戶參與度和活動、設(shè)置用戶屬性、創(chuàng)建自定義受眾群體以及更多。
由 Google 開發(fā),可能是 iOS 上最好用的免費的統(tǒng)計分析解決方案。跟蹤應(yīng)用使用情況、用戶參與度和活動、設(shè)置用戶屬性、創(chuàng)建自定義受眾群體以及更多。GitHub:https://firebase.google.com/docs/analytics/
7. AsyncDisplayKit
 Facebook 為他們的應(yīng)用程序 Paper 創(chuàng)建了這個異步 UI SDK。如果你有興趣以 60 幀/s 的速度渲染你的應(yīng)用程序的話,絕對要看看這個庫。這里你可以先讀一個 story。
Facebook 為他們的應(yīng)用程序 Paper 創(chuàng)建了這個異步 UI SDK。如果你有興趣以 60 幀/s 的速度渲染你的應(yīng)用程序的話,絕對要看看這個庫。這里你可以先讀一個 story。GitHub:https://github.com/facebook/AsyncDisplayKit
8. DZNEmptyDataSet
用戶安裝了你的應(yīng)用程序,卻看到了一個空白的 UITableView。DZNEmptyDataSet 可以通過提供空數(shù)據(jù)集默認(rèn)模式來幫助你避免這種空白情況。
 GitHub:https://github.com/dzenbot/DZNEmptyDataSet
GitHub:https://github.com/dzenbot/DZNEmptyDataSet9. Chameleon by Vicc Alexander
 Chameleon 是 iOS 中一個輕量級,但功能強大的顏色框架。他的 idea 建立在,軟件應(yīng)用程序也應(yīng)該輕松地實現(xiàn)其漂亮的界面。
Chameleon 是 iOS 中一個輕量級,但功能強大的顏色框架。他的 idea 建立在,軟件應(yīng)用程序也應(yīng)該輕松地實現(xiàn)其漂亮的界面。使用 Chameleon,你可以節(jié)省為應(yīng)用程序配色而不斷修改 RGB 值所浪費的時間,并且再也不用擔(dān)心你的文本是否可以在應(yīng)用程序的各種背景顏色可讀的問題。

 GitHub:https://github.com/ViccAlexander/Chameleon
GitHub:https://github.com/ViccAlexander/Chameleon10. PermissionScope by Nick O'Neill
 ermissionScope 是一個 Swift 框架,可以智能地向用戶請求權(quán)限。它不僅擁有一個簡單的 UI 來請求權(quán)限,還包括一個可以告訴你任何給定的系統(tǒng)權(quán)限的狀態(tài)或輕松請求權(quán)限的統(tǒng)一 API。
ermissionScope 是一個 Swift 框架,可以智能地向用戶請求權(quán)限。它不僅擁有一個簡單的 UI 來請求權(quán)限,還包括一個可以告訴你任何給定的系統(tǒng)權(quán)限的狀態(tài)或輕松請求權(quán)限的統(tǒng)一 API。 GitHub:https://github.com/nickoneill/PermissionScope
GitHub:https://github.com/nickoneill/PermissionScope11. FileKit by Nikolai Vazquez
 FileKit 是一個可以提供簡單和表達(dá)性的文件管理 Swift 框架。可以看下使用示例。
FileKit 是一個可以提供簡單和表達(dá)性的文件管理 Swift 框架。可以看下使用示例。GitHub:https://github.com/nvzqz/FileKit
12. SwiftyUserDefaults by Radek Pietruszewski
SwiftyUserDefaults 使用戶默認(rèn)將表達(dá)式 Swifty API 與靜態(tài)類型的益處相結(jié)合。你可以輕松地定義 key,輕松使用類型值,更多的安全性和更方便的編譯檢查,并且這些更優(yōu)質(zhì)服務(wù)全是免費的。
GitHub:https://github.com/radex/SwiftyUserDefaults
13. Kingfisher by 王巍
 Kingfisher 是一個輕量級的正經(jīng) Swift 庫,用于從網(wǎng)絡(luò)上異步下載和緩存圖像。
Kingfisher 是一個輕量級的正經(jīng) Swift 庫,用于從網(wǎng)絡(luò)上異步下載和緩存圖像。GitHub:https://github.com/onevcat/Kingfisher
14. Hero by Luke Zhao
 Hero 是構(gòu)建 iOS View Controller 轉(zhuǎn)換的庫。它在 UIKit 繁瑣的轉(zhuǎn)換 API 之上提供了一個讓自定義轉(zhuǎn)換更容易的層。
Hero 是構(gòu)建 iOS View Controller 轉(zhuǎn)換的庫。它在 UIKit 繁瑣的轉(zhuǎn)換 API 之上提供了一個讓自定義轉(zhuǎn)換更容易的層。GitHub:https://github.com/lkzhao/Hero
15. Hedwig by 王巍
 Hedwig 是一個 Swift 包,提供了一組高級 API,使你能夠輕松地發(fā)送電子郵件到 SMTP 服務(wù)器。如果你打算從你的 Swift 服務(wù)器應(yīng)用程序發(fā)送電子郵件,Hedwig 可能是一個非常贊的選擇。
Hedwig 是一個 Swift 包,提供了一組高級 API,使你能夠輕松地發(fā)送電子郵件到 SMTP 服務(wù)器。如果你打算從你的 Swift 服務(wù)器應(yīng)用程序發(fā)送電子郵件,Hedwig 可能是一個非常贊的選擇。GitHub:https://github.com/onevcat/Hedwig
16. DeviceKit by Dennis Weissmann
DeviceKit 是 UIDevice 的值類型替換。輕松獲取設(shè)備信息和電池電量。
GitHub:https://github.com/dennisweissmann/DeviceKit
17. Charts
 美麗的線條、餅狀圖、條狀圖、散點圖等,就在 Charts library。
美麗的線條、餅狀圖、條狀圖、散點圖等,就在 Charts library。 GitHub:https://github.com/danielgindi/Charts
GitHub:https://github.com/danielgindi/Charts18. MGSwipeTableCell
一個易于使用的 UITableViewCell 子類,可以實現(xiàn)具有各種轉(zhuǎn)換的可滑動按鈕。


 GitHub:https://github.com/MortimerGoro/MGSwipeTableCell
GitHub:https://github.com/MortimerGoro/MGSwipeTableCell19. RandomKit by Nikolai Vazquez
 簡單易用的隨機數(shù)生成工具。
簡單易用的隨機數(shù)生成工具。https://littlebitesofcocoa.com/285-generating-random-data-with-randomkitGitHub:https://github.com/nvzqz/RandomKit
20. ResponseDetective
ResponseDetective 是一個非插入式框架,用于攔截應(yīng)用程序和服務(wù)器之間的任何用于調(diào)試目的的傳出請求和傳入響應(yīng)。
https://www.netguru.co/blog/response-detective-ios-open-sourceGitHub:https://github.com/netguru/ResponseDetective
21. Onboard
 簡單幾行代碼,即可輕松創(chuàng)建引人入勝的開屏體驗。
簡單幾行代碼,即可輕松創(chuàng)建引人入勝的開屏體驗。GitHub:https://github.com/mamaral/Onboard
22. Quick + Nimble by もどかしい
 Quick 是 Swift 和 Objective-C 的 BDD 測試框架,由 Nimble 這個匹配器框架配合使用。
Quick 是 Swift 和 Objective-C 的 BDD 測試框架,由 Nimble 這個匹配器框架配合使用。GitHub:https://github.com/Quick/QuickGitHub:https://github.com/Quick/Nimble
23. Natalie by Marcin Krzyzanowski
Natalie 生成基于 storyboard 文件的,能夠使Storyboards 和 segues 更容易工作的 Swift 代碼。生成的文件減少 Strings 作為 Segues 或 Storyboard 標(biāo)識符的使用。
GitHub:https://github.com/krzyzanowskim/Natali
24. RxSwift by ReactiveExtensions*
 對 Swift 中的反應(yīng)式編程感興趣?這里是 RxSwift。
對 Swift 中的反應(yīng)式編程感興趣?這里是 RxSwift。GitHub:https://github.com/ReactiveX/RxSwift
25. GDPerformanceView by Daniil Gavrilov



 GDPerformanceView 在狀態(tài)欄上方顯示 FPS,CPU 使用情況,應(yīng)用程序和 iOS 版本,并通過委托報告 FPS 和 CPU 使用情況。
GDPerformanceView 在狀態(tài)欄上方顯示 FPS,CPU 使用情況,應(yīng)用程序和 iOS 版本,并通過委托報告 FPS 和 CPU 使用情況。GitHub:https://github.com/dani-gavrilov/GDPerformanceView-Swift
26. Alamofire
 Alamofire 是一個用 Swift 編寫的 HTTP 網(wǎng)絡(luò)庫。
Alamofire 是一個用 Swift 編寫的 HTTP 網(wǎng)絡(luò)庫。https://www.appcoda.com/alamofire-beginner-guide/GitHub:https://github.com/Alamofire/Alamofire
27. SwiftyStoreKit by Andrea Bizzotto
 SwiftyStoreKit 是一個為 iOS 8.0+、tvOS 9.0+和macOS 10.10+ 而開發(fā)的輕量級的 In App Purchases 框架。
SwiftyStoreKit 是一個為 iOS 8.0+、tvOS 9.0+和macOS 10.10+ 而開發(fā)的輕量級的 In App Purchases 框架。GitHub:https://github.com/bizz84/SwiftyStoreKit
28. Timepiece by AnyType
在 Swift 中直觀的日期處理。
GitHub:https://github.com/naoty/Timepiece
29. CryptoSwift by Marcin Krzyzanowski
Swift 中實現(xiàn)的加密相關(guān)的函數(shù)和零件。
GitHub:https://github.com/krzyzanowskim/CryptoSwift
30. FSCalendar
 完全可定制的 iOS 日歷庫,可兼容 Objective-C 和 Swift。
完全可定制的 iOS 日歷庫,可兼容 Objective-C 和 Swift。GitHub:https://github.com/WenchaoD/FSCalendar
31. ImageViewer by Kristian Angyal
高仿 Twitter ImageViewer
GitHub:https://github.com/MailOnline/ImageViewer
32. PRomiseKit
 PromiseKit 可以保證帶有 swiftc 的平臺細(xì)致完整的實現(xiàn),在 iOS,macOS,tvOS 和 watchOS,有非常靠譜的 Objective-C 支撐。
PromiseKit 可以保證帶有 swiftc 的平臺細(xì)致完整的實現(xiàn),在 iOS,macOS,tvOS 和 watchOS,有非常靠譜的 Objective-C 支撐。GitHub:https://github.com/mxcl/PromiseKit
33. Ensembles by Drew McCormack
 Ensembles 是一個 Objective-C 框架 ,支持 Swift,它擴(kuò)展了 Apple 的 Core Data 框架,為 Mac OS 和 iOS 添加了點對點同步。多樣的 SQLite 持久穩(wěn)固存儲,可以通過文件同步平臺(如 iCloud 或 Dropbox)鏈接在一起。該框架可以輕松地擴(kuò)展,用來支持能夠在設(shè)備之間同步文件的任何服務(wù),包括 custom servers。
Ensembles 是一個 Objective-C 框架 ,支持 Swift,它擴(kuò)展了 Apple 的 Core Data 框架,為 Mac OS 和 iOS 添加了點對點同步。多樣的 SQLite 持久穩(wěn)固存儲,可以通過文件同步平臺(如 iCloud 或 Dropbox)鏈接在一起。該框架可以輕松地擴(kuò)展,用來支持能夠在設(shè)備之間同步文件的任何服務(wù),包括 custom servers。GitHub:https://github.com/drewmccormack/ensembles
TL;DR list of libraries for quick access:
1、IGListKit[UICollectionView framework] ->pod 'IGListKit', '~> 2.0.0'2、Realm [mobile database] ->pod 'RealmSwift'3、Moya [encapsulated network layer] ->pod 'Moya', '8.0.0'4、SwiftyJSON [JSON parsing] ->pod 'SwiftyJSON'5、Valet [Keychain helper] ->pod 'Valet'6、Firebase Analytics [analytics] ->pod 'Firebase/Core'7、AsyncDisplayKit [asynchronous UI SDK] ->pod 'AsyncDisplayKit'8、DZNEmptyDataSet[empty state pattern] ->pod 'DZNEmptyDataSet'9、Chameleon [flat colors framework] ->pod 'ChameleonFramework/Swift', :git => 'https://github.com/ViccAlexander/Chameleon.git'10、PermissionScope [iOS permissions framework] ->pod 'PermissionScope'11、FileKit [file management] ->pod 'FileKit', '~> 4.0.0'12、SwiftyUserDefaults [user defaults helper] ->pod 'SwiftyUserDefaults'13、Kingfisher [image downloading] ->pod 'Kingfisher', '~> 3.0'14、Hero [custom view controller transitions] ->pod 'Hero'15、Hedwig [email sending]16、DeviceKit [device info] ->pod 'DeviceKit', '~> 1.0'17、Charts [well… charts] ->pod 'Charts'18、MGSwipeTableCell [swipeable table cells] ->pod 'MGSwipeTableCell'19、RandomKit [random numbers generation] ->pod 'RandomKit', '~> 3.0.0'20、ResponseDetective [debug network requests] ->pod 'ResponseDetective'21、Onboard [user onboarding] ->pod 'Onboard'22、Quick +Nimble [BDD testing] ->pod 'Quick' pod 'Nimble'23、Natalie [code generating from storyboard]24、RxSwift [reactive programming] ->pod 'RxSwift', '~> 3.0'25、GDPerformanceView [real time FPS and CPU usage] ->pod 'GDPerformanceView-Swift', '~> 1.1.0'26、Alamofire [networking] ->pod 'Alamofire', '~> 4.3'27、SwiftyStoreKit [In App Purchases] ->pod 'SwiftyStoreKit'28、Timepiece [date helper] ->pod 'Timepiece'29、CryptoSwift [cryptography] ->pod 'CryptoSwift'30、FSCalendar [calendar] ->pod 'FSCalendar'31、ImageViewer [Twitter inspired image viewer] ->pod 'ImageViewer'32、PromiseKit [promises] ->pod 'PromiseKit', '~> 4.0'33、Ensembles [Core Data synchronization] ->pod 'Ensembles'
新聞熱點
疑難解答
圖片精選