iOS开发-常用第三方开源框架介绍(1)

转载:http://blog.csdn.net/xiaoyuertongxue/article/details/46982879

  1. 图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。可对图片进行缩放等操作。 
    下载:https://github.com/mwaterfall/MWPhotoBrowser 
    目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code、SourceForge等地方。由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库。 首先整理了一份Github上排名靠前的iOS库(大概600个repos) 除了逛一下每日/每月流行之外,也可以到这里来看一下整个iOS Repos的排名。 下面是一些比较流行的第三方库: HTTP 相比较之下,AFNetworking是目前最优秀的一个了:轻量、易用、使用者多、开发者有在积极维护。在AFN出现之前,这个角色是由ASIHTTPRequest扮演的,只是到现在年久失修了。关于AFN和ASI的对比,这里有一篇不错的文章http://www.infoq.com/cn/articles/afn_vs_asi。除此之外,MKNetworkKit和RestKit也有一定的使用者。 Socket CocoaAsyncSocket无疑是目前封装得最完善的Socket库了:支持异步TCP/UDP,支持GCD,Objective-C接口封装。。目前没有发现可以与之相比的同类产品。。 JSON JSONKit算是第三方中最优秀的一个了:性能很高,文件少。在JSONKit之前,SBJson非常非常流行,但是SBJson性能够差,只是由于历史原因仍然存在在某些工程里面。如果工程只需要支持iOS5以上的系统,那就可以放弃那些第三方Json库了,直接用系统提供的NSJSONSerialization,性能比第三方的好,又是官方API。。 XMPP 现在做个实时聊天,XMPP协议算是很成熟的方案了。XMPPFramework一个很不错的选择,可以直接和OpenFire服务器打交道。项目不大人手不多的话,可以看看这个。 基础工具类 SSToolkit算是一个不错的工具包,提供各种比如编码、加密、字符串处理等等东西,还提供了一些不错的自定义控件,并且文档非常齐全。 框架 过去有很多人再用three20,这个东西太大太重,文档又少,到头来连Facebook都停止维护了。作为替代品nimbus现在流行了开来,关键在于它文档齐全。国内有个MVC框架叫BeeFramework,号称是顶级框架并且功能超过nimbus,有兴趣的可以看一下。 ReactiveCocoa把响应式编程这种上流的东西带了过来,值得试一试。。 数据存储 还是挺多人(比如我)喜欢直接跟SQLite打交道的,这方面fmdb封装的很不错。如果用CoreData来做存储的,可以用一下MagicalRecord。 图像处理 GPUImage无疑是这方面的集大成者了。用OpenGL ES2.0来实时处理图片和视频流,性能和功能都是顶尖的。 开发和调试工具 PonyDebugger看上去是一个不错的调试工具,可以在dian脑浏览器上远程调试iOS程序、查看试图层次、网络等等。CocoaLumberjack是个Log工具,号称是可以提供企业级Log,使用者也挺多。 为了了解一下目前第三方库的普及程度,下面列举一些知名App对第三方库的依赖。 


网易新闻  
AppleReachability 
ASIHTTPRequest 
EGOTableViewPullRefresh 
GTMNSString+HTML 
MGTemplateEngine 
MPOAuth 
RegexKitLite 
SDWebImage 
SSZipArchive 
wax Garageband MurmurHash 
libpng 
zlib 
SBJson (json-framework) iWork三套件 MOKit 
Boost C++ Library 
protobuf 
OpenGL Mathematics 
SQLite 
cephes math library Pinterest AFNetworking 
AFHttpClientLogger 
Facebook SDK 
iRate 
MAKVONotificationCenter 
SDWebImage 
SFHFKeychainUtils 
SSPullToRefresh 
SVProgressHUD 
TTTAttributedLabel 
TTTLocalizedPluralString 
多看阅读  
fmdb 
ASIHTTPRequest 
FreeType 
JSONKit 
Objective-Zip 
Skia (Google) 
MBProgressHUD 
淘宝 
MAZeroingWeakRef 
MBProgressHUD 
ABContactHelper 
ASIHTTPRequest 
CocoaLumberjack 
EGOTableViewPullRefresh 
fmdb 
GTMBase64 
JSONKit 
SBJson (json-framework) 
RTLabel 
SDWebImage 
SVPullToRefresh 
three20 
微信  
cocos2d 
EGOTableViewPullRefresh 
Facebook iOS SDK 
JSONKit 
SBJson 
ziparchive QQ ASIHTTPRequest FMDB CocoaAsyncSocket JSONKit MBProgressHUD OpenUDID SBJson SVPullToRefresh 百度地图  
AFNetworking 
GTMBase64 
JSONKit 
MBProgressHUD 
RNCachingURLProtocol 
SDWebImage 
微博 
ABContactHelper 
AFNetworking 
ASIHTTPRequest 
DACircularProgressView 
DDProgressView 
DTFoundation 
fmdb 
JSONKit 
SBJson 
MBProgressHUD 
MTStatusBarOverlay 
OpenUDID 
SFHFKeychainUtils 人人 cocoaasyncsocket 
ZipArchive 
MBProgressHUD 
JSONKit 
GTMBase64 
MKNetworkKit 
HPGrowingTextView 
zxing 
可以看到,这些大型的App的依赖都很混乱,所以稍微解释一下。这些大公司都有一个iOS团队来协同开发,团队成员的水平也参差不齐。有时由于历史原因,例如某个App的某个组件依赖了ASIHttpRequest,但之后的新人改用了AFNetworking,就造成上面这种比较混乱的库依赖关系。这就造成难以维护、代码冗余等问题了。所以,引入一个第三方库一定要慎重考虑,如果可能,尽量自己开发和实现相应的功能,第三方库尽量只作为参考。 小团队或者个人开发者可以不必过多考虑,开发速度优先。 —————————————————————————————————————————————————————————————– 2014年8月7号新增 系统基础库 Category/Util 
sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错~ 
BlocksKit 将Block风格带入UIKit和Founcation 
cocoa-helpers 一些Cocoa的扩展 2年前的工程 
CoconutKit 一系列扩展和一些自定组件 
STUtils 一系列扩展包 
PSFoundation 一系列扩展 和功能增强 
ConciseKit 一系列宏定义 挺有意思 
DTFoundation 又一系列扩展。。。 
BBBootstrap 一些常见功能的扩展库 
cooliris-toolkit cooliris出品的基础工具库,从GoogleCode clone过来 
BaseKit 一套基础工具库 
NSObject-Utility-Categories 如题 
NSArray-Utilities 如题 
aqtoolkit 一些常用的东西 
DLIntrospection 一些NSObject的扩展 
NSDate-Extensions 如题日期 
ALActionBlocks 在UIControl上添加的Block事件 
jrswizzle 主要是swizzling 
moriarty 一些还算有用的功能 
QSUtilities 一些基础库 (Instagram有用到) 
libextobjc 一堆oc的扩展 
PrettyTimestamp 友好时间的扩展 
ios-jail-break-detector 检测是否越狱 有上线 
crackify 检测App是否被破解 
NSBundle-OBCodeSigningInfo 检查当前签名、Sandbox状态 MacOSX 
UIView-AnimatedProperty 为UIView添加动画效果的property,有用到swizzle 
Block-KVO Block风格的KVO~ 
MTDates 一些Data的category 
CocoaSecurity 常见的哈希、加密解密算法 
sskeychain 访问keychain 支持iOS Mac 
ABContactHelper 访问联系人 
UISS 用JSON的风格设置UIKit样式 
Underscore.m 仿JS的underscore.js来写的,用于访问和处理数据 
TICoreDataSync 在不同设备间对CoreData进行同步 (iPhone iPad Mac) 
SoloComponents-iOS 几个轻量的组件,没什么用,2年没更新 
MAObjCRuntime 将运行时包装成ObjC 
Objective-C-Generics 通过宏定义勉强实现的范型 
TBMacros 一些常用的宏定义 
NSString-Ruby 为Ruby程序员带来的字符串相关功能 
ObjectiveRecord CoreData包装的活动记录 有RoR风格的API 
FastImageCache 滑动时快速显示图片的库,Path开发 基础功能 
mediaextract 纯C的一些常用媒体文件的解析读取 
objection 一个估计是java ee写多了的人搞的。。注解依赖注入xx工厂之类的 
Typhoon IoC容器啊~~ 
HTKit 一堆乱七八糟的东西 
StringScore 模糊匹配字符串 查找某两个字符串的相似程度 
RegexKitLite 正则表达式库 (从SF.net mirror过来) 
FormatterKit 一个NSString的格式化工具 
TMCache 一个内存Cache 
EGOCache EGOImage里面的 Cache功能 
HJCache 一个缓存网络内容等的Cache 
RNCryptor 加密解密相关 貌似更上流, note:去看一下他博客 
ssziparchive zip压缩 zip解压~ 
ZipKit 一个ZipKit 从bitbucket Mirror过来 
ZipKit 如同ZipKit 改为ARC了 
zipzap Zip文件处理 底层为libz 
MTMigration 版本升时执行一次 
MTControl jQuery风格touch事件绑定 
storage 快速、线程安全的I/O存储操作 
CHCSVParser CVS文件解析 
YLMoment 日期的解析,格式化等,支持多语言 
CMUnistrokeGestureRecognizer 各种奇怪的手势检测 
EKAlgorithms.git 常见算法的ObjC实现,包括排序、查找、数组、字符串、常用数据结构.. 框架/封装 
three20 一个曾经用得广泛的庞大的iOS开发框架 已不再维护 
nimbus three20替代品 又一个庞大的框架 
BeeFramework 一个基于MVC的框架, 比较大.. 
OmniGroup 一套很庞大的库(OmniGroup) 支持Mac和iOS 更新迅速 
ReactiveCocoa 一套响应式编程的框架(Functional Reactive Programming) 支持Mac 
WebViewJavascriptBridge WebView和Cocoa之间的事件传递 
OCUDL 自定义literals 有点意思~~ 
Kiwi 一个Behavior驱动编程框架? (BDD)? 
Mantle 一个Model层, 替代CoreData 可以生成Model对象~ Github官方出品.. 
MagicalRecord CoreData的包装 简化代码 
fmdb SQLite的封装 
KZPropertyMapper 一个Model的封装,类JSON 
BlockInjection 为某个方法注入一个Block 类似AOP 
NSObject-ObjectMap JSON和XML包装到Object 
Ejecta 通过OpenGL OpenAL来实现 WebCanvas JS等,很庞大~ 
FCModel 为SQL程序员包装一下CoreData 功能/封装 
iOS-System-Services 获取各种设备信息 包括硬件、网络、内存、进程等等 
MKStoreKit iAP用的库 
CargoBay 一个包装iAP StoreKit的库 
RMStore 很轻量的iAP包装 
QuincyKit 处理crach信息的库 只有上架应用才能用 支持Mac 
OpenUDID 系统UDID替代方案 
UIDevice-with-UniqueIdentifier-for-iOS-5 另一个UUID解决方案 但iOS7不能用了 
uidevice-extension 一系列UIDevice的扩展 有PrivateAPI 最新的工程在cookbook-code里 
InAppSettingsKit 包装了设置、URLScheme、Mail、Icon等东西 
DTWebArchive 允许访问剪贴板中的WebArchive格式富文本 
routable-ios inApp的URL定义 在App内打开自定义URL (解耦) 
JLRoutes 复杂的URL Scheme解析和路由 
Emoji 访问Emoji图片的功能 
PDKeychainBindingsController 以类似UserDefault的方式访问Keychain 
CoreTextWrapper 一个CoreText库的包装 
Slash 对AttributeString的封装 
iHasApp 检测某个App是否安装,集成了常见的URL Scheme 网络 基础 
AFNetworking 很棒的HTTP网络通信库 
asi-http-request 一个HTTP库 同样很知名 性能好,稳定 但已不再维护 
MKNetworkKit 一个HTTP库 支持Mac 同样也不错 
STHTTPRequest 一个非常简单的http库,包装了NSURLConnection 
RestKit 一个HTTP库 用来与RESTful的服务进行交互 
AFIncrementalStore 用CoreData和AFNetworking 将HTTP数据持久化 
CocoaAsyncSocket TCP/UDP包装库 支持Mac 很棒 
Reachability 判断设备网络情况 和苹果的很像 用ARC、GCD 
SDReachability 判断设备网络情况 和苹果的很像,更友好? 
socket.IO-objc 支持HTTP 长轮询 socket.io 
DTBonjour Bonjour和Wifi 
XMPPFramework XMPP客户端的库~ 支持Mac 
CocoaHTTPServer 一个轻量的HTTP Server 支持Mac 
SocketRocket WebSocket客户端~ 
MailCore IMAP SMTP邮件协议 JSON 
JSONKit 性能非常好 (只比Apple原生的差一点) 
json-framework SBJson 曾经用得很广泛的JSON 性能差 
TouchJSON 又一个JSON库 
yajl-objc 一个JSON库 可以支持流解析 支持Mac 
JSONModel 一个构建JSON Model的工具和库 XML/Html 
MWFeedParser Feed/Atom解析 
RSSKit RSS Atom解析 
ElementParser 提供Html和XML的解析 
hpple 提供Html/XML解析 
Objective-C-HMTL-Parser 一个很简单的HTML解析 包装了下libxml 
RaptureXML 一个简单的XML解析器 包装了libxml 
KissXML 解析XML的库 包装了libxml 
TBXML 快速解析xml的库 
xmldocument 又一个解析XML的库 
XMLDictionary 蛮好用的一个XML转NSDictionary的类~ 
XML-to-NSDictionary XML转NSDictionary 
MMMarkdown 一个渲染Markdown到HTML的小引擎 
Ashton 在NSAttrbuteString和Html之间转换 
XMLParser XML解析成json~ 功能性 
EGOImageLoading 下载使用网络图片的库 
SDWebImage 异步加载网络图片 (UIImage Category) 
TCBlobDownload 下载大文件/ 断点续传 
GroundControl 一个通过远程plist改变配置的库 
appirater 提醒用户稍后到AppStore给你评分的功能 
iRate 类似appirater 提醒用户稍后到AppStore评分 支持Mac 
ShareKit 分享到国外的一些社交网站 的功能 用的的人挺多 
Harpy 新版本更新提醒 
iVersion 新版本更新提醒 功能提示 
DataKit 以类似CoreData的Model 来获取网络资源 
SDURLCache URL缓存 
objective-git libgit的包装 挺庞大 
nsrails RoR风格的网络交互API SDK 
facebook-ios-sdk Facebook的SDK 
MGTwitterEngine 一套Twtter库 
Twitter-OAuth-iPhone Twitter的OAuth功能 
Foursquare-API-v2 Foursquare的库 
objectiveflickr Flicker API 
octokit.objc Github的API 
ParcelKit Dropbox封装CoreData 
cocoalibspotify spotify官方SDK 
GDFileManagerKit 访问 dropbox GDrive之类的云存储 音频 
iOSSystemSoundsLibrary 列出和播放iOS系统声音~ 
novocaine 一个声音库 录音放音 页面上有CoreAudio的教程链接 
TheAmazingAudioEngine 一个声音库 包装了CoreAudio 
AudioStreamer 音频流播放库 支持Mac 
SimpleAudioEngine 一个简单的播放声音的库 
DOUAudioStreamer 豆瓣的音频流播放 
audiograph 一个AU的教程 & 示例工程~ 
NVDSP 一个iOS上的DSP处理 
Blip-Synth 一个Blip声音合成器 
PGMidi 一个Midi库 
sc_listener 检测系统声音等级的库 
ObjectAL-for-iPhone 一个OpenAL的包装库 比较好用 
SoundBankPlayer 一个仿SoundFout的库 但更简单 
Finch 对底层的OpenAL包装 
SoundManager 很简单的Sound播放管理 
OrigamiEngine 音乐播放引擎 支持 flac, cue, mp3, m4a, m3u 
libpd 一个用PD来创造音乐的库? 纯C 
pd-for-ios 同libpd 
RCTMidiLib 一个Pad连接Midi设备通信的包装 
octave 一个免费的音效库 包括48个UI音效 
RBDMuteSwitch 在iOS5上检测是否静音 
sfArkLib 转换sfArk和sf2的库 很简单 
sfArkXTm 简单解压sfArk的一个cpp 
unsfark 和上面sfArkXTm一样,是老一点的纯C版本 
MuseScore 一个跨平台的音乐软件~ not iOS 
OpenSFZ 一个SF2的处理库(Github上有详细说明) An Open SFZ player & SF2 based on SFZero 
alsaplayer 一个Linux下PCM库 有sf2 midi等处理过程 游戏 
cocos2d-iphone 2D游戏引擎 (SpriteKit后来居上了..) 
cocos2d-iphone-extensions cocos2d的扩展 
smooth-drawing cocos2d中画出平滑的曲线 
tiny-wings 仿TinyWings的Demo 用Cocos2D 
Tiny-Wings-Remake-on-Android 如题. 
tweejump 是小鸟就跳100层 Game 
wizardwar 一个很完整的2D小游戏,支持对战,已在AppStore上架 
Sparrow-Framework 开源游戏引擎 2D 1.0版 
Sparrow-Framework 开源游戏引擎 2D 2.0版 图像 GPU OpenGL 
GPUImage 基于GPU的实时图像视频处理 
XBImageFilters 一个GPU实时处理的库 类似GPUImage 
CeedGL 一个OpenGL的包装 用起来更方便 
rend-ios 一个OpenGL的轻量包装 接近UIKit 
GLView 在UIView的包装 方便使用OpenGL 
sift-gpu-iphone 一个包装GL用的,不知道干毛的 
ShaderManager 如题 一个Manager 管理创建Shader 
GLImageProcessing 演示如何用GPU处理图片 
FRD3DBarChart 用OpenGL绘制的3D柱形图 
EarthView 显示3D地形图 用OpenGL 
CoreAR 一个挺有意思的AR 
VRToolKit 一个虚拟现实的库 图像处理 
NYXImagesKit 一套图像处理的库 加在UIImage上 
ios-image-filters UIImage扩展 类似PS的功能 用CoreImage 
vImageCategory UIImage扩展 简单的一些处理 
MGImageUtilities 几个简单的图片处理 UIImage 
UIImageAdjust 一些UIImage的扩展 如亮度 模糊等 
CKImageAdditions 一些UIImage的不错功能~ 
UIImage-BlurredFrame 仅模糊图片中的一块区域~ 
LBBlurredImage UIImage扩展 可以模糊 不知道性能如何 
FilterKit 为拍照添加滤镜 基于GPUImage 
TCam 用CIFIlter实现的类似Instagram的类 
CLImageEditor 一个功能齐全的图像处理(滤镜/曲线/裁减/旋转/等等~) 
PKCoreTechniques CA和CG的特性演示 
UIImage-Categories UIImage的一些扩展 
uiimage-dsp UIImage模糊的一些方法 
UIImage-Sprite-Additions UIImage取Sprite~ 
iOS-Scratch-n-See 类似结冰玻璃用手画开的效果~ 
OBGradientView 一个渐变色的CALayer 比系统的好用些 
ANImageBitmapRep 一些Bitmap处理的方法 
KGNoise 产生带噪音的Image 支持Mac 
KGNoiseColorTester 上面KGNoise的演示 
SQRiskCursor 一个用CA和UIControl自定义控件的例子 
AmazeKit 据说是为PNG加速 或自己画 主要为控件提升性能的 
UIImage-PDF 如题 UIImage来显示PDF 
JMNoise 给UIView添加Noise噪音的 
SWSnapshotStackView 图片加上Stack外框 
RMShapedImageView 一个UIImageView的子类 能忽略透明地方的点击 
MOOMaskedIconView 一个通过Mask显示Icon的库 只要一个Mask 可以生成很多风格的Icon 类似Tabbar 
FTAssetRenderer 运行时的图像Mask生成? 
wolfpack 图像处理库CI CG 
DSGraphicsKit 支持图片常见处理 视图控制3D等 
uiimage-from-animated-gif 显示gif 
cam 一个AVFoundation的封装、照相等功能 
Filtrr 几个Filter 速度也不行 
ZXingObjC ZXing 二维码/条形码处理 颜色 
uicolor-utilities UIColor扩展和色板 
color 一系列UIColor扩展 
ColorUtils 一个UIColor扩展 
ColorConverter RGB和HSL转换 
InfColorPicker 一个色彩选择器 
RSColorPicker 一个不错的色彩选择器 有放大镜 
colorpicker 一个很强大的ColorPicker 包装了挺多东西 
ColorPicker 功能很棒的一个取色 
ILColorPicker 一个还算标准的ColorPicker 
NPColorPicker 一个HSV三角取色器 
KZColorPicker 又一个HSV圆盘取色器 
Color-Picker-for-iOS 一个简单的单色Picker 有一个滑块 
LEColorPicker 一个ColorPicker可以取到图片的主色调等 
UIColor-converter 一些UIColor的工具~~ 
SUColor 提供2K多的日本色 
Colours-for-iOS 提供不少常用色 和几个方法 
ColorArt 类似iTunes的 取一幅图画的主要背景颜色等 (这是个Mac功能) 
iOS7Colors iOS7的几种常用颜色 绘图库 
iOSPlot 画饼图/折线图的库 用CA 
PNChart 扁平风格的折线图/柱形图 
TEAChart 扁平风格的饼图/柱形图 
ios-linechart 简单好用的饼图/折线图 
JYRadarChart 雷达图(螂蛛网图), 风格多样 
Core-Animation-Pie-Chart 用CA画饼图 示例 
MSSimpleGauge 扇形仪表盘 
FBDigitalFont LED液晶效果荧光字体,用CG实现 
FBGlowLabel LED液晶效果荧光字体,UILabel 
ADGraphView 一个CG绘画库 股piao曲线演示 
SVGKit 一个用CA来呈现SVG图片的库 
Smooth-Line-View 用QuartZ画出平滑的曲线 
Smooth-Line-View 用上面的库搭建的比较完整的画板功能 有取色器等 
SignatureDemo 一个QuartZ 触摸画平滑曲线的Demo~~~ 
DynamicGraphView 动态折线图 
XYPieChart 饼图~有动画 
Animated-Paths 动画画出文字和图形的轮廓~ 动画/效果 CA 
CA360 一套完整的CA动画Demo 
Core-Animation-Fun-House 一套CA动画展示Demo 
Core-Animation-Demos 一套CA动画Demo 
EnterTheMatrix CA动画演示Demo 
ftutils 一套CA的Util库 有一些常用动画 
Dazzle 用CA实现的各种有趣的粒子效果 
AGGeometryKit CA和3D效果等 
RBBAnimation 基于block的CA动画 动画曲线 
NSBKeyframeAnimation 那些jQuery带的动画速率曲线 
CAAnimation-EasingEquations 一些CA没有的动画曲线 
UIView-EasingFunctions UIView的动画曲线~~ 
PhysicsAnimation 物理动画,用Chipmunk实现的重力效果等 
DPMeterView 有重力感应的2D图形动画(例如瓶子的水) 貌似挺有意思~~ 
Parallax iOS7的景深背景动画效果 一般.. 
MTAnimation 25种动画曲线


你可能感兴趣的:(实用,未来,进步)