33 款主宰 2017 iOS 開發的開源庫

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

原文

1497766710512463.png
1497766710512463.png

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

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

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

1497776927775939.png
1497776927775939.png

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

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

1497793869873662.png
1497793869873662.png

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
1497793974865503.png
1497793974865503.png

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

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

9. Chameleon
1497794123837392.png
1497794123837392.png

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

1497794202299621.png
1497794202299621.png

10. PermissionScope
1497794226759776.png
1497794226759776.png

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

11. FileKit
1497794306632713.png
1497794306632713.png

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

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

基于 URLSession 的網絡。提供基本圖像處理器和濾鏡。

用于內存和磁盤的多層緩存。

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

組件獨立。可按需分別使用下載器或緩存系統。

預先獲取圖像并在必要時將其從緩存中顯示出來。

包含 UIImageView、NSImage和UIButton擴展,可直接從 URL 設置圖像。

設置圖像時可內置過渡動畫。

可擴展的圖像處理和圖像格式支持。

14. Hero

1497794425189142.png
1497794425189142.png

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

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

1497794575175703.png
1497794575175703.png

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

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

1497794750214142.png
1497794750214142.png

1497794764954777.png
1497794764954777.png

19. RandomKit
1497794783898627.png
1497794783898627.png

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

ResponseDetective 是一個非侵入式框架,在調試時用于攔截應用程序和服務器之間的任何的傳出請求和傳入響應,以進行調試。

  1. Onboard
    僅需添加幾行代碼,即可輕松創建一個美麗和吸引人的載入體驗。
    1497795010840332.gif
    1497795010840332.gif

    22. Quick + Nimble
    1497795032994868.png
    1497795032994868.png

    Quick 是一款專門用于 iOS 應用開發的開源行為驅動開發(BDD)測試框架,支持 Swift 和 Objective-C ,一般配合匹配框架 Nimble 使用。
    23. Natalie
    Natalie 生成基于 Storyboard 文件的 Swift 代碼,使 Storyboard 和 Segue 更容易使用。生成的文件減少了用字符串作為 Segue 或 Storyboard 的標識符的情況。
    24. RxSwift
    1497795087344966.png
    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
    1497795186971254.gif

    25. GDPerformanceView
    1497795350959083.png
    1497795350959083.png

    GDPerformanceView 可以在狀態欄上方顯示 FPS、CPU 使用情況以及應用版本和 iOS 版本,并通過 delegate 報告 FPS 和 CPU 使用情況。
    26. Alamofire
    1497795397860503.png
    1497795397860503.png

    Alamofire 是一個用 Swift 編寫的 HTTP 網絡庫。
    特性
    鏈式的請求/響應方法

URL / JSON / plist 參數編碼

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

支持文件下載,下載支持斷點續傳

支持使用 NSURLCredential進 行身份驗證

支持 HTTP 響應驗證

上傳和下載進度可隨進程關閉

支持 cURL 命令輸出

支持動態修改和重試請求

支持 TLS Certificate 和 Public Key Pinning

網絡可達性

文檔完善

27. SwiftyStoreKit

1497795476596193.png
1497795476596193.png

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

1497795558653323.png
1497795558653323.png

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

1497795686291690.png
1497795686291690.png

31. ImageViewer
一個類似 Twitter 的圖像查看器。

  1. PromiseKit
    1497795812856352.png
    1497795812856352.png

    PromiseKit 是對任意有 swiftc 的平臺的恰當而又完整的 promises 實現,它具有卓越的 Objective-C 橋接和專門為 iOS、macOS、tvOS 以及 watchOS 的特殊化處理。
    33. Ensembles
    1497795917875466.png
    1497795917875466.png

    Ensemble 是一個 Objective-C 框架,支持 Swift ,擴展了 Apple 的 Core Data 框架,為 Mac OS 和 iOS 添加了點對點的同步功能。多個 SQLite 持久存儲可以通過像 iCloud 或 Dropbox 這樣的文件同步平臺整合在一起。該框架易于擴展,可支持任何需要在不同設備之間傳輸文件的服務,包括定制服務器。
    原 文:開源中國社區
    作 者: Tocy, 王練, 無若, 總長, 君影文華 譯
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容