近期看到一篇文章,里面收錄了很多不錯的第三方庫,收藏起來,原文如下:

你好,iOS 開發者們!我的名字是 Pawel,是一名 iOS 獨立開發者,也是 Enter Universe 的作者。
大概在兩年前,我發布了 提升開發的 27 個 iOS 開源庫。這篇文章是我的一個最佳紀錄(用戶好評數):

因為有15.5萬人關注過這個話題,為了幫大家找到最好的 iOS 開源庫,我又要發文了。
查看我的 GitHub 資料可以看到,距離上次發文,我又發現了180多個新的已加星標的庫,所以現在是更新我的內容的絕佳時機。
按需排列 33 個庫,提升你在 2017 年的開發。開始燃燒吧。
IGListKit

由 Instagram 開發人員制作,IGListKit 是用于構建快速靈活列表的數據驅動型的 UICollectionView 框架。此外,它可以幫助你在應用程序中避免大量使用視圖控制器的情況。可查看 Ray Wenderlich 上的關于在你的項目中實現該庫的教程,或者從 Rodrigo Cavalcante 中看看關于將現有的 UITableView 遷移到 IGListCollectionView 的方法。
2. Realm

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

Moya 是你的應用程序所缺少的網絡層。你不用思考將網絡請求放到哪里(以及如何放),Moya 會幫你處理這些問題。

4. SwiftyJSON
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}
可選封裝會自動為你完成。
5. Valet
Valet 可以幫助你實現將數據安全地存儲在 iOS 或 OS X Keychain 中,而無需了解任何 Keychain 相關的工作原理。它支持在單個設備上的多個應用程序(同一開發者)之間共享數據,并在具有 iCloud 的設備上的實現跨設備的數據共享。它還支持 Touch ID 。
6. Firebase Analytics

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

Facebook 為他們的 app Paper創造了這個異步 UI SDK。如果你想讓你的 app 總是每秒用 60 幀的速度來渲染,一定要看看這個庫。 這兒有一篇來自 Buffer 團隊的故事。
8. DZNEmptyDataSet
通常用戶安裝一個 APP 后,會看到一個空的 UITableView 。DZNEmptyDataSet 可以通過提供默認的 Empty Data Set Pattern 的實現來回避這個問題。

9. Chameleon

Chameleon 是一個輕量卻功能強大的 iOS 顏色框架軟件。它基于的理念是:軟件應用程序應該可以不費力氣且同時保持多個漂亮的界面。
使用 Chameleon ,你不再需要調配 RGB 值,不用浪費時間去找你的 APP 合適的顏色組合,也不用擔心你 APP 的文字是否能在不同背景色上可讀。


10. PermissionScope

PermissionScope 是一個用于智能請求用戶權限的 Swift 框架。 它不僅包含一個簡單的用戶界面來請求權限,還包含一個統一的許可 API ,可以告訴你任何指定的系統權限的狀態或輕松地對它們發起請求。

11. FileKit

FileKit 是一個 Swift 框架,提供簡單而富有表現力的文件管理。點此查看使用示例
12. SwiftyUserDefaults
SwiftyUserDefaults 讓 user defaults 用起來很愉悅,通過結合極具表現力的 Swifty API 和靜態輸入的優勢。在一個地方定義鍵,輕松地使用值類型,并免費獲得額外的安全性和方便的編譯時檢查。

Kingfisher 是一款輕量級的純 Swift 庫,用于從 Web 上異步下載和緩存圖像。
特性
異步圖像下載和緩存
基于 URLSession 的網絡。提供基本圖像處理器和濾鏡。
用于內存和磁盤的多層緩存。
可取消下載和任務處理以提高性能。
組件獨立。可按需分別使用下載器或緩存系統。
預先獲取圖像并在必要時將其從緩存中顯示出來。
包含 UIImageView、NSImage和UIButton擴展,可直接從 URL 設置圖像。
設置圖像時可內置過渡動畫。
可擴展的圖像處理和圖像格式支持。
14. Hero

Hero 是構建 iOS 視圖控制器過渡動畫的庫。它在 UIKit 繁瑣的過渡動畫 API 之上提供了一個層,使得自定義過渡動畫對于開發人員來說是一個輕松的任務。
15. Hedwig

Hedwig 是一個 Swift 包,提供一組高級 API,可以讓你輕松地發送電子郵件到 SMTP 服務器。如果你打算在下一個神奇的 Swift 服務器應用里發送電子郵件,Hedwig 可能是一個不錯的選擇。
特性
支持通過普通、SSL 或 TLS(STARTTLS)端口連接到所有的 SMTP 服務器。
支持使用 PLAIN、CRAM-MD5、LOGIN 或 XOAUTH2 進行認證。
支持使用 HTML 正文和附件發送電子郵件。
支持自定義驗證方法和郵件標題,以跟蹤你的郵件活動。
支持郵件按序發送,甚至可以同時發送郵件。
支持 Swift Package Manager。
完善的測試和文檔。
16. DeviceKit
DeviceKit 是 UIDevice 的值類型替換。可輕松獲取設備的信息和電池電量。
特性
設備識別
設備系列檢測
設備組檢測
模擬器檢測
電池狀態
電池電量
Equatable
17. Charts

漂亮的曲線圖、餅狀圖、柱狀圖、散點圖、氣泡圖、雷達圖,更多的圖形都在 charts 庫里。

18. MGSwipeTableCell
一個易于使用的 UITableViewCell 子類,可展示多種過渡方式的可滑動按鈕。



19. RandomKit

簡單易用的隨機數據生成器。
20. ResponseDetective

ResponseDetective 是一個非侵入式框架,在調試時用于攔截應用程序和服務器之間的任何的傳出請求和傳入響應,以進行調試。
- Onboard
僅需添加幾行代碼,即可輕松創建一個美麗和吸引人的載入體驗。
1497795010840332.gif
22. Quick + Nimble
1497795032994868.png
Quick 是一款專門用于 iOS 應用開發的開源行為驅動開發(BDD)測試框架,支持 Swift 和 Objective-C ,一般配合匹配框架 Nimble 使用。
23. Natalie
Natalie 生成基于 Storyboard 文件的 Swift 代碼,使 Storyboard 和 Segue 更容易使用。生成的文件減少了用字符串作為 Segue 或 Storyboard 的標識符的情況。
24. RxSwift
1497795087344966.png
對 Swift 的響應式編程感興趣? 那不妨試試 RxSwift 。
示例
指定 GitHub 存儲庫的搜索 ...
let searchResults = searchBar.rx.text.orEmpty .throttle(0.3, scheduler: MainScheduler.instance) .distinctUntilChanged() .flatMapLatest { query -> Observable in if query.isEmpty { return .just([]) } return searchGitHub(query) .catchErrorJustReturn([]) } .observeOn(MainScheduler.instance)
... 然后將結果綁定到你的視圖表
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)
1497795186971254.gif
25. GDPerformanceView
1497795350959083.png
GDPerformanceView 可以在狀態欄上方顯示 FPS、CPU 使用情況以及應用版本和 iOS 版本,并通過 delegate 報告 FPS 和 CPU 使用情況。
26. Alamofire
1497795397860503.png
Alamofire 是一個用 Swift 編寫的 HTTP 網絡庫。
特性
鏈式的請求/響應方法
URL / JSON / plist 參數編碼
上傳類型支持:文件(File )、數據(Data )、流(Stream)以及 MultipartFormData
支持文件下載,下載支持斷點續傳
支持使用 NSURLCredential進 行身份驗證
支持 HTTP 響應驗證
上傳和下載進度可隨進程關閉
支持 cURL 命令輸出
支持動態修改和重試請求
支持 TLS Certificate 和 Public Key Pinning
網絡可達性
文檔完善
27. SwiftyStoreKit

SwiftyStoreKit 是一個輕量級的 App 內購框架,支持 iOS 8.0+、tvOS 9.0+ 和 macOS 10.10+ 。
28. Timepiece
直觀的 Swift 日期處理庫。
特征:
直觀: Timepiece 提供了一系列輔助函數,使得日期處理更簡單。
準確: 精確依賴于 Foundation API , Timepiece 可以在無需深入了解的前提下輔助計算日期。
小: Timepiece 只有4個文件,你可以很簡單的閱讀其內部結構。
29. CryptoSwift
用 Swift 實現的且用于 Swift 中的加密相關函數和輔助結構。
特點
易用
對于字符串和數據方便擴展
支持增量更新(流式更新)
支持 iOS、 macOS、AppleTV、watchOS、Linux 等系統
30. FSCalendar

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


31. ImageViewer
一個類似 Twitter 的圖像查看器。
- PromiseKit
1497795812856352.png
PromiseKit 是對任意有 swiftc 的平臺的恰當而又完整的 promises 實現,它具有卓越的 Objective-C 橋接和專門為 iOS、macOS、tvOS 以及 watchOS 的特殊化處理。
33. Ensembles
1497795917875466.png
Ensemble 是一個 Objective-C 框架,支持 Swift ,擴展了 Apple 的 Core Data 框架,為 Mac OS 和 iOS 添加了點對點的同步功能。多個 SQLite 持久存儲可以通過像 iCloud 或 Dropbox 這樣的文件同步平臺整合在一起。該框架易于擴展,可支持任何需要在不同設備之間傳輸文件的服務,包括定制服務器。
原 文:開源中國社區
作 者: Tocy, 王練, 無若, 總長, 君影文華 譯