主要对当前 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 的使用 |