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

这是一个肌球蛋白,拖着一个内啡肽,走在一个单纤维上,然后大摇大摆的走过你的大脑皮层,这是让你产生快乐的物质,它为了让你开心每天辛苦的拖着这个大东西,你还有什么理由难过呢?


快乐的劳动者.gif

1.图像

图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存。可对图片进行缩放等操作。

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

首先整理了一份Github上排名靠前的iOS库(大概600个repos)

1.HTTP

相比较之下,AFNetworking是目前最优秀的一个了:轻量、易用、使用者多、开发者有在积极维护。在AFN出现之前,这个角色是由ASIHTTPRequest扮演的,只是到现在年久失修了。关于AFN和ASI的对比,这里有一篇不错的文章除此之外,MKNetworkKit和RestKit也有一定的使用者。

2.Socket

CocoaAsyncSocket无疑是目前封装得最完善的Socket库了:支持异步TCP/UDP,支持GCD,Objective-C接口封装。目前没有发现可以与之相比的同类产品。

3.JSON

JSONKit算是第三方中最优秀的一个了:性能很高,文件少。在JSONKit之前,SBJson非常非常流行,但是SBJson性能够差,只是由于历史原因仍然存在在某些工程里面。如果工程只需要支持iOS5以上的系统,那就可以放弃那些第三方Json库了,直接用系统提供的NSJSONSerialization,性能比第三方的好,又是官方API。

4.XMPP

现在做个实时聊天,XMPP协议算是很成熟的方案了。XMPPFramework一个很不错的选择,可以直接和OpenFire服务器打交道。项目不大人手不多的话,可以看看这个。

5.基础工具类

SSToolkit算是一个不错的工具包,提供各种比如编码、加密、字符串处理等等东西,还提供了一些不错的自定义控件,并且文档非常齐全。

6.框架

过去有很多人再用three20,这个东西太大太重,文档又少,到头来连Facebook都停止维护了。作为替代品nimbus现在流行了开来,关键在于它文档齐全。国内有个MVC框架叫BeeFramework,号称是顶级框架并且功能超过nimbus,有兴趣的可以看一下。ReactiveCocoa把响应式编程这种上流的东西带了过来,值得试一试。

7.数据存储

还是挺多人(比如我)喜欢直接跟SQLite打交道的,这方面FMDB封装的很不错。如果用CoreData来做存储的,可以用一下MagicalRecord

8.图像处理

GPUImage无疑是这方面的集大成者了。用OpenGL ES2.0来实时处理图片和视频流,性能和功能都是顶尖的。

9.开发和调试工具

PonyDebugger看上去是一个不错的调试工具,可以在电脑浏览器上远程调试iOS程序、查看试图层次、网络等等。CocoaLumberjack是个Log工具,号称是可以提供企业级Log,使用者也挺多。

3.为了了解一下目前第三方库的普及程度,下面列举一些知名App对第三方库的依赖。

项目名称 所依赖的第三方库
微信 cocos2d、EGOTableViewPullRefresh、Facebook iOS SDK、JSONKit、SBJson、ziparchive
QQ ASIHTTPRequest、FMDB、CocoaAsyncSocket、JSONKit、MBProgressHUD、OpenUDID、SBJson、SVPullToRefresh
淘宝 MAZeroingWeakRef、MBProgressHUD、ABContactHelper、ASIHTTPRequest、CocoaLumberjack、EGOTableViewPullRefresh、FMDB、GTMBase64、JSONKit、SBJson (json-framework)、RTLabel、SDWebImage、SVPullToRefresh、three20、ziparchive
微博 ABContactHelper、AFNetworking、ASIHTTPRequest、DACircularProgressView、DDProgressView、DTFoundation、fmdb、JSONKit、SBJson、MBProgressHUD、MTStatusBarOverlay、OpenUDID、SFHFKeychainUtils
百度地图 AFNetworking、GTMBase64、JSONKit、MBProgressHUD、RNCachingURLProtocol、SDWebImage
网易新闻 AppleReachability、ASIHTTPRequest、EGOTableViewPullRefresh、GTMNSString+HTML、MGTemplateEngine、MPOAuth、RegexKitLite、SDWebImage、SSZipArchive、wax
多看阅读 FMDB、ASIHTTPRequest、FreeType、JSONKit、Objective-Zip、Skia (Google)、MBProgressHUD
人人 cocoaasyncsocket、ZipArchive、MBProgressHUD、JSONKit、GTMBase64、MKNetworkKit、HPGrowingTextView、zxing
Pinterest AFNetworking、AFHttpClientLogger、Facebook SDK、iRate、MAKVONotificationCenter、SDWebImage、SFHFKeychainUtils、SSPullToRefresh、SVProgressHUD、TTTAttributedLabel、TTTLocalizedPluralString、UIAlertView-Blocks
iWork三件套 MOKit、Boost C++ Libraryprotobuf、OpenGL Mathematics、SQLite、cephes math library
Garageband MurmurHash、libpng、zlib、SBJson (json-framework)

可以看到,这些大型的App的依赖都很混乱,所以稍微解释一下。这些大公司都有一个iOS团队来协同开发,团队成员的水平也参差不齐。有时由于历史原因,例如某个App的某个组件依赖了ASIHttpRequest,但之后的新人改用了AFNetworking,就造成上面这种比较混乱的库依赖关系。这就造成难以维护、代码冗余等问题了。所以,引入一个第三方库一定要慎重考虑,如果可能,尽量自己开发和实现相应的功能,第三方库尽量只作为参考。小团队或者个人开发者可以不必过多考虑,开发速度优先。*


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335

推荐阅读更多精彩内容