主要對當前 GitHub 排名前 100 的項目做一個簡單的簡介, 方便初學者快速了解到當前 Objective-C 在 GitHub 的情況.
GitHub 地址:https://github.com/Aufree/trip-to-iOS/blob/master/Top-100.md
若有任何疑問可通過微博@李錦發聯系我
項目名稱 |
項目信息 |
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 的使用