iOS常用第三方库

下面是一些比较流行的第三方库:
 

UITableView组件化库  M80TableViewComponent (0.1.0)

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看上去是一个不错的调试工具,可以在电脑浏览器上远程调试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
UIAlertView-Blocks
 
多看阅读
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
ziparchive
 
微信
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值