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 的使用 |