开发 iOS APP 有一段时间了,期间也用了不少第三方元件,感谢有这些第三方元件,让我提高了开发的速度与品质。趁著今天这个机会,把几个很常用的元件记录下来,给大家作个参考,如果你有在用什么很棒的元件的话,也欢迎留言跟我分享:)

底下这些是我几乎在每个 APP 都会用到的,可说是必备元件:

  • Cocoapods
    用了许多的第三方元件,每个元件都有自己的 dependency,还要三不五时去查看这些元件有没有新版本,对此你感到疲累了吗?Cocoapods 是你的好朋友,有了它之后,以上的问题都不再是问题,它会帮你处理得好好的。底下我提到的所有元件,都可以透过 Cocoapods 管理喔。

  • AFNetworking
    它大概已经是 Mac/iOS APP 开发的业界标准了吧,它帮我们把所有网路连线的麻烦事都处理掉了,而且它的架构漂亮有弹性、功能又强大,更重要的是它一直有在更新。所以别犹豫了,只要开发的 APP 需要网路连线,用它就对了。

    如果你觉得 AFNetworking 太过复杂或强大,你也可以试试看 MKNetworkKit,它相对简单许多,该有的功能也都有,已经能够满足一般的需求。那为什么我比较推荐 AFNetworking 呢?因为一来支援它的延伸套件比较多,二来是这个作者更新比较勤快。

  • SDWebImage
    有很多时候我们必须从网路下载图片(例如显示头像、显示网路照片),这个元件可以让我们很轻松的处理这项工作,不用担心快取、图像解码等问题,而且它还可以自订快取大小、过期时间、以及其他比较细节的调整。附带一提的是,它让 UIImageView 能够显示 GIF 跟 WebP 格式的图档。

    另外,作者也写了一篇 How is SDWebImage better than X?,你可以看过之后再决定要不要用它。

  • Mantle
    现在越来越多的 API 都是采用 JSON 格式传资料,所以我们在跟 server 沟通的时候,就需要将 JSON 格式转换成我们自己的 Object,或是将我们的 Object 转换成 JSON 格式。转换的过程其实不难,只是一段又一段类似的程式码看起来就是既无趣又冗长。

    还好现在有了 Mantle,让我们可以轻松的在 JSON <-> Object 之间自由转换,对于一些常见的型态(例如字串或 URL)它都已经内建转换规则了,若是有特殊情况,我们也可以自订转换规则。

  • Nimbus
    它的前身就是 Three20,但它不只是改名字而已,而是彻彻底底的大改变,最大的改变就是它的文件齐全了。说穿了 Nimbus 就是一堆好用元件的大补帖,你可以挑自己需要的元件来用。

    我最喜欢它的 NIModel 元件,它让 UITableView 的 dataSource 跟 delegate 不再跟 View Controller 混在一起,整个架构切干净了。当你需要在一个 View Controller 里头复杂一点的 UITableView、或是静态的 UITableView、或是多个 UITableView 的时候,就能体会它带来的好处。

  • BlocksKit
    自从 Clang 支援 Blocks 之后,Blocks 就变成我最喜爱的特性之一。适当的使用它,会让程式码看起来更好读也更简洁。BlocksKit 则是将 Blocks 特性带到了 Objective-C 的所有基本元件上。

  • ViewDeck
    由于装置萤幕尺寸的限制,滑动显示左/右侧选单几乎成了大多数 APP 的基本介面(例如 Facebook),ViewDeck 提供了这种介面的基本架构,你只要把自己的 View Controller 放进去就可以了。

  • SSPullToRefresh
    喜欢下拉更新吗?SSPullToRefresh 提供一个简单的介面让你完成这个功能。

  • SVProgressHUD
    由于受到网路连线速度或是装置处理资料速度的限制,所以 APP 里头有许多动作是不同步的,因此我们需要适时的提示使用者。SVProgressHUD 就是一个简单又够用的提示器,它可以显示代表忙碌的旋转指示器、进度提示、一个图示、或一小段文字。

底下这些元件不是那么必备,但时常有机会用到:

  • iRate
    一个提示使用者到 App Store 帮你的 APP 写评语打分数的小工具。

  • iVersion
    自动检查 App Store 上有没有新版的 APP,有的话就提醒使用者去下载,同时也可以显示版本更新纪录。有一些使用者就是都没有在更新 APP 的,有了这个小工具,或多或少可以提高使用者更新的意愿。

  • Routable
    有的 APP 的画面架构非常复杂,点了这个按钮可以切换到这个画面,点了那个选单又可以切换到那个画面,不管是写程式码还是透过 Storyboard 切换,都是一整个纠结啊!还好,现在有了 Routable 之后,切换画面就像在切换 URL 一样简单。

  • PSTCollectionView
    iOS 6 推出了一项很吸引人的新功能,名叫「UICollectionView」,可惜它是 iOS 6 以上才能用,而且它有一些奇怪的问题存在。因此国外有神人开发了这套 PSTCollectionView,不仅完全相容 UICollectionView,而且 iOS 4/5 都能用,也没有官方的那些问题存在。若你想要显现漂亮的排版又想兼容 iOS 5 的话,绝对要试试看这个元件。

  • SSKeychain
    它将苹果复杂难用的 keychain 包装起来,让使用者可以轻松取用。若是有储存帐号密码等需要加密的资料时,这会是一个好工具。

  • ShareKit
    希望使用者多多分享你的 APP 所提供的内容吗?试试看 ShareKit!它内建了分享到多种网路服务的功能,你可以只挑你想要的来用。

  • LineKit
    想要分享资料给 Line 上朋友,可是 ShareKit 却没提供这个功能怎么办?没关系,试试看 LineKit


当然还有一些我用过的第三方元件没有写进来,不过上述这几个应该已经满足绝大多数的使用情境了,哪天我有想到其他好用的元件再补上来吧。

对了,ManiacDev.com 这个网站时常会介绍一些好用的第三方元件,有兴趣的朋友可以来这里挖宝。

你有自己推荐的元件吗,记得要留言跟我分享喔!

相关文章