33款主流 iOS開發(fā)開源框架

摘要:iOS 開發(fā)者福利,本文為廣大iOS開發(fā)者準(zhǔn)備了33 款主宰 2017 iOS 開發(fā)的開源庫,已經(jīng)有十幾萬小伙伴關(guān)注了,提升你在 2017 年的開發(fā)。開始燃燒吧。

你好,iOS 開發(fā)者們!我的名字是 Pawel,是一名 iOS 獨(dú)立開發(fā)者,也是Enter Universe的作者。

大概在兩年前,我發(fā)布了提升開發(fā)的 27 個(gè) iOS 開源庫。這篇文章是我的一個(gè)最佳紀(jì)錄(用戶好評(píng)數(shù)):

因?yàn)橛?5.5萬人關(guān)注過這個(gè)話題,為了幫大家找到最好的 iOS 開源庫,我又要發(fā)文了。

查看我的 GitHub資料可以看到,距離上次發(fā)文,我又發(fā)現(xiàn)了180多個(gè)新的已加星標(biāo)的庫,所以現(xiàn)在是更新我的內(nèi)容的絕佳時(shí)機(jī)。

按需排列 33 個(gè)庫,提升你在 2017 年的開發(fā)。開始燃燒吧。

IGListKit

由 Instagram 開發(fā)人員制作,IGListKit 是用于構(gòu)建快速靈活列表的數(shù)據(jù)驅(qū)動(dòng)型的 UICollectionView 框架。此外,它可以幫助你在應(yīng)用程序中避免大量使用視圖控制器的情況。可查看Ray Wenderlich上的關(guān)于在你的項(xiàng)目中實(shí)現(xiàn)該庫的教程,或者從Rodrigo Cavalcante中看看關(guān)于將現(xiàn)有的 UITableView 遷移到 IGListCollectionView 的方法。

2. Realm

Realm是一款移動(dòng)數(shù)據(jù)庫,可直接運(yùn)行在手機(jī)、平板電腦和可穿戴設(shè)備中,它不僅適用于 iOS。如果你想嘗試與 Core Data 不同的東西,可以試試使用 Realm 。許多人說,它是一種現(xiàn)代化的、高效率的用于原生蘋果解決方案的替代物。

3. Moya

Moya 是你的應(yīng)用程序所缺少的網(wǎng)絡(luò)層。你不用思考將網(wǎng)絡(luò)請(qǐng)求放到哪里(以及如何放),Moya 會(huì)幫你處理這些問題。

4. SwiftyJSON

Swift 中的 JSON 解析之王。

將下面內(nèi)容:

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)

iflet?userName?=?json[0]["user"]["name"].string?{

//?Now?you?got?your?value

}

可選封裝會(huì)自動(dòng)為你完成。

5. Valet

Valet 可以幫助你實(shí)現(xiàn)將數(shù)據(jù)安全地存儲(chǔ)在 iOS 或 OS X Keychain 中,而無需了解任何 Keychain 相關(guān)的工作原理。它支持在單個(gè)設(shè)備上的多個(gè)應(yīng)用程序(同一開發(fā)者)之間共享數(shù)據(jù),并在具有 iCloud 的設(shè)備上的實(shí)現(xiàn)跨設(shè)備的數(shù)據(jù)共享。它還支持 Touch ID 。

6. Firebase Analytics

它(由 Google 出品)可能是 iOS 上最好的免費(fèi)分析解決方案。包括跟蹤應(yīng)用程序使用量、用戶活躍度,以及事件;設(shè)置用戶屬性;創(chuàng)建自定義受眾;和一些其他功能。

7. AsyncDisplayKit

Facebook 為他們的 app Paper創(chuàng)造了這個(gè)異步 UI SDK。如果你想讓你的 app 總是每秒用 60 幀的速度來渲染,一定要看看這個(gè)庫。 這兒有一篇來自 Buffer 團(tuán)隊(duì)的故事。

8. DZNEmptyDataSet

通常用戶安裝一個(gè) APP 后,會(huì)看到一個(gè)空的 UITableView 。DZNEmptyDataSet 可以通過提供默認(rèn)的 Empty Data Set Pattern 的實(shí)現(xiàn)來回避這個(gè)問題。

9. Chameleon

Chameleon 是一個(gè)輕量卻功能強(qiáng)大的 iOS 顏色框架軟件。它基于的理念是:軟件應(yīng)用程序應(yīng)該可以不費(fèi)力氣且同時(shí)保持多個(gè)漂亮的界面。

使用 Chameleon ,你不再需要調(diào)配 RGB 值,不用浪費(fèi)時(shí)間去找你的 APP 合適的顏色組合,也不用擔(dān)心你 APP 的文字是否能在不同背景色上可讀。

10. PermissionScope

PermissionScope 是一個(gè)用于智能請(qǐng)求用戶權(quán)限的 Swift 框架。 它不僅包含一個(gè)簡單的用戶界面來請(qǐng)求權(quán)限,還包含一個(gè)統(tǒng)一的許可 API ,可以告訴你任何指定的系統(tǒng)權(quán)限的狀態(tài)或輕松地對(duì)它們發(fā)起請(qǐng)求。

11. FileKit

FileKit 是一個(gè) Swift 框架,提供簡單而富有表現(xiàn)力的文件管理。點(diǎn)此查看使用示例

12. SwiftyUserDefaults

SwiftyUserDefaults 讓 user defaults 用起來很愉悅,通過結(jié)合極具表現(xiàn)力的 Swifty API 和靜態(tài)輸入的優(yōu)勢(shì)。在一個(gè)地方定義鍵,輕松地使用值類型,并免費(fèi)獲得額外的安全性和方便的編譯時(shí)檢查。

Kingfisher 是一款輕量級(jí)的純 Swift 庫,用于從 Web 上異步下載和緩存圖像。

特性

異步圖像下載和緩存

基于 URLSession 的網(wǎng)絡(luò)。提供基本圖像處理器和濾鏡。

用于內(nèi)存和磁盤的多層緩存。

可取消下載和任務(wù)處理以提高性能。

組件獨(dú)立。可按需分別使用下載器或緩存系統(tǒng)。

預(yù)先獲取圖像并在必要時(shí)將其從緩存中顯示出來。

包含 UIImageView、NSImage和UIButton擴(kuò)展,可直接從 URL 設(shè)置圖像。

設(shè)置圖像時(shí)可內(nèi)置過渡動(dòng)畫。

可擴(kuò)展的圖像處理和圖像格式支持。

14. Hero

Hero 是構(gòu)建 iOS 視圖控制器過渡動(dòng)畫的庫。它在 UIKit 繁瑣的過渡動(dòng)畫 API 之上提供了一個(gè)層,使得自定義過渡動(dòng)畫對(duì)于開發(fā)人員來說是一個(gè)輕松的任務(wù)。

15. Hedwig

Hedwig 是一個(gè) Swift 包,提供一組高級(jí) API,可以讓你輕松地發(fā)送電子郵件到 SMTP 服務(wù)器。如果你打算在下一個(gè)神奇的 Swift 服務(wù)器應(yīng)用里發(fā)送電子郵件,Hedwig 可能是一個(gè)不錯(cuò)的選擇。

特性

支持通過普通、SSL 或 TLS(STARTTLS)端口連接到所有的 SMTP 服務(wù)器。

支持使用 PLAIN、CRAM-MD5、LOGIN 或 XOAUTH2 進(jìn)行認(rèn)證。

支持使用 HTML 正文和附件發(fā)送電子郵件。

支持自定義驗(yàn)證方法和郵件標(biāo)題,以跟蹤你的郵件活動(dòng)。

支持郵件按序發(fā)送,甚至可以同時(shí)發(fā)送郵件。

支持 Swift Package Manager。

完善的測(cè)試和文檔。

16. DeviceKit

DeviceKit 是 UIDevice 的值類型替換。可輕松獲取設(shè)備的信息和電池電量。

特性

設(shè)備識(shí)別

設(shè)備系列檢測(cè)

設(shè)備組檢測(cè)

模擬器檢測(cè)

電池狀態(tài)

電池電量

Equatable

17. Charts

漂亮的曲線圖、餅狀圖、柱狀圖、散點(diǎn)圖、氣泡圖、雷達(dá)圖,更多的圖形都在 charts 庫里。

18. MGSwipeTableCell

一個(gè)易于使用的 UITableViewCell 子類,可展示多種過渡方式的可滑動(dòng)按鈕。

19. RandomKit

簡單易用的隨機(jī)數(shù)據(jù)生成器。

20. ResponseDetective

ResponseDetective 是一個(gè)非侵入式框架,在調(diào)試時(shí)用于攔截應(yīng)用程序和服務(wù)器之間的任何的傳出請(qǐng)求和傳入響應(yīng),以進(jìn)行調(diào)試。

21. Onboard

僅需添加幾行代碼,即可輕松創(chuàng)建一個(gè)美麗和吸引人的載入體驗(yàn)。

22. Quick + Nimble

Quick 是一款專門用于 iOS 應(yīng)用開發(fā)的開源行為驅(qū)動(dòng)開發(fā)(BDD)測(cè)試框架,支持 Swift 和 Objective-C ,一般配合匹配框架 Nimble 使用。

23. Natalie

Natalie 生成基于 Storyboard 文件的 Swift 代碼,使 Storyboard 和 Segue 更容易使用。生成的文件減少了用字符串作為 Segue 或 Storyboard 的標(biāo)識(shí)符的情況。

24. RxSwift

對(duì) Swift 的響應(yīng)式編程感興趣? 那不妨試試 RxSwift 。

示例

指定 GitHub 存儲(chǔ)庫的搜索 ...

let?searchResults?=?searchBar.rx.text.orEmpty

.throttle(0.3,?scheduler:?MainScheduler.instance)

.distinctUntilChanged()

.flatMapLatest?{?query?->?Observablein

ifquery.isEmpty?{

return.just([])

}

returnsearchGitHub(query)

.catchErrorJustReturn([])

}

.observeOn(MainScheduler.instance)

... 然后將結(jié)果綁定到你的視圖表

searchResults

.bind(to:?tableView.rx.items(cellIdentifier:"Cell"))?{

(index,?repository:?Repository,?cell)in

cell.textLabel?.text?=?repository.name

cell.detailTextLabel?.text?=?repository.url

}

.disposed(by:?disposeBag)

25. GDPerformanceView

GDPerformanceView 可以在狀態(tài)欄上方顯示 FPS、CPU 使用情況以及應(yīng)用版本和 iOS 版本,并通過 delegate 報(bào)告 FPS 和 CPU 使用情況。

26. Alamofire

Alamofire 是一個(gè)用 Swift 編寫的 HTTP 網(wǎng)絡(luò)庫。

特性

鏈?zhǔn)降恼?qǐng)求/響應(yīng)方法

URL / JSON / plist 參數(shù)編碼

上傳類型支持:文件(File )、數(shù)據(jù)(Data )、流(Stream)以及 MultipartFormData

支持文件下載,下載支持?jǐn)帱c(diǎn)續(xù)傳

支持使用 NSURLCredential進(jìn) 行身份驗(yàn)證

支持 HTTP 響應(yīng)驗(yàn)證

上傳和下載進(jìn)度可隨進(jìn)程關(guān)閉

支持 cURL 命令輸出

支持動(dòng)態(tài)修改和重試請(qǐng)求

支持 TLS Certificate 和 Public Key Pinning

網(wǎng)絡(luò)可達(dá)性

文檔完善

27. SwiftyStoreKit

SwiftyStoreKit 是一個(gè)輕量級(jí)的 App 內(nèi)購框架,支持 iOS 8.0+、tvOS 9.0+ 和 macOS 10.10+ 。

28. Timepiece

直觀的 Swift 日期處理庫。

特征:

直觀: Timepiece 提供了一系列輔助函數(shù),使得日期處理更簡單。

準(zhǔn)確: 精確依賴于 Foundation API , Timepiece 可以在無需深入了解的前提下輔助計(jì)算日期。

小: Timepiece 只有4個(gè)文件,你可以很簡單的閱讀其內(nèi)部結(jié)構(gòu)。

29. CryptoSwift

用 Swift 實(shí)現(xiàn)的且用于 Swift 中的加密相關(guān)函數(shù)和輔助結(jié)構(gòu)。

特點(diǎn)

易用

對(duì)于字符串和數(shù)據(jù)方便擴(kuò)展

支持增量更新(流式更新)

支持 iOS、 macOS、AppleTV、watchOS、Linux 等系統(tǒng)

30. FSCalendar

完全可定制的 iOS 日歷庫,兼容 Objective-C 和 Swift 。

31. ImageViewer

一個(gè)類似 Twitter 的圖像查看器。

32. PromiseKit

PromiseKit 是對(duì)任意有 swiftc 的平臺(tái)的恰當(dāng)而又完整的 promises 實(shí)現(xiàn),它具有卓越的 Objective-C 橋接和專門為 iOS、macOS、tvOS 以及 watchOS 的特殊化處理。

33. Ensembles

Ensemble 是一個(gè) Objective-C 框架,支持 Swift ,擴(kuò)展了 Apple 的 Core Data 框架,為 Mac OS 和 iOS 添加了點(diǎn)對(duì)點(diǎn)的同步功能。多個(gè) SQLite 持久存儲(chǔ)可以通過像 iCloud 或 Dropbox 這樣的文件同步平臺(tái)整合在一起。該框架易于擴(kuò)展,可支持任何需要在不同設(shè)備之間傳輸文件的服務(wù),包括定制服務(wù)器。

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,241評(píng)論 4 61
  • 顧晨在機(jī)場看到Ada的時(shí)候并沒有太驚訝,相處了四年,他也大概知道她的性格,不達(dá)目的不會(huì)罷休。 Ada的年齡和余恩一...
    小白柳閱讀 209評(píng)論 0 1
  • 1 真是尷尬! 吳巖和卓小凡同時(shí)在一家餐廳偶遇了,還是眼神硬碰硬的正面交鋒,簡直躲無可躲! 丸子跟我描述當(dāng)時(shí)的“慘...
    蜜思琳的世界閱讀 357評(píng)論 0 0
  • 從 iOS 10發(fā)布以來,讀到兩篇關(guān)于交互的文章(附上鏈接《從Smartisan OS 3.1的產(chǎn)品設(shè)計(jì)談:交互設(shè)...
    愛最上閱讀 2,584評(píng)論 2 0