前言第三方库是当今程序员离不开的东西。不仅仅是APP开发,基本上所有的商业项目都会或多或少的用到第三方库。Github上Star>100的开源库数量如下。绝对优势***一定程度上也解释了为什么这几年JS发展这么快不好意思打个招呼OC排名第四,相信这个排名还会上升,Swift还没进前十,不过超越OC指日可待(毕竟我儿子)Xcode基本是Mac/iOS程序员的必备工具(我没用过AppCode不知道有多少人用?)但是你可以说它好用..这个是见仁见智的(和VisualStudio比起来没什么)但是用了插件之后,也能提高很多生产力。接下来我会介绍一些我常用的第三方库和插件。也许数量不多,但必须经过试验和检验。你不能犯错。引入第三方库CocoaPod。CocoaPod并不是iOS上的第三方库,而是一个知名的第三方库管理工具。在CocoaPod出现之前,第三方库的管理是非常痛苦的,尤其是一些大型库(比如nimbus)。每次更新库,可能会很痛苦。CocoaPod的出现解决了这些问题,并以Framework的形式引入了第三方库。节省了大量的集成时间,把Objective-C和Swift统统拿来了(我在Swift上其实没有用过Cathatage,但是它的集成方式还是比CocoaPod麻烦)。iCarousel在iOS4.x时代(我也是从4.0开始接触iOS开发的)Coverflow的效果可以说是风靡一时。初出茅庐的我几乎一头雾水,不知道怎么实现(当年布丁爱情生活等电影资讯app都需要实现Coverflow选择的效果,巧的是,我也要做一个)的样子iCarousel为我解决了一个大问题。从那以后,iCarousel就成了我每个项目(也是我最喜欢的库)的必备良药。无论是Coverflow还是轮播广告,它都可以轻松应对其内置的十几种展示类型,基本可以解决90%的UI需求,强大的自定义功能可以解决剩下的10%:)不熟悉的朋友可以试试它的精美demo(pod试试iCarousel)所有功能都在作者nicklockwoo在demo中看的一清二楚d也是一位高产高手,维护着大量高质量的开源库(比如iVersioniRate)。不妨看看淘一淘。AFNetworking/AlamofireHTTP框架的领导者在与ASIHTTPRequest的竞争中笑得很开心(当然也是因为ASIHTTPRequest的作者不维护,但是国内很多公司由于历史原因自己维护)由于及时维护和拥抱语言的新特性,迅速被大家接受和喜爱。相信大家都用过。我不会在这里详细介绍。AFNetworking是老大,所以MKNetworkKit可以说是小弟。不过因为比AFNetworking更轻量,也赢得了很多开发者的青睐。当时因为ASIHTTPRequest停止维护,偶然在AFNetworking和MKNetworkKit之间选择了后者。很多项目都用过,但可能是因为AFNetworking发展越来越快,加上作者本人是单兵。作者也基本放弃更新(版本号停留在0.8x)。遗憾的是SDWebImage图片是异步下载和缓存的管理大师,UITableView的黄金搭档,其代码已被开发者研究分享过无数次。Kingfisher(可以说是SDWebImage的Swift版本)也深受其影响。异步下载AFNetworking和MKNetworkKit都实现了数据缓存。FastImageCache和TMCache但SDWebImage是唯一可以集成它的。除了sd_setImageWithURL的简单使用,SDImageCache也可以独立使用,功能相当强大。ZXingObjCzxing是Google出品的二维码扫描组件。移植版ZXingObjC就是其中之一。zxing支持各种主流一维码和二维码扫描。它很容易使用。如果小厂要实现二维码扫描的功能,基本都会选择zxing。不过iOS7内置了二维码摄像头,可以扫描。iOS8还内置了二维码静态图片扫描功能。你可能再也不需要使用ZXing了:(MBProgressHUD简单易用,稳定。HUD组件半透明,黑白两色。加载提示最佳选择Masonry/SnapKit***我用的Autolayout手写库(Cartography也不错,但还是不太习惯)帮我轻松跨过了Autolayout的门槛。我也多次在文章中提到过Masonry的使用。如果你还没有用过,不妨看看popFacebook的工程师一直都是神一样的存在,他们对开源社区的贡献也极大的推动了各种语言的发展,比如HipHop到PHPReact到JavaScript,pop到Objective-C等等。HipHop反应Facebook的工程师总是以颠覆的态度开源pop。这点我之前也简单介绍过,pop论文的发布震惊了整个app行业。波普在这一点上也是功不可没。pop也很好地支持自定义动画。我还根据pop的自定义动画写了MMTweanAnimationReactiveCocoa。我很惭愧大名鼎鼎的RAC。对RAC的使用理解还停留在粗浅的阶段,不过这篇文章讲的很详细,如果你想做图像(照片或视频)相关的处理或者只是想像Camera♂的话,值得一读GPUImage,然后你必须学习GPUImage。顾名思义,GPUImage是一个基于GPU的图像处理框架。我们都知道GPU是提升性能的关键。这就是GPUImage如此重要和流行的原因。Lumberjacklog系统是每个项目。一切都应该在那里,Lumberjack是日志系统中的领导者。您可以简单地将其用作NSLog的替代品(简而言之,Lumberjack比NSLog更快)或者根据您的需要创建更强大的日志系统。NSLogger从名字上可以看出,NSLogger也是一个日志系统。它的特点是自带强大的DesktopViewer,可以方便的查看APP产生的日志(支持分级过滤等,甚至可以直接记录一张图片)。AwesomeMenu诞生于过去Path优美的设计和精彩的动画让很多人闭嘴。最让人佩服的是,它的弹出式菜单成为了各个APP争相模仿的对象。有了AwesomeMenu,你就可以轻松实现。MMDrawerController普通侧滑MMDraweformenusrController将领域作为数据存储的一等公民。CoreData的地位不言而喻。但是因为使用起来不方便,出现了MagicalRecord等辅助类,甚至是fmdb等纯SQLite基础的库。Realm是一个挑战者。不仅读取速度更快(据说是CoraData的数倍),界面简单易用(以对象的形式使用数据和leancloud的思路很相似)而且是还可以跨平台(iOS/Android可以用OC/Swift)/Java都支持)如果你习惯使用Mantle等Modal转换,那么Realm-JSON一定会让你满意。作为YCombinator的孵化项目,其质量还是可以保证的。至少我试过了,真的给了我很大的惊喜。API的设计或者数据对象的定义甚至数据库的版本升级都非常方便)Xcode插件Alcatraz类似CocoaPod等等)FuzzyAutocomplete如果我只需要选择一个插件保留,它必须是FuzzyAutocomplete。强大的模糊匹配输入让你编写代码时不用担心记住这么长名字的对象或函数的名字。想哭XAlign作为一个有洁癖的coder,看到不对齐的代码肯定受不了,XAlign可以轻松解决你的烦恼Canonicalcomments(目前基于Javadoc)deriveddata-exterminator如果你总是遇到Xcode抽搐提示你删除某个目录下的文件由于某些原因,否则您将无法编译,那么您一定会被这个插件所感动,因为您不是唯一遇到此问题的人。Xcode-Quick-Localization多语言在iOS开发中一直不是很方便。有了它,你可以省去很多麻烦。Backlight-for-XCode就像Xcode中默认的80个字符的分页提示。突出显示当前正在编辑的行也是一个友好的提醒。喜不喜欢因人而异我会持续更新这个榜单只要有优秀好用的我都会补充
