33 款馳騁 2017 的 iOS 開源庫

文/Pawe? Bia?ecki

譯/Mantra

原文:https://medium.com/app-coder-io/33-ios-open-source-libraries-that-will-dominate-2017-4762cf3ce449#.cdqp06lb5

文末倉庫資源地址匯總

1. IGListKit by Instagram Engineering

IGListKit 是由 Instagram 的開發(fā)者編寫的數(shù)據(jù)驅(qū)動 UICollectionView 框架,它可以構(gòu)建快速靈活的列表。同時,它能幫你避免在應(yīng)用程序里使用大量冗余的 View Controllers。

GitHub:https://github.com/Instagram/IGListKit

2. Realm by realm.io

Realm 是一個可以直接在手機,平板電腦和可穿戴設(shè)備上運行的移動數(shù)據(jù)庫,不僅只限 iOS。如果你想嘗試一些與 Core Data 不同的數(shù)據(jù)庫,可以試一下 Realm。 很多人說這是一個完美的作品,已經(jīng)能夠完全地替代蘋果原生的解決方案。

GitHub:https://github.com/realm/realm-cocoa

3. Moya by Ash Furrow

Moya 是一個非常適合作為你應(yīng)用程序網(wǎng)絡(luò)層的第三方庫。你不用再思考在何時何地去寫網(wǎng)絡(luò)請求了,Moya 統(tǒng)統(tǒng)幫你搞定。

GitHub:https://github.com/Moya/Moya

4. SwiftyJSON by Pinglin Tang

在 Swift 中,用來解析 JSON 的絕對王牌。

轉(zhuǎn)換這個:

ifletstatusesArray =try? JSONSerialization.jsonObject(with: data,options: .allowFragments)as? [[String: Any]],letuser = statusesArray[0]["user"]as? [String: Any],letusername = user["name"]as?String{// Finally we got the username}

轉(zhuǎn)換為:

letjson =JSON(data: dataFromNetworking)ifletuserName = 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)建自定義受眾群體以及更多。

GitHub:https://firebase.google.com/docs/analytics/

7. AsyncDisplayKit

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

9. Chameleon by Vicc Alexander

Chameleon 是 iOS 中一個輕量級,但功能強大的顏色框架。他的 idea 建立在,軟件應(yīng)用程序也應(yīng)該輕松地實現(xiàn)其漂亮的界面。

使用 Chameleon,你可以節(jié)省為應(yīng)用程序配色而不斷修改 RGB 值所浪費的時間,并且再也不用擔(dān)心你的文本是否可以在應(yīng)用程序的各種背景顏色可讀的問題。

GitHub:https://github.com/ViccAlexander/Chameleon

10. PermissionScope by Nick O'Neill

ermissionScope 是一個 Swift 框架,可以智能地向用戶請求權(quán)限。它不僅擁有一個簡單的 UI 來請求權(quán)限,還包括一個可以告訴你任何給定的系統(tǒng)權(quán)限的狀態(tài)或輕松請求權(quán)限的統(tǒng)一 API。

GitHub:https://github.com/nickoneill/PermissionScope

11. FileKit by Nikolai Vazquez

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ò)上異步下載和緩存圖像。

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)換更容易的層。

GitHub:https://github.com/lkzhao/Hero

15. Hedwig by 王巍

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。

GitHub:https://github.com/danielgindi/Charts

18. MGSwipeTableCell

一個易于使用的 UITableViewCell 子類,可以實現(xiàn)具有各種轉(zhuǎn)換的可滑動按鈕。

GitHub:https://github.com/MortimerGoro/MGSwipeTableCell

19. RandomKit by Nikolai Vazquez

簡單易用的隨機數(shù)生成工具。

https://littlebitesofcocoa.com/285-generating-random-data-with-randomkit

GitHub:https://github.com/nvzqz/RandomKit

20. ResponseDetective

ResponseDetective 是一個非插入式框架,用于攔截應(yīng)用程序和服務(wù)器之間的任何用于調(diào)試目的的傳出請求和傳入響應(yīng)。

https://www.netguru.co/blog/response-detective-ios-open-source

GitHub:https://github.com/netguru/ResponseDetective

21. Onboard

簡單幾行代碼,即可輕松創(chuàng)建引人入勝的開屏體驗。

GitHub:https://github.com/mamaral/Onboard

22. Quick + Nimble by もどかしい

Quick 是 Swift 和 Objective-C 的 BDD 測試框架,由 Nimble 這個匹配器框架配合使用。

GitHub:https://github.com/Quick/Quick

GitHub: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。

GitHub:https://github.com/ReactiveX/RxSwift

25. GDPerformanceView by Daniil Gavrilov

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ò)庫。

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 框架。

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。

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 支撐。

GitHub:https://github.com/mxcl/PromiseKit

33. Ensembles by Drew McCormack

Ensembles 是一個 Objective-C 框架 ,支持 Swift,它擴展了 Apple 的 Core Data 框架,為 Mac OS 和 iOS 添加了點對點同步。多樣的 SQLite 持久穩(wěn)固存儲,可以通過文件同步平臺(如 iCloud 或 Dropbox)鏈接在一起。該框架可以輕松地擴展,用來支持能夠在設(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'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容