博客> 整理一下iOS开发优秀的开源框架,可有针对性的去阅读!
整理一下iOS开发优秀的开源框架,可有针对性的去阅读!
2017-05-22 14:40 评论:4 阅读:1287 guofei
ios 优秀开源库 新人必备

前言(兴奋): 各位业界的大牛大神们!你们辛苦了!感谢你们开源出优秀的代码,将我们带上了巨大巨大的肩膀(kēng)。 各位业界的新人们!你们更辛苦!感谢你们一起努(tián)力(kēng)!我不孤独! 对于一个业界新人,无时不刻在想着如何提高自己的水平,我想最简单最有效的方法就是阅读优秀的代码。我坚信!在阅读中自我的开发水平会悄悄地改变,重要的是,要有恒心和定力! 自己在网上搜集了一些GitHub排名靠前的优秀开源框架,并依附了简单的介绍,如果各位看到了某一个能让自己瞬间充了鸡血的内容,立刻行动吧:把这个框架下载到你的电脑,然后阅读它。最起码你需要了解它是什么?它解决了什么?一定要行动哦! 整理

AFNetworking 作者是 NSHipster 的博主, iOS 开发界的大神级人物, 毕业于卡内基·梅隆大学, 开源了许多牛逼的项目, 这个便是其中之一, AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功能强大, 现在许多人都用它取代 ASIHTTPRequest

pod 'AFNetworking', '~> 3.0'

GPUImage 一款强大的图片滤镜工具, 支持自定义滤镜, 可用来实时处理图片和视频流, 作者是 SonoPlot 公司的 CTO, 在很小的时候便开始接触编程, 他在 SO上面的回答也有很多值得阅读, GPUImage 这个项目从 2012 年开始, 使用 OpenGL 图形程序接口编写, 性能非常好, 现在很多 iOS 程序员都用它来实现 iOS 的模糊效果

pod 'GPUImage', :git => 'https://github.com/BradLarson/GPUImage'

SDWebImage 作者 Olivier Poitrey 是 Dailymotion 的 CTO, 拥有多个不错的开源项目, 此项目常用于对从 Web 端接受到的图片进行缓存, 是 UIImageView 的扩展, 应用起来比较简单

pod 'SDWebImage', '~> 3.7.3'

RestKit 主要用于 iOS 上网络通信, 允许与 RESTful Web 服务交互, 常用于处理 API, 解析 JSON, 映射响应对象等操作, 简单易用, 方便你把所有精力都放在对数据的操作上

pod 'RestKit', '~> 0.26.0'

ReactiveCocoa 由 GitHub 工程师们开发的一个应用于 iOS 和 OS X 开发的函数响应式编程新框架, Matt 称其为 “An open source project that exemplifies this brave new era for Objective-C”, 也有人说它是 Cocoa 的未来, 具体可看唐巧写的这篇文章

pod 'ReactiveCocoa', '~> 4.0.4-alpha-4'

three20 由 Facebook iOS 客户端衍生出的一款 iPhone 框架, 内置许多丰富的功能, 有丰富的界面, 对底层的操作便捷, 为开发者省下了很多时间, 但现在已经停止了更新, 一个 PR 把代码删得干干净净, 不要好奇去点开 Files changed, 我点开后该页面直接卡死, three20 当中的一位作者创建了 Nimbus, 算是 three20 的一个替代品

pod 'Nimbus', :git => 'https://github.com/jverkoey/nimbus'

MBProgressHUD 作者 Matej Bukovinski 是一位全栈工程师, UI/UX 设计师, 此项目是一款提示框第三方库, 帮助开发者快速应用到项目中)

pod 'MBProgressHUD', '~> 0.9.2'

MagicalRecord 作者是 Coursera 的 iOS 工程师, 该项目创作灵感来自于 Ruby on Rails 的 Active Record, 主要为方便操作 CoreData 而生, 帮助清除 CoreData 引用的代码, 协助方便 CoreData 的工作

pod 'MagicalRecord', '~> 2.3.0'

FMDB 一个对 SQLite 进行封装的库, 使用起来方便, 简单

pod 'FMDB', '~> 2.5'

Mantle 作者是 GitHub 的员工, 文档写的很清楚: Mantle makes it easy to write a simple model layer for your Cocoa or Cocoa Touch application, 主要用来将 JSON 数据模型化为 Model 对象, 唱吧在前段时间也改用 Mantle 了

pod 'Mantle', '~> 2.0.6'

FlatUIKit 收集了很多扁平化 UI 的 iOS 组件, 方便使用

pod 'FlatUIKit', '~> 1.6.2'

ASIHTTPRequest 一个轻量级的 iOS 网络通信类库, 基于 CFNetwork 框架开发, 但现在已经停止更新, 多数开发者改用 AFNetworking 替代)

pod 'ASIHTTPRequest', '~> 1.8.2'

FastImageCache Path 公司出品的 iOS 库, 作者 Mallory Paine 是苹果前员工, 此类库适用于在滚动时快速显示图像, 高速持久是其最大的特点

pod 'FastImageCache', '~> 1.3'

Masonry 一个轻量级的布局框架, 同时支持 iOS 和 Mac OS X, 语法优雅, 帮助开发者快速适配不同分辨率的 iOS 设备

pod 'Masonry', '~> 0.6.4'

Shimmer Facebook 推出的一款具有闪烁效果的第三方控件, 供它旗下一款名为 Paper 的应用使用, 安装使用整个过程都十分简单

pod 'Shimmer', '~> 1.0.2'

SVProgressHUD 又一款轻量级的 iOS 第三方控件, 用于显示任务加载时的动画, 非常轻便, 容易使用

pod 'SVProgressHUD', '~> 2.0-beta'

Slate 一款窗口管理应用程序, 但在两年前就已经停止更新了

pod 'Slate', :git => 'https://github.com/jigish/slate'

JSONKit 主要用于解析 JSON, 适用于 iOS6 以下环境, 自从 iOS5 开始 Apple 官方给出了 NSJSONSerialization API, 自此大家都用官方的了

pod 'JSONKit', '~> 1.5pre'

Nimbus 作者 Jeff 曾为 Facebook, Google 做过不少好东西, 也是 three20 的成员之一, three20 停更后, 他创造出这个框架来代替 three20, 文档齐全

pod 'Nimbus', :git => 'https://github.com/jverkoey/nimbus'

CocoaLumberjack 这是 Mac 和 iOS 的一款强大的日志框架, 配置简单, 多线程, 提供更高级的 log 功能, 可用于代替默认的 NSLog 语句

pod 'CocoaLumberjack', '~> 2.2.0'

Facebook SDK for iOS Facebook 官方的 iOS SDK, 方便开发者集成 Facebook 的一些功能到自己的 iOS APP 里面

AsyncDisplayKit Facebook 开源的一款 iOS UI 框架, Paper 用的就是该框架, 另外框架还用到了 Facebook 早期开源 Pop 动画引擎

pod 'AsyncDisplayKit', '~> 1.9.4' pod 'pop', :git => 'https://github.com/facebook/pop.git'

ViewDeck 一款开源的 iOS 活动面板组件, 还原 Path 2.0 的侧滑效果, 作者因为时间关系在两年前停止对其更新

pod 'ViewDeck', '~> 2.4'

JSQmessagesViewController 优雅的 iOS 消息类库, 常用于聊天应用中, 可定制性高

pod 'JSQMessagesViewController', :git => 'https://github.com/jessesquires/JSQMessagesViewController.git', :branch => 'develop'

FLEX 这是 Flipboard 官方发布的一组专门用于 iOS 开发的应用内调试工具, 开发者无需将其连接到 LLDB/Xcode 或其他远程调试服务器,支持直接在 App 中运行

pod 'FLEX', '~> 2.0', :configurations => ['Debug']

iCarousel 作者是英国 Charcoal Design 公司的创始人, 开源领域的贡献颇为卓著, 这个项目就是其中之一, 这是一款可以在 iOS 上实现旋转木马视图切换效果的第三方控件, 并提供多种切换效果

pod 'iCarousel',:git => 'https://github.com/nicklockwood/iCarousel.git'

RESideMenu 作者 Roman Efimov 是雅虎的 iOS 工程师, 这个项目实现了 iOS 上的菜单侧滑效果, 创意来源于 Dribbble, 该项目支持 iOS8 321 PNChart 作者周楷雯是 90 后, 秒视的创始人, 该项目是一个带动画效果的图表控件, 简约易用, 受到不少开发者喜爱

platform :ios, '6.0' pod 'RESideMenu', '~> 4.0.7'

作者周楷雯是 90 后, 秒视的创始人, 该项目是一个带动画效果的图表控件, 简约易用, 受到不少开发者喜爱

pod 'PNChart'

PonyDebugger 由 Square 公司推出的一款优秀的 iOS 应用网络调试工具, 用户可以实时看到应用程序的网络请求, 也可以对 iOS 应用程序的核心数据栈进行远程调试

platform :ios, '5.0'

pod 'PonyDebugger', '~> 0.4.3'

pod 'PonyDebugger', :git => 'https://github.com/square/PonyDebugger.git'

JVFloatLabeledTextField 作者是 Thumb Labs 的联合创始人, JVFloatLabeledTextField 是 UITextField 的子类, 主要实现输入框标签浮动效果, 创作灵感来自 Dribbble, 已出现多个移植版本

pod 'JVFloatLabeledTextField'

SWTableViewCell UITableViewCell 的子类, 实现了左右滑动显示信息视图并调出按钮

pod 'SWTableViewCell', '~> 0.3.7'

AwesomeMenu 作者是一位中国人, 该项目主要是使用 CoreAnimation 还原了 Path menu 的动画效果

pod 'AwesomeMenu', :git =>'https://github.com/levey/AwesomeMenu.git'

Reachablity 是用于检测 iOS 设备网络环境的库

pod 'Reachablity', :git =>'https://github.com/GyazSquare/Reachability.git'

作者独自一个人 Samuel Clay 做出来的一款名为 NewsBlur 的新闻阅读器, 很多人都称其为 Google Reader 的替代品, 这是它的源码

https://github.com/samuelclay/NewsBlur.git

一个可用于在 iOS, Mac 和 Android 上制作 2D 游戏或其它图形/交互应用的框架, 之前的项目名称为 Cocos Swift, 目前该项目在 GitHub 上更新较为频繁

https://github.com/cocos2d/cocos2d-objc.git

TTTAttributedLabel UILabel 的替代品, 使 iOS 上的 Label 功能更加丰富, 可支持链接植入等功能

pod 'TTTAttributedLabel'

一个功能强大、简单易用的异步 socket 通讯类库, 支持 TCP 和 UDP 协议, 可用于 Mac 和 iOS 设备上, 作者 Robbie Hanson 是 Deusty 的首席软件工程师

pod 'CocoaAsyncSocket'

作者是 Devin Ross, 这是在 iOS 上一款功能强大的 UI 效果类库, 可以实现多种酷炫的效果, 目前仍在更新中

pod 'TapkuLibrary',git: =>'https://github.com/devinross/tapkulibrary.git'

无需编码实现牛逼的动画效果的库, 连设计师都可以快速上手

Square 公司开源的一个 WebSocket 客户端, 稳定并且易用, 做实时应用常会用到, 受广大开发者喜爱

一个视图控制器容器, 将子视图处理成两层, 通过滑动来处理层的切换, 创作灵感来自 Facebook 和 Path的 App, 作者是 Cleveland 的员工

用于解析 JSON 数据的一个框架, 但是在 iOS5 以上版本大多数人都选择使用 NSJSONSerialization 来解析 JSON, 该项目现在在 GitHub 上也几乎没怎么更新了

Facebook 开源的一款工具, 旨在帮助 iOS 开发者更快的迭代应用, 方便用户动态的调整参数, 是的, Paper 这个项目也用到了

Realm-Cocoa 是 Realm 公司推出一款移动端数据库, 可以运行在手机、平板和可穿戴设备之上, 其目标是取代 CoreData 和 SQLite 数据库

一个开源的与 Cocoa 紧密集合的基础性框架

pod 'BlocksKit', '~> 2.2.5'

一款用于提醒用户给你的 App 打分的工具

pod 'Appirater'

Square 出品的一个开源的用户界面测试框架, 极大的简化了 iOS 开发者的 UI 测试流程

pod 'KIF', '~> 3.0', :configurations => ['Debug']

Slack 推出的一款具有文字输入框高度自适应, 自动输入, 复制单元格内容等功能的解决方案

pod 'SlackTextViewController'

IFTTT 开源的一个简单易用的关键帧基础动画框架, 可通过手势、scroll views, KVO, ReactiveCocoa 等方式来控制动画

pod 'JazzHands'

Bolts 是一个 Parse 和 Facebook 在内部使用的底层库, 方便移动开发

pod 'Bolts'

Spectacle一款易用的 OS X 窗口分屏操作快捷键工具, 这是其源代码

https://github.com/eczarny/spectacle.git

nui 方便样式化 iOS 应用中的 UI 元素, 可在短时间内样式化整个应用, 类 CSS 原理

https://github.com/tombenner/nui.git

Induction 是一款用于理解数据关系的管理工具, 这是其程序代码

nothing

一个能迅速解析服务器返回的 Json 数据的库, 方便数据的类型转换

pod 'JSONModel'

一个开源的 iOS 富文本组件, 它可以解析 HTML 与 CSS 并最终用 CoreText 绘制出来, 通常用于在一些需要显示富文本的场景下代替低性能的 UIWebView

pod 'DTCoreText' , :git =>'https://github.com/Cocoanetics/DTCoreText.git'

基于 Facebook Pop 引擎的 iOS 动画库, 集合了很多动画效果

pod 'Popping', :git =>'https://github.com/schneiderandre/popping.git'

一个用来弹出显示警告和通知的轻量级库, 样式丰富, 简单易用

pod 'TSMessages'

一个简单安全的 KVO(Key-value Observing, 键-值 观察)工具, 提供简单方便、线程安全的API, Facebook 的开源项目之一

pod 'KVOController'

一款简单的 iOS 照片浏览控件

pod 'MWPhotoBrowser'

一个轻量级, 易于使用的侧边抽屉导航 iOS 控件

pod 'MMDrawerController', '~> 0.5.7'

用于快速创建复杂的 iOS 表单, 自定义了 UITableViewCell, TableView 的样式

https://github.com/escoz/QuickDialog.git

一款只需一行代码便可集成上拉刷新和下拉加载的组件

pod 'SVPullToRefresh'

Cheddar 是一款简单易用的日程管理软件, 这是其早期版本的开源代码, 该项目已停止维护

https://github.com/nothingmagical/cheddar-ios.git

一款在 Xcode 上实现了 Vim 功能的插件

https://github.com/XVimProject/XVim.git

一款提供下拉刷新的控件, 最后更新时间是一年前

pod 'EGOTableViewPullRefresh', :git =>'https://github.com/enormego/EGOTableViewPullRefresh.git'

iOS 应用程序的基础模板, 使用该模板可以省掉许多项目初始编码的工作, 内置非常多丰富的功能, 现已经停止维护

https://github.com/gimenete/iOS-boilerplate.git

一个 UIViewController 容器, 灵感来自 Facebook 和 Path 2.0 应用的菜单, 实现了左右侧滑的操作

pod 'JASidePanels', :git =>'https://github.com/gotosleep/JASidePanels.git'

收集了很多构思优秀的 NSFormatter 子类

pod 'FormatterKit', :git =>'https://github.com/mattt/FormatterKit.git'

实现了具有动态弹性效果的抽屉式侧边导航栏, 效果丰富, 可定制性强

pod 'MSDynamicsDrawerViewController'

iDevRecipes 博客的代码, 演示如何实现一些有趣的控件, 该项目在两年前(2013)停止了更新

https://github.com/boctor/idev-recipes.git

一个基于 RFC-3920 实现, 支持多线程和线程保护, 同时通用于所有的 iOS 和 Mac OS 开发设备的通信框架.

https://github.com/robbiehanson/XMPPFramework.git

一款可以将 HTML/CSS/JS 网络应用打包成原生 Mac App 的工具

https://github.com/MacGapProject/MacGap1.git

iOS 模糊背景类库, 可以方便的根据底层显示的状态生成模糊效果

pod 'FXBlurView',:git =>'https://github.com/nicklockwood/FXBlurView.git'

整合演示了多个具有 iOS7 新特性的的项目, 提供了非常多的例子参考

https://github.com/shu223/iOS7-Sampler.git

提供强大的 iOS 开发异步功能, 是 Promises 的实现, 受到广大开发者的追捧

pod 'PromiseKit', '~> 2.0'

此为 Facebook 推出的 Quartz Composer 的一个开源插件, 由其设计团队花费了 9 个月打造而成, 目的是为方便设计师快速构建原型, 以零代码完成复杂动画的合成和测试, 堪称神器

https://github.com/facebook/origami.git

一款强大的日志分析工具, 具有大窗口查看 Log, 自定义日志等级等功能

pod 'NSLogger'

一个简单却强大的 AutoLayout API 库, 兼容了 Objective-C 和 Swift, 扩展了 UIView/NSView, NSArray, 和 NSLayoutConstraint

pod 'PureLayout'

一款 Objective-C 文档生成工具, 生成的文档风格保持与 Apple 官方的一致, 极大的方便了 Xcode 识别自己写的 API 文档, 安装也是十分的简单

https://github.com/tomaz/appledoc.git

iTerm2 被不少程序员称赞为 Mac 下最好用的终端, 这是其源代码, 配合 oh-my-zsh 使用效果更佳

https://github.com/gnachman/iTerm2.git

一个行为驱动开发测试框架, 适用于 iOS 平台, 旨在为开发者提供一个简单配置便可使用的 BDD 库

pod 'Kiwi'

一款命令行工具, 用来给 Mac OS X 用户发送通知

https://github.com/julienXX/terminal-notifier.git

Mac OS X 下的一款开源的 Markdown 编辑器, 创意来自与 Mou, 使用 brew cask 即可完成安装

https://github.com/MacDownApp/macdown.git

Twitter 开源的一个支持硬件加速的 Mac 的 UI 框架, 最后一次的更新时间是在 3 年前(2012)

https://github.com/twitter/twui.git

实现了类似折纸效果的视图切换, 可从不同方向进行切换, 该项目已经许久未更新

pod 'PaperFold for iOS', :git =>'https://github.com/honcheng/PaperFold-for-iOS.git'

一款开源的 iOS PDF 阅读器, 附带书签, 列纲要等功能

https://github.com/vfr/Reader.git

一个方便使用 Objective-C 与 JavaScript 进行通信的第三方库, 支持消息发送, 接收, 消息处理器的注册与调用以及设置消息处理的回调

pod 'WebViewJavascriptBridge', '~> 5.0'

iOSX-Sampler 系列之一, 整合演示了多个具有 iOS8 新特性的的项目, 提供了非常多的例子参考

https://github.com/shu223/iOS8-Sampler.git

一个用于 Mac OS X 或 iOS 应用的轻量级、可嵌入的HTTP 服务器框架, 方便开发者在应用中嵌入一个 HTTP 服务器

https://github.com/robbiehanson/CocoaHTTPServer.git

Mac OS X 上一款专为程序员打造的编辑器, 这是其开源代码, 可惜的是作者在 2011 年停止了维护

https://github.com/rsms/kod.git

下拉键盘在 iOS 移动文本字段的通用解决方案, 能够自动处理键盘弹出后出现遮挡到文本输入框的问题

pod 'TPKeyboardAvoiding', :git =>'https://github.com/michaeltyson/TPKeyboardAvoiding.git'

一个轻量级网络请求框架, 完全基于 ARC, 仅有两个类, 具有自主操作多个网络请求, 更加准确的显示网络活动指标等优点

https://github.com/MugunthKumar/MKNetworkKit.git

一个 iOS 平台上的视图控制器集合, 通过展现多个视图控制器来进行控制器之间的切换. 设置简单, 高度灵活

pod 'PKRevealController'

一个命令行工具, 通过项目里的 .xcdatamodel 文件, 可以为每个 entity 生成两个类, 方便 CoreData 的使用

https://github.com/AlanQuatermain/AQGridView.git

BlocksKit 是一个开源的与Cocoa紧密集合的基础性框架,BlocksKit并没有创建新的宏,函数,方法和类,只是对Cocoa类的一个扩展,是一个blocks的大杂碎,也是Zachary Waldowski集思广益精炼得来的,说白了它就是利用blocks的优势,给Cocoa类增加了一系列实用方法, 比如让NSObject执行blocks,用blocks对UIView增加触摸动作。

[_view whenTapped:^{

//........

}];

O-C已经很简单了,但 BlocksKit让它更简单,不过前提是你要知道blocks,如果熟悉 associated value就更好了,如果你熟悉基本api和blocks,那么看看BlocksKit源码,真是简洁明了,大快人心~熟悉delegate的朋友或多或少觉得delegate有点繁琐,BlocksKit在某种程度上取代了通常的delegate用法,但强大的delegate并不会死,比如UITableView*Delegate和NSURLConnectionDelegate这样的大怪兽。blocks和delegate都含有转发并执行的逻辑前者适合小而常用的逻辑,比如action,animation,BlocksKit对这些用法提炼到了极致(不过还有提升空间),而后者适合重量级的转发,比如UIViewController之间的。。。

BlocksKit还有参考文档,不过我想GK喜欢直接看源代码,尝试用用blocks吧,会让你工作轻松不少。

结束 偶尔来篇文章翻一翻!记住,你觉得充满鸡血或一脸懵逼的那一刻!下载!阅读!

收藏
6
sina weixin mail 回到顶部