转载:http://blog.csdn.net/xiaoyuertongxue/article/details/46982879
图片浏览控件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种动画曲线~