GitHub 上 iOS 開源庫 Top 100

發表於2016-03-30

GitHub Top 100 簡介

主要對當前 GitHub 排名前 100 的專案做一個簡單的簡介, 方便初學者快速瞭解到當前 Objective-C 在 GitHub 的情況.

Android 版本的在此: https://github.com/Freelander/Android_Data/blob/master/Android-Librarys-Top-100.md

若有任何疑問可通過微博@李錦發聯絡我

本文章由 The EST Group 成員 @Aufree 整理而成, 轉載請註明出處.

專案名稱 專案資訊
1. AFNetworking 作者是 NSHipster 的博主, iOS 開發界的大神級人物, 畢業於卡內基·梅隆大學, 開源了許多牛逼的專案, 這個便是其中之一, AFNetworking 採用 NSURLConnection + NSOperation, 主要方便與服務端 API 進行資料交換, 操作簡單, 功能強大, 現在許多人都用它取代 ASIHTTPRequest
2. GPUImage 一款強大的圖片濾鏡工具, 支援自定義濾鏡, 可用來實時處理圖片和視訊流, 作者是 SonoPlot 公司的 CTO, 在很小的時候便開始接觸程式設計, 他在 SO 上面的回答也有很多值得閱讀, GPUImage 這個專案從 2012 年開始, 使用 OpenGL 圖形程式介面編寫, 效能非常好, 現在很多 iOS 程式設計師都用它來實現 iOS 的模糊效果
3. SDWebImage 作者 Olivier Poitrey 是 Dailymotion 的 CTO, 擁有多個不錯的開源專案, 此專案常用於對從 Web 端接受到的圖片進行快取, 是 UIImageView 的擴充套件, 應用起來比較簡單
4. RestKit 主要用於 iOS 上網路通訊, 允許與 RESTful Web 服務互動, 常用於處理 API, 解析 JSON, 對映響應物件等操作, 簡單易用, 方便你把所有精力都放在對資料的操作上
5. ReactiveCocoa 由 GitHub 工程師們開發的一個應用於 iOS 和 OS X 開發的函式響應式程式設計新框架, Matt 稱其為 “An open source project that exemplifies this brave new era for Objective-C”, 也有人說它是 Cocoa 的未來, 具體可看唐巧寫的這篇文章
6. three20 由 Facebook iOS 客戶端衍生出的一款 iPhone 框架, 內建許多豐富的功能, 有豐富的介面, 對底層的操作便捷, 為開發者省下了很多時間, 但現在已經停止了更新, 一個 PR 把程式碼刪得乾乾淨淨, 不要好奇去點開 Files changed, 我點開後該頁面直接卡死, three20 當中的一位作者建立了 Nimbus, 算是 three20 的一個替代品
7. MBProgressHUD 作者 Matej Bukovinski 是一位全棧工程師, UI/UX 設計師, 此專案是一款提示框第三方庫, 幫助開發者快速應用到專案中)
8. MagicalRecord 作者是 Coursera 的 iOS 工程師, 該專案創作靈感來自於 Ruby on Rails 的 Active Record, 主要為方便操作 CoreData 而生, 幫助清除 CoreData 引用的程式碼, 協助方便 CoreData 的工作
9. FMDB 一個對 SQLite 進行封裝的庫, 使用起來方便, 簡單
10. Mantle 作者是 GitHub 的員工, 文件寫的很清楚: Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application, 主要用來將 JSON 資料模型化為 Model 物件, 唱吧在前段時間也改用 Mantle 了.
11. FlatUIKit 收集了很多扁平化 UI 的 iOS 元件, 方便使用
12. ASIHTTPRequest 一個輕量級的 iOS 網路通訊類庫, 基於 CFNetwork 框架開發, 但現在已經停止更新, 多數開發者改用 AFNetworking 替代)
13. FastImageCache Path 公司出品的 iOS 庫, 作者 Mallory Paine 是蘋果前員工, 此類庫適用於在滾動時快速顯示影象, 高速持久是其最大的特點
14. Masonry 一個輕量級的佈局框架, 同時支援 iOS 和 Mac OS X, 語法優雅, 幫助開發者快速適配不同解析度的 iOS 裝置
15. Shimmer Facebook 推出的一款具有閃爍效果的第三方控制元件, 供它旗下一款名為 Paper 的應用使用, 安裝使用整個過程都十分簡單
16. SVProgressHUD 又一款輕量級的 iOS 第三方控制元件, 用於顯示任務載入時的動畫, 非常輕便, 容易使用
17. Slate 一款視窗管理應用程式, 但在兩年前就已經停止更新了
18. JSONKit 主要用於解析 JSON, 適用於 iOS6 以下環境, 自從 iOS5 開始 Apple 官方給出了 NSJSONSerialization API, 自此大家都用官方的了
19. Nimbus 作者 Jeff 曾為 Facebook, Google 做過不少好東西, 也是 three20 的成員之一, three20 停更後, 他創造出這個框架來代替 three20, 文件齊全
20. CocoaLumberjack 這是 Mac 和 iOS 的一款強大的日誌框架, 配置簡單, 多執行緒, 提供更高階的 log 功能, 可用於代替預設的 NSLog 語句
21. Facebook SDK for iOS Facebook 官方的 iOS SDK, 方便開發者整合 Facebook 的一些功能到自己的 iOS APP 裡面
22. AsyncDisplayKit Facebook 開源的一款 iOS UI 框架, Paper 用的就是該框架, 另外框架還用到了 Facebook 早期開源 Pop 動畫引擎
23. Alcatraz Alcatraz 是一款管理 Xcode 外掛、模版以及顏色配置的工具, 可以整合到 Xcode 的圖形介面中, 安裝刪除都是幾條命令的事, 很方便, 支援自己開發外掛並上傳
24. ViewDeck 一款開源的 iOS 活動皮膚元件, 還原 Path 2.0 的側滑效果, 作者因為時間關係在兩年前停止對其更新
25. JSQMessagesViewController 優雅的 iOS 訊息類庫, 常用於聊天應用中, 可定製性高
26. FLEX 這是 Flipboard 官方釋出的一組專門用於 iOS 開發的應用內除錯工具, 開發者無需將其連線到 LLDB/Xcode 或其他遠端除錯伺服器,支援直接在 App 中執行
27. Xctool 是 Facebook 開源的一個命令列工具,用來替代蘋果的 XcodeBuild 工具, 極大的方便了 iOS 的構建和測試, 輸出錯誤資訊也比較友好, 受到許多 iOS 開發者的稱讚, 經常與其搭配使用的還有 OCUnit, Travis CI, OCLint 等測試工具
28. OpenEmu 超強的遊戲模擬器, 做遊戲開發必備, 官網做得也很不錯
29. iCarousel 作者是英國 Charcoal Design 公司的創始人, 開源領域的貢獻頗為卓著, 這個專案就是其中之一, 這是一款可以在 iOS 上實現旋轉木馬檢視切換效果的第三方控制元件, 並提供多種切換效果
30. RESideMenu 作者 Roman Efimov 是雅虎的 iOS 工程師, 這個專案實現了 iOS 上的選單側滑效果, 創意來源於 Dribbble, 該專案支援 iOS8
321 PNChart 作者周楷雯是 90 後, 秒視的創始人, 該專案是一個帶動畫效果的圖表控制元件, 簡約易用, 受到不少開發者喜愛
31.2PonyDebugger 由 Square 公司推出的一款優秀的 iOS 應用網路除錯工具, 使用者可以實時看到應用程式的網路請求, 也可以對 iOS 應用程式的核心資料棧進行遠端除錯
33. JVFloatLabeledTextField 作者是 Thumb Labs 的聯合創始人, JVFloatLabeledTextField 是 UITextField 的子類, 主要實現輸入框標籤浮動效果, 創作靈感來自 Dribbble, 已出現多個移植版本
34. SWTableViewCell UITableViewCell 的子類, 實現了左右滑動顯示資訊檢視並調出按鈕
35. AwesomeMenu 作者是一位中國人, 該專案主要是使用 CoreAnimation 還原了 Path menu 的動畫效果
36. Reachability Reachablity 是用於檢測 iOS 裝置網路環境的庫
37. VVDocumenter-Xcode 作者是王巍國內著名的 iOS 開發者, 人稱喵神, 目前在日本 LINE 公司工作, 該專案幫助開發者輕鬆的生成註釋文件, 節省了不少工作量, 贊
38. The Physical Web 由 Chrome 團隊主導的一個專案, 意在用 URL 連線世界, 方便使用者接受資料, 目前尚處在實驗階段
39. NewsBlur 作者獨自一個人 Samuel Clay 做出來的一款名為 NewsBlur 的新聞閱讀器, 很多人都稱其為 Google Reader 的替代品, 這是它的原始碼
40. Cocos2D-SpriteBuilder 一個可用於在 iOS, Mac 和 Android 上製作 2D 遊戲或其它圖形/互動應用的框架, 之前的專案名稱為 Cocos Swift, 目前該專案在 GitHub 上更新較為頻繁
41. TTTAttributedLabel UILabel 的替代品, 使 iOS 上的 Label 功能更加豐富, 可支援連結植入等功能
42. CocoaAsyncSocket 一個功能強大、簡單易用的非同步 socket 通訊類庫, 支援 TCP 和 UDP 協議, 可用於 Mac 和 iOS 裝置上, 作者 Robbie Hanson 是 Deusty 的首席軟體工程師
43. TapkuLibrary 作者是 Devin Ross, 這是在 iOS 上一款功能強大的 UI 效果類庫, 可以實現多種酷炫的效果, 目前仍在更新中
44. Canvas 無需編碼實現牛逼的動畫效果的庫, 連設計師都可以快速上手
45. SocketRocket Square 公司開源的一個 WebSocket 客戶端, 穩定並且易用, 做實時應用常會用到, 受廣大開發者喜愛
46. ECSlidingViewController 一個檢視控制器容器, 將子檢視處理成兩層, 通過滑動來處理層的切換, 創作靈感來自 Facebook 和 Path的 App, 作者是 Cleveland 的員工
47. Json Framework 用於解析 JSON 資料的一個框架, 但是在 iOS5 以上版本大多數人都選擇使用 NSJSONSerialization 來解析 JSON, 該專案現在在 GitHub 上也幾乎沒怎麼更新了
48. Tweaks Facebook 開源的一款工具, 旨在幫助 iOS 開發者更快的迭代應用, 方便使用者動態的調整引數, 是的, Paper 這個專案也用到了
49. realm-cocoa Realm-Cocoa 是 Realm 公司推出一款移動端資料庫, 可以執行在手機、平板和可穿戴裝置之上, 其目標是取代 CoreData 和 SQLite 資料庫
50. BlocksKit 一個開源的與 Cocoa 緊密集合的基礎性框架
51. Appirater 一款用於提醒使用者給你的 App 打分的工具
52. KIF Square 出品的一個開源的使用者介面測試框架, 極大的簡化了 iOS 開發者的 UI 測試流程
53. SlackTextViewController Slack 推出的一款具有文字輸入框高度自適應, 自動輸入, 複製單元格內容等功能的解決方案
54. JazzHands IFTTT 開源的一個簡單易用的關鍵幀基礎動畫框架, 可通過手勢、scroll views, KVO, ReactiveCocoa 等方式來控制動畫
55. Bolts-iOS Bolts 是一個 Parse 和 Facebook 在內部使用的底層庫, 方便移動開發
56. Spectacle 一款易用的 OS X 視窗分屏操作快捷鍵工具, 這是其原始碼
57. nui 方便樣式化 iOS 應用中的 UI 元素, 可在短時間內樣式化整個應用, 類 CSS 原理
58. Induction Induction 是一款用於理解資料關係的管理工具, 這是其程式程式碼
59. JSONModel 一個能迅速解析伺服器返回的 Json 資料的庫, 方便資料的型別轉換
60. DTCoreText 一個開源的 iOS 富文字元件, 它可以解析 HTML 與 CSS 並最終用 CoreText 繪製出來, 通常用於在一些需要顯示富文字的場景下代替低效能的 UIWebView
61. Popping 基於 Facebook Pop 引擎的 iOS 動畫庫, 集合了很多動畫效果
62. TSMessages 一個用來彈出顯示警告和通知的輕量級庫, 樣式豐富, 簡單易用
63. KVOController 一個簡單安全的 KVO(Key-value Observing, 鍵-值 觀察)工具, 提供簡單方便、執行緒安全的API, Facebook 的開源專案之一
64. MWPhotoBrowser 一款簡單的 iOS 照片瀏覽控制元件
65. MMDrawerController 一個輕量級, 易於使用的側邊抽屜導航 iOS 控制元件
66. QuickDialog 用於快速建立複雜的 iOS 表單, 自定義了 UITableViewCell, TableView 的樣式
67. SVPullToRefresh 一款只需一行程式碼便可整合上拉重新整理和下拉載入的元件
68. cheddar-ios Cheddar 是一款簡單易用的日程管理軟體, 這是其早期版本的開原始碼, 該專案已停止維護
69. XVim 一款在 Xcode 上實現了 Vim 功能的外掛
70. EGOTableViewPullRefresh 一款提供下拉重新整理的控制元件, 最後更新時間是一年前
71. iOS-boilerplate iOS 應用程式的基礎模板, 使用該模板可以省掉許多專案初始編碼的工作, 內建非常多豐富的功能, 現已經停止維護
72. JASidePanels 一個 UIViewController 容器, 靈感來自 Facebook 和 Path 2.0 應用的選單, 實現了左右側滑的操作
73. FormatterKit 收集了很多構思優秀的 NSFormatter 子類
74. MSDynamicsDrawerViewController 實現了具有動態彈性效果的抽屜式側邊導航欄, 效果豐富, 可定製性強
75. idev-recipes iDevRecipes 部落格的程式碼, 演示如何實現一些有趣的控制元件, 該專案在兩年前(2013)停止了更新
76. XMPPFramework 一個基於 RFC-3920 實現, 支援多執行緒和執行緒保護, 同時通用於所有的 iOS 和 Mac OS 開發裝置的通訊框架.
77. MacGap1 一款可以將 HTML/CSS/JS 網路應用打包成原生 Mac App 的工具
78. FXBlurView iOS 模糊背景類庫, 可以方便的根據底層顯示的狀態生成模糊效果
79. iOS7-Sampler 整合演示了多個具有 iOS7 新特性的的專案, 提供了非常多的例子參考
80. PromiseKit 提供強大的 iOS 開發非同步功能, 是 Promises 的實現, 受到廣大開發者的追捧
81. Origami 此為 Facebook 推出的 Quartz Composer 的一個開源外掛, 由其設計團隊花費了 9 個月打造而成, 目的是為方便設計師快速構建原型, 以零程式碼完成複雜動畫的合成和測試, 堪稱神器
82. NSLogger 一款強大的日誌分析工具, 具有大視窗檢視 Log, 自定義日誌等級等功能
83. KSImageNamed-Xcode 一款對 UIImage 的 imageNamed 提供自動補全功能的外掛, 非常方便
84. PureLayout 一個簡單卻強大的 AutoLayout API 庫, 相容了 Objective-C 和 Swift, 擴充套件了 UIView/NSView, NSArray, 和 NSLayoutConstraint
85. AppleDoc 一款 Objective-C 文件生成工具, 生成的文件風格保持與 Apple 官方的一致, 極大的方便了 Xcode 識別自己寫的 API 文件, 安裝也是十分的簡單
86. iTerm2 iTerm2 被不少程式設計師稱讚為 Mac 下最好用的終端, 這是其原始碼, 配合 oh-my-zsh 使用效果更佳
87. Kiwi 一個行為驅動開發測試框架, 適用於 iOS 平臺, 旨在為開發者提供一個簡單配置便可使用的 BDD 庫
88. terminal-notifier 一款命令列工具, 用來給 Mac OS X 使用者傳送通知
89. MacDown Mac OS X 下的一款開源的 Markdown 編輯器, 創意來自與 Mou, 使用 brew cask 即可完成安裝
90. TwUI Twitter 開源的一個支援硬體加速的 Mac 的 UI 框架, 最後一次的更新時間是在 3 年前(2012)
91. PaperFold for iOS 實現了類似摺紙效果的檢視切換, 可從不同方向進行切換, 該專案已經許久未更新
92. Reader 一款開源的 iOS PDF 閱讀器, 附帶書籤, 列綱要等功能
93. WebViewJavascriptBridge 一個方便使用 Objective-C 與 JavaScript 進行通訊的第三方庫, 支援訊息傳送, 接收, 訊息處理器的註冊與呼叫以及設定訊息處理的回撥
94. iOS8-Sampler iOSX-Sampler 系列之一, 整合演示了多個具有 iOS8 新特性的的專案, 提供了非常多的例子參考
95. CocoaHTTPServer 一個用於 Mac OS X 或 iOS 應用的輕量級、可嵌入的HTTP 伺服器框架, 方便開發者在應用中嵌入一個 HTTP 伺服器
96. Kod Mac OS X 上一款專為程式設計師打造的編輯器, 這是其開原始碼, 可惜的是作者在 2011 年停止了維護
97. TPKeyboardAvoiding 下拉鍵盤在 iOS 移動文字欄位的通用解決方案, 能夠自動處理鍵盤彈出後出現遮擋到文字輸入框的問題
98. MKNetworkKit 一個輕量級網路請求框架, 完全基於 ARC, 僅有兩個類, 具有自主操作多個網路請求, 更加準確的顯示網路活動指標等優點
99. PKRevealController 一個 iOS 平臺上的檢視控制器集合, 通過展現多個檢視控制器來進行控制器之間的切換. 設定簡單, 高度靈活
00. AQGridView 一個命令列工具, 通過專案裡的 .xcdatamodel 檔案, 可以為每個 entity 生成兩個類, 方便 CoreData 的使用

相關文章