主要对当前 GitHub 排名前 100 的项目做一个简单的简介, 方便初学者快速了解到当前 Objective-C 在 GitHub 的情况.
Android 版本的在此: https://github.com/Freelander/Android_Data/blob/master/Android-Librarys-Top-100.md
若有任何疑问可通过微博@李锦发联系我
本文章由 The EST Group 成员 @Aufree 整理而成, 转载请注明出处.
项目名称 | 项目信息 |
---|
- AFNetworking | 作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人都用它取代 ASIHTTPRequest
- GPUImage | 一款强大的图片滤镜工具, 支持自定义滤镜, 可用来实时处理图片和视频流, 作者是 SonoPlot 公司的 CTO, 在很小的时候便开始接触编程, 他在 SO 上面的回答也有很多值得阅读, GPUImage 这个项目从 2012 年开始, 使用 OpenGL 图形程序接口编写, 性能非常好, 现在很多 iOS 程序员都用它来实现 iOS 的模糊效果
- SDWebImage | 作者 Olivier Poitrey 是 Dailymotion 的 CTO, 拥有多个不错的开源项目, 此项目常用于对从 Web 端接受到的图片进行缓存, 是 UIImageView 的扩展, 应用起来比较简单
- RestKit | 主要用于 iOS 上网络通信, 允许与 RESTful Web 服务交互, 常用于处理 API, 解析 JSON, 映射响应对象等操作, 简单易用, 方便你把所有精力都放在对数据的操作上
- ReactiveCocoa | 由 GitHub 工程师们开发的一个应用于 iOS 和 OS X 开发的函数响应式编程新框架, Matt 称其为 "An open source project that exemplifies this brave new era for Objective-C", 也有人说它是 Cocoa 的未来, 具体可看唐巧写的这篇文章
- three20 | 由 Facebook iOS 客户端衍生出的一款 iPhone 框架, 内置许多丰富的功能, 有丰富的界面, 对底层的操作便捷, 为开发者省下了很多时间, 但现在已经停止了更新, 一个 PR 把代码删得干干净净, 不要好奇去点开 Files changed, 我点开后该页面直接卡死, three20 当中的一位作者创建了 Nimbus, 算是 three20 的一个替代品
- MBProgressHUD | 作者 Matej Bukovinski 是一位全栈工程师, UI/UX 设计师, 此项目是一款提示框第三方库, 帮助开发者快速应用到项目中)
- MagicalRecord | 作者是 Coursera 的 iOS 工程师, 该项目创作灵感来自于 Ruby on Rails 的 Active Record, 主要为方便操作 CoreData 而生, 帮助清除 CoreData 引用的代码, 协助方便 CoreData 的工作
- FMDB | 一个对 SQLite 进行封装的库, 使用起来方便, 简单
- Mantle | 作者是 GitHub 的员工, 文档写的很清楚: Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application, 主要用来将 JSON 数据模型化为 Model 对象, 唱吧在前段时间也改用 Mantle 了.
- FlatUIKit | 收集了很多扁平化 UI 的 iOS 组件, 方便使用
- ASIHTTPRequest | 一个轻量级的 iOS 网络通信类库, 基于 CFNetwork 框架开发, 但现在已经停止更新, 多数开发者改用 AFNetworking 替代)
- FastImageCache | Path 公司出品的 iOS 库, 作者 Mallory Paine 是苹果前员工, 此类库适用于在滚动时快速显示图像, 高速持久是其最大的特点
- Masonry | 一个轻量级的布局框架, 同时支持 iOS 和 Mac OS X, 语法优雅, 帮助开发者快速适配不同分辨率的 iOS 设备
- Shimmer | Facebook 推出的一款具有闪烁效果的第三方控件, 供它旗下一款名为 Paper 的应用使用, 安装使用整个过程都十分简单
- SVProgressHUD | 又一款轻量级的 iOS 第三方控件, 用于显示任务加载时的动画, 非常轻便, 容易使用
- Slate | 一款窗口管理应用程序, 但在两年前就已经停止更新了
- JSONKit | 主要用于解析 JSON, 适用于 iOS6 以下环境, 自从 iOS5 开始 Apple 官方给出了 NSJSONSerialization API, 自此大家都用官方的了
- Nimbus | 作者 Jeff 曾为 Facebook, Google 做过不少好东西, 也是 three20 的成员之一, three20 停更后, 他创造出这个框架来代替 three20, 文档齐全
- CocoaLumberjack | 这是 Mac 和 iOS 的一款强大的日志框架, 配置简单, 多线程, 提供更高级的 log 功能, 可用于代替默认的 NSLog 语句
- Facebook SDK for iOS | Facebook 官方的 iOS SDK, 方便开发者集成 Facebook 的一些功能到自己的 iOS APP 里面
- AsyncDisplayKit | Facebook 开源的一款 iOS UI 框架, Paper 用的就是该框架, 另外框架还用到了 Facebook 早期开源 Pop 动画引擎
- Alcatraz | Alcatraz 是一款管理 Xcode 插件、模版以及颜色配置的工具, 可以集成到 Xcode 的图形界面中, 安装删除都是几条命令的事, 很方便, 支持自己开发插件并上传
- ViewDeck | 一款开源的 iOS 活动面板组件, 还原 Path 2.0 的侧滑效果, 作者因为时间关系在两年前停止对其更新
- JSQMessagesViewController | 优雅的 iOS 消息类库, 常用于聊天应用中, 可定制性高
- FLEX | 这是 Flipboard 官方发布的一组专门用于 iOS 开发的应用内调试工具, 开发者无需将其连接到 LLDB/Xcode 或其他远程调试服务器,支持直接在 App 中运行
- Xctool | 是 Facebook 开源的一个命令行工具,用来替代苹果的 XcodeBuild 工具, 极大的方便了 iOS 的构建和测试, 输出错误信息也比较友好, 受到许多 iOS 开发者的称赞, 经常与其搭配使用的还有 OCUnit, Travis CI, OCLint 等测试工具
- OpenEmu | 超强的游戏模拟器, 做游戏开发必备, 官网做得也很不错
- iCarousel | 作者是英国 Charcoal Design 公司的创始人, 开源领域的贡献颇为卓著, 这个项目就是其中之一, 这是一款可以在 iOS 上实现旋转木马视图切换效果的第三方控件, 并提供多种切换效果
- RESideMenu | 作者 Roman Efimov 是雅虎的 iOS 工程师, 这个项目实现了 iOS 上的菜单侧滑效果, 创意来源于 Dribbble, 该项目支持 iOS8 321 PNChart | 作者周楷雯是 90 后, 秒视的创始人, 该项目是一个带动画效果的图表控件, 简约易用, 受到不少开发者喜爱 31.2PonyDebugger | 由 Square 公司推出的一款优秀的 iOS 应用网络调试工具, 用户可以实时看到应用程序的网络请求, 也可以对 iOS 应用程序的核心数据栈进行远程调试
- JVFloatLabeledTextField | 作者是 Thumb Labs 的联合创始人, JVFloatLabeledTextField 是 UITextField 的子类, 主要实现输入框标签浮动效果, 创作灵感来自 Dribbble, 已出现多个移植版本
- SWTableViewCell | UITableViewCell 的子类, 实现了左右滑动显示信息视图并调出按钮
- AwesomeMenu | 作者是一位中国人, 该项目主要是使用 CoreAnimation 还原了 Path menu 的动画效果
- Reachability | Reachablity 是用于检测 iOS 设备网络环境的库
- VVDocumenter-Xcode | 作者是王巍国内著名的 iOS 开发者, 人称喵神, 目前在日本 LINE 公司工作, 该项目帮助开发者轻松的生成注释文档, 节省了不少工作量, 赞
- The Physical Web | 由 Chrome 团队主导的一个项目, 意在用 URL 连接世界, 方便用户接受数据, 目前尚处在实验阶段
- NewsBlur | 作者独自一个人 Samuel Clay 做出来的一款名为 NewsBlur 的新闻阅读器, 很多人都称其为 Google Reader 的替代品, 这是它的源码
- Cocos2D-SpriteBuilder | 一个可用于在 iOS, Mac 和 Android 上制作 2D 游戏或其它图形/交互应用的框架, 之前的项目名称为 Cocos Swift, 目前该项目在 GitHub 上更新较为频繁
- TTTAttributedLabel | UILabel 的替代品, 使 iOS 上的 Label 功能更加丰富, 可支持链接植入等功能
- CocoaAsyncSocket | 一个功能强大、简单易用的异步 socket 通讯类库, 支持 TCP 和 UDP 协议, 可用于 Mac 和 iOS 设备上, 作者 Robbie Hanson 是 Deusty 的首席软件工程师
- TapkuLibrary | 作者是 Devin Ross, 这是在 iOS 上一款功能强大的 UI 效果类库, 可以实现多种酷炫的效果, 目前仍在更新中
- Canvas | 无需编码实现牛逼的动画效果的库, 连设计师都可以快速上手
- SocketRocket | Square 公司开源的一个 WebSocket 客户端, 稳定并且易用, 做实时应用常会用到, 受广大开发者喜爱
- ECSlidingViewController | 一个视图控制器容器, 将子视图处理成两层, 通过滑动来处理层的切换, 创作灵感来自 Facebook 和 Path的 App, 作者是 Cleveland 的员工
- Json Framework | 用于解析 JSON 数据的一个框架, 但是在 iOS5 以上版本大多数人都选择使用 NSJSONSerialization 来解析 JSON, 该项目现在在 GitHub 上也几乎没怎么更新了
- Tweaks | Facebook 开源的一款工具, 旨在帮助 iOS 开发者更快的迭代应用, 方便用户动态的调整参数, 是的, Paper 这个项目也用到了
- realm-cocoa | Realm-Cocoa 是 Realm 公司推出一款移动端数据库, 可以运行在手机、平板和可穿戴设备之上, 其目标是取代 CoreData 和 SQLite 数据库
- BlocksKit | 一个开源的与 Cocoa 紧密集合的基础性框架
- Appirater | 一款用于提醒用户给你的 App 打分的工具
- KIF | Square 出品的一个开源的用户界面测试框架, 极大的简化了 iOS 开发者的 UI 测试流程
- SlackTextViewController | Slack 推出的一款具有文字输入框高度自适应, 自动输入, 复制单元格内容等功能的解决方案
- JazzHands | IFTTT 开源的一个简单易用的关键帧基础动画框架, 可通过手势、scroll views, KVO, ReactiveCocoa 等方式来控制动画
- Bolts-iOS | Bolts 是一个 Parse 和 Facebook 在内部使用的底层库, 方便移动开发
- Spectacle | 一款易用的 OS X 窗口分屏操作快捷键工具, 这是其源代码
- nui | 方便样式化 iOS 应用中的 UI 元素, 可在短时间内样式化整个应用, 类 CSS 原理
- Induction | Induction 是一款用于理解数据关系的管理工具, 这是其程序代码
- JSONModel | 一个能迅速解析服务器返回的 Json 数据的库, 方便数据的类型转换
- DTCoreText | 一个开源的 iOS 富文本组件, 它可以解析 HTML 与 CSS 并最终用 CoreText 绘制出来, 通常用于在一些需要显示富文本的场景下代替低性能的 UIWebView
- Popping | 基于 Facebook Pop 引擎的 iOS 动画库, 集合了很多动画效果
- TSMessages | 一个用来弹出显示警告和通知的轻量级库, 样式丰富, 简单易用
- KVOController | 一个简单安全的 KVO(Key-value Observing, 键-值 观察)工具, 提供简单方便、线程安全的API, Facebook 的开源项目之一
- MWPhotoBrowser | 一款简单的 iOS 照片浏览控件
- MMDrawerController | 一个轻量级, 易于使用的侧边抽屉导航 iOS 控件
- QuickDialog | 用于快速创建复杂的 iOS 表单, 自定义了 UITableViewCell, TableView 的样式
- SVPullToRefresh | 一款只需一行代码便可集成上拉刷新和下拉加载的组件
- cheddar-ios | Cheddar 是一款简单易用的日程管理软件, 这是其早期版本的开源代码, 该项目已停止维护
- XVim | 一款在 Xcode 上实现了 Vim 功能的插件
- EGOTableViewPullRefresh | 一款提供下拉刷新的控件, 最后更新时间是一年前
- iOS-boilerplate | iOS 应用程序的基础模板, 使用该模板可以省掉许多项目初始编码的工作, 内置非常多丰富的功能, 现已经停止维护
- JASidePanels | 一个 UIViewController 容器, 灵感来自 Facebook 和 Path 2.0 应用的菜单, 实现了左右侧滑的操作
- FormatterKit | 收集了很多构思优秀的 NSFormatter 子类
- MSDynamicsDrawerViewController | 实现了具有动态弹性效果的抽屉式侧边导航栏, 效果丰富, 可定制性强
- idev-recipes | iDevRecipes 博客的代码, 演示如何实现一些有趣的控件, 该项目在两年前(2013)停止了更新
- XMPPFramework | 一个基于 RFC-3920 实现, 支持多线程和线程保护, 同时通用于所有的 iOS 和 Mac OS 开发设备的通信框架.
- MacGap1 | 一款可以将 HTML/CSS/JS 网络应用打包成原生 Mac App 的工具
- FXBlurView | iOS 模糊背景类库, 可以方便的根据底层显示的状态生成模糊效果
- iOS7-Sampler | 整合演示了多个具有 iOS7 新特性的的项目, 提供了非常多的例子参考
- PromiseKit | 提供强大的 iOS 开发异步功能, 是 Promises 的实现, 受到广大开发者的追捧
- Origami | 此为 Facebook 推出的 Quartz Composer 的一个开源插件, 由其设计团队花费了 9 个月打造而成, 目的是为方便设计师快速构建原型, 以零代码完成复杂动画的合成和测试, 堪称神器
- NSLogger | 一款强大的日志分析工具, 具有大窗口查看 Log, 自定义日志等级等功能
- KSImageNamed-Xcode | 一款对 UIImage 的 imageNamed 提供自动补全功能的插件, 非常方便
- PureLayout | 一个简单却强大的 AutoLayout API 库, 兼容了 Objective-C 和 Swift, 扩展了 UIView/NSView, NSArray, 和 NSLayoutConstraint
- AppleDoc | 一款 Objective-C 文档生成工具, 生成的文档风格保持与 Apple 官方的一致, 极大的方便了 Xcode 识别自己写的 API 文档, 安装也是十分的简单
- iTerm2 | iTerm2 被不少程序员称赞为 Mac 下最好用的终端, 这是其源代码, 配合 oh-my-zsh 使用效果更佳
- Kiwi | 一个行为驱动开发测试框架, 适用于 iOS 平台, 旨在为开发者提供一个简单配置便可使用的 BDD 库
- terminal-notifier | 一款命令行工具, 用来给 Mac OS X 用户发送通知
- MacDown | Mac OS X 下的一款开源的 Markdown 编辑器, 创意来自与 Mou, 使用 brew cask 即可完成安装
- TwUI | Twitter 开源的一个支持硬件加速的 Mac 的 UI 框架, 最后一次的更新时间是在 3 年前(2012)
- PaperFold for iOS | 实现了类似折纸效果的视图切换, 可从不同方向进行切换, 该项目已经许久未更新
- Reader | 一款开源的 iOS PDF 阅读器, 附带书签, 列纲要等功能
- WebViewJavascriptBridge | 一个方便使用 Objective-C 与 JavaScript 进行通信的第三方库, 支持消息发送, 接收, 消息处理器的注册与调用以及设置消息处理的回调
- iOS8-Sampler | iOSX-Sampler 系列之一, 整合演示了多个具有 iOS8 新特性的的项目, 提供了非常多的例子参考
- CocoaHTTPServer | 一个用于 Mac OS X 或 iOS 应用的轻量级、可嵌入的HTTP 服务器框架, 方便开发者在应用中嵌入一个 HTTP 服务器
- Kod | Mac OS X 上一款专为程序员打造的编辑器, 这是其开源代码, 可惜的是作者在 2011 年停止了维护
- TPKeyboardAvoiding | 下拉键盘在 iOS 移动文本字段的通用解决方案, 能够自动处理键盘弹出后出现遮挡到文本输入框的问题
- MKNetworkKit | 一个轻量级网络请求框架, 完全基于 ARC, 仅有两个类, 具有自主操作多个网络请求, 更加准确的显示网络活动指标等优点
- PKRevealController | 一个 iOS 平台上的视图控制器集合, 通过展现多个视图控制器来进行控制器之间的切换. 设置简单, 高度灵活
- AQGridView | 一个命令行工具, 通过项目里的
.xcdatamodel
文件, 可以为每个 entity 生成两个类, 方便 CoreData 的使用