GitHub第三方资源库整理(OC篇)
随着
GitHub
star 的项目越来越多,而且之前也没有整理,所以找起来特别麻烦,于是就有了这篇文章,一是方便我自己查找,都作了分类,而且都作了标注,对应找起来容易得多;二是分享出来,资源共享。这篇文章会持续更新,有好的GitHub
项目就会加进来,并且会把更新说明写在文末。更直观更方便的内容形式,请访问本文的GitBook地址:GitHub第三方资源库整理(OC篇)。
网络
AFNetworking:mattt大神的网络事件处理框架。
XMPPFramework:XMPP
,主要用于即时通讯。
CocoaAsyncSocket:异步socket
请求框架。
Reachability:用来检查应用当前的网络连接状况,是苹果Reachability类的直接替代品,支持ARC,支持block,使用GCD方法来通知网络接口的变化。
SocketRocket:WebSocket协议是一种网络协议,它的Web设计实现了浏览器与服务器的双向通讯。通过使用WebSockets,你可以重复使用现有的工具建立网页,就像大多数移动应用程序重复使用他们API中的HTTP协议一样。
CocoaSPDY:Twitter出品
的一款关于HTTP
请求的框架。
OHHTTPStubs:测试篡改你app的网络数据
、响应时间
、响应代码
、和头文件
,非常容易就摧毁你的网络请求。
综合
ReactiveCocoa:简称RAC,函数响应式编程框架。
YYKit:ibireme写的一款综合框架,包含YYModel、YYCache、YYImage、YYWebImage、YYText、YYKeyboardManager、YYDispatchQueuePool、YYAsyncLayer、YYCategories。
AsyncDisplayKit:facebook出品
,被应用于Paper
,是一款能够保持界面流畅性的iOS开源框架,即使是最复杂的用户界面,也可以让其流畅运行并快速响应。
RestKit:旨在与RESTful web服务的交互变得更简单快速,具有强大的特性:
- 简单高层次的HTTP请求/响应系统;
- 框架支持切换服务器以及环境;
- Core Data支持;
- 对象映射系统;
- 生成数据库文件;
- 可插入解析层。
NewsBlur:是一个个人的新闻阅读器,将人们聚在一起谈论世界。
动画
动画引擎
POP:facebook出品
,动画引擎(推荐)。
Canvas:动画引擎,最喜欢的就是它关联Runtime Attribute
了,可以在SB添加KeyPath
直接加动画。
JazzHands:作用于UIKit
的keyframe-based
动画框架,具有良好的表现。
动画引擎使用
Popping:使用pop动画引擎做的动画合集。
AGGeometryKit-POP:结合Pop的一个动画框架,带有力学动画效果。
FastAnimationWithPOP:SB快速导入动画,以前用过的,不过推荐使用Canvas。
转场动画
VCTransitionsLibrary:控制器之间的转场动画。
FDFullscreenPopGesture:全屏POP
的手势动画。
VVBlurPresentation:王巍写的一款简单过渡到另外一个控制器,但是保持原来控制器的视图并模糊化,这对于一些提示比较有用。
LNPopupController:弹窗效果present
到另外一个控制器,就像Apple Music
app和Podcasts
app里的效果一样。
KMNavigationBarTransition:不需要写任何代码就可实现对不同风格导航的转场动画管理。
AnimatedTransitionGallery:许多种不同的转场动画风格。
其他动画
RGCardViewLayout:City Guide App
的卡片滑动动画效果。
iCarousel:卡片样式的旋转木马动画效果。
BCGenieEffect:实现了在Mac OS 中最小化或最大化窗口时的过渡效果。
自动布局
Masonry:自动布局,目前在用(推荐)。
PureLayout:自动布局,OC
、Swift
皆可用。
SDAutoLayout:自动布局代码精简化,支持Cell
和TableView
高度自适应。
OAStackView:UIStackView
iOS9之后的控件,对于自动布局这块非常方便,OAStackView
就是兼容iOS7+系统的框架。
FDStackView:百度知道团队出品
,兼容UIStackView iOS6+系统,FDStackView Part1、FDStackView Part2、FDStackView Part3这三篇文章是作者分析FDStackView
的设计实现过程(推荐)。
键盘交互管理
YYKeyboardManager:YYKit的组成部分,针对键盘管理(推荐)。
TPKeyboardAvoiding:键盘交互事件。
IQKeyboardManager:键盘交互管理。
加载指示、HUD
MBProgressHUD:加载进程指示框架,都知道。
SVProgressHUD:轻量的HUD
。
NJKWebViewProgress:显示webView
交互进程的控件。
Shimmer:facebook出品,给APP的任何view添加shimmering
动画效果,这个框架最初就是作为Paper加载动画的。
PQFCustomLoaders:很有趣的自定义加载器。
DGActivityIndicatorView:很nice的加载指示器,有32种不要的加载指示风格。
数据处理
数据库
realm-cocoa:Realm
是Core Data和SQLite的代替品,操作移动数据库更加直接、快捷、耐用。
MagicalRecord:对于使用Core Data
做了非常好的封装,用Core Data
值得一试。
fmdb:对SQLite
进行了封装。
存储
YTKKeyValueStore:唐巧写的Key-Value方式存储数据。
UICKeyChainStore:对Keychain
的封装,让你使用Keychain APIs
像NSUserDefaults
一样简单。
转换
MJExtension:李明杰写的一款JSON
转Model
的框架。
Mantle:一款model层的框架,为什么唱吧iOS 6.0选择了Mantle。
JSONModel:一个解析服务器返回的Json数据,然后快速创建JSON 数据模型。同Mantle
类似,不过JSONModel
使用较为简单,但Mantle
似乎更为强大,看个人选择。
Underscore.m:一个小型实用工具库,可以帮助开发者更方便地处理Objective-C中常见的数据结构
解析
JSONKit:主要用于JSON
数据处理解析。
Ono:mattt大神写的一款关于处理XML
、HTML
的框
架。
hpple:解析XML/HTML的框架。
Categories
iOS-Categories:非常有用的objective-c Categories,涉及到Foundation
、UIKit
、CoreData
、QuartCore
、CoreLocation
、MapKit
等。
octave:UI 操作音效,UIControl
的category。
LTNavigationBar:动态改变UINavigationBar
的显示状态,类似手机QQ中QQ空间的导航效果。
FlatUIKit:扁平化的UI视图集合。
UIKit
UI视图
JSQMessagesViewController:一款优雅的关于聊天信息的UI框架。
SDCycleScrollView:无限循环图片轮播器。
CoreLock:高仿支付宝手势密码。
日历视图
JTCalendar:自定义的日历视图。
GLCalendarView:同上,一款日历视图。
图表、绘图
PNChart:周凯文
写的一款很好的图表框架。
core-plot:也是一款2D的绘图框架。
引导页、状态页
Onboard:只需少量代码就可创建非常nice的引导页。
DZNEmptyDataSet:没有请求到网络数据或者请求失败的视图展示,就好像web
的404页面一样。
View
CRPixellatedView:UIView的子类,做像素化的动画处理。
SwipeView:水平分页滑动视图。
Alert、Sheet
MMPopupView:高度可定制的alert、sheet。
TSMessages:提示信息、通知信息控件。
RKDropdownAlert:基于facebook的app
Slingshot
的alert,灵感取自于SVProgressHUD
的一个提示框架。
SCLAlertView:具有非常赞的动画的Alert View
。
CMPopTipView:是一个开源的泡泡风格文本提示框控件。
TableView
FXForms:非常容易创建table数据形式,用于设置页面非常理想。
VVeboTableViewDemo:VVebo剥离的TableView绘制,对TableView
进行流畅度优化。
RETableViewManager:数据驱动tableView
进行内容管理。
TextView
SlackTextViewController:文本输入视图,对于消息编辑非常有用,类似于微信发送消息的那个输入框。
Menu
RESideMenu:左右侧视图视差效果menu
,不过很久没有commit
了。
AwesomeMenu:Path2.0
里面的menu
效果。
Button
VBFPopFlatButton:使用pop
做的不同状态具有平缓过渡动画效果的扁平化button。
BEMCheckBox:一款可自定义的具有非常nice动画效果的checkbox
。
TextField
JVFloatLabeledTextField:编辑就会出现浮动的提示label
,效果不错。
Label
RQShineLabel:类似于Secret
的文字闪烁动画。
Font、Color
FontAwesomeKit:字体框架,支持Font-Awesome
、Foundation icons
、Zocial
、ionicons
。
Chameleon:类似颜色板一样,具有很多超赞的颜色可供直接使用。
Colours:和Chameleon
功能类似。
DKNightVersion:对颜色的管理,融合了白天和黑夜的主题效果。
Cell
SWTableViewCell:滑动Cell
的内容视图,出现功能按钮。(推荐)
MGSwipeTableCell:功能同上。
UITableView-FDTemplateLayoutCell:sunnyxx
写的,自动计算cell动态高度。
CoreText、AttributeText
DTCoreText:允许使用HTML
代码的Core Text框架。
YYText:非常强大的富文本显示和编辑框架。(推荐)
Image
GPUImage:GPUImage 是ios下一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜。
图片加载、缓存
SDWebImage:异步图片下载处理,支持缓存,我相信大部分开发者都用过。
PINRemoteImage:对图片下载、加载、缓存的管理,线程安全且快速,对于网络图片具有很好的表现力。
Haneke:轻量的图片缓存框架。
AsyncImageView:异步图片处理的一个简单Extension。
Concorde:下载和解码JPEGs
格式图片。
GIF
FLAnimatedImage:Gif引擎框架。
YLGIFImage:异步Gif解码,播放Gif图片,占用内存少。
Camera、视频
XCDYouTubeKit:YouTube
视频播放框架。
ZFPlayer:基于AVPlayer
支持横屏、竖屏的视频播放器。
kxmovie:使用ffmpeg
制作的一款视频播放器。
PBJVision:一款camera
的引擎,支持录屏
、慢动作
、获取图片
等特性,且camera
可自定义。
MWPhotoBrowser:一款优雅的图片、视频资源浏览器。
瀑布流
CHTCollectionViewWaterfallLayout:UICollectionView的瀑布流。
Objective-C与JS交互
JSPatch:JSPath
充当Objective-C
与
JavaScript
交互的桥梁。
WebViewJavascriptBridge:Objective-C
与
javascript
交互通信过程中,和JSPath
一样充当桥梁。
地图、地理位置信息、LBS
LocationManager:非常容易获取设备当前地理位置信息的框架。
ReactiveCocoa
ReactiveCocoa:简称RAC。
MVVMReactiveCocoa:使用ReactiveCocoa结合MVVM模式做的一个Demo。
Runtime
RuntimeBrowser:有关运行时操作的工具,你有权使用运行时所有的类。
iOS-Runtime-Headers:使用RuntimeBrowser
导出的iOSframework
的头文件。
Block
BlocksKit :对于使用Block
来说更加方便、高效,不过好久没有commit
了。
KVO
KVOController:facebook出品
,它是一个简单安全的 KVO工具,构建了一个基于 Cocoa 的 time-tested key-value 监控实现,提供简单方便、线程安全的 API。
AOP、Method Swizzling
Aspects:一个简洁高效的用于使iOS支持AOP面向切面编程的库。
路由器、Deep Link
JLRoutes:引入路由器的概念handle complex URL schemes
、deep link
(推荐)。
DeepLinkKit、routable-ios、HHRouter:功能同上。
测试
Kiwi:iOS的BDD框架。
specta:轻量的TDD/BDD测试框架。
KIF:全称是Keep It Functional,来自Square
,是一款专为iOS设计的移动应用测试框架
日志
CocoaLumberjack:是Mac和iOS上一个集快捷、简单、强大和灵活于一身的日志框架。
工具、Xcode插件
工具
Alcatraz:Xcode插件管理神器,当然还有些其他的包管理功能。
FLEX:一款很好的调试工具,同样是Flipboard
出品。
PonyDebugger:原生app使用Chrome
开发工具进行远程的网路和数据debug
。
xctool:facebook出品
的取代Apple‘s xcodebuild
,让编译和测试更简单。
Tweaks:facebook出品
的快速原型开发工具,能在应用上实时调整参数并测试效果。
EarlGrey:google出品
的UI自动测试工具。
插件
injectionforxcode:运行中的程序,然后在Xcode中动态插入代码,你可以实时看到编译器中的变动。
CATweaker:创建CAMediaTimingFunction
曲线的一个帮助工具,该插件可以实时观看你创建的曲线,而且可调整。
KSImageNamed-Xcode:自动call
imageNamed:获取图片资源名字填充,且相应图片在左侧可见。
XAlign:自动代码对齐插件。
VVDocumenter-Xcode:王巍
写的一款编写文本的插件,用于注释非常方便。
SCXcodeSwitchExpander:自动填充Switch
语句的枚举case值。
RTImageAssets:给定一张@3x
的图片,自动生成其他像素的图片,也可以给定一张@2x
的图自动片生成@3x
的图片。
ESJsonFormat-Xcode:将JSON格式化输出为模型的属性插件。
FuzzyAutocompletePlugin:代码索引、自动补全代码的插件。
ColorSense-for-Xcode:主要针对RGB颜色值,可实时查看RGB颜色。
API、SDK
facebook-ios-sdk:facebook的sdk,使用它可以集成facebook的一些API。
octokit.objc:GitHub
API。
其他
PKRevealController:是一个iOS平台上的视图控制器集合,通过展现多个视图控制器来进行控制器之间的切换,设置简单,高度灵活。
nimbus:旨在落实Three20,但是提供文档放在第一位,其次才是功能。
Chameleon:就像是一个港口,有iPhone
、iPad
、Mac
几个分支,用于处理不同平台。
iOS-Artwork-Extractor:可以把所有图片和emoji符号提取出来,并导入png文件。
Bolts-ObjC:集成多任务处理的,和GCD、NSOperation的作用有点类似。
资料
iOSInterviewQuestions:ios面试题集锦。
open-source-ios-apps:关于iOS开发一些开源的资源集锦,涉及iOS开发的各个方面。
trip-to-iOS:iOS学习资料整理。