我热爱开源 更喜爱那些花费宝贵的业余时间来创造奇迹的开发者们 感谢他们将自己辛苦劳动的成果无偿分享给大家。开源作者和贡献者们 你们太了不起了 感谢你们所付出的一切。
鉴于我是收集不全会死星人 这里我根据个人喜好选取了一些iOS的开源库。这些项目的顺序完全随机 每个都棒到爆。绝大多数支持CocoaPods 所以将它们添加到你的Xcode项目中只是小事一桩。
在本文末尾你可以找到一个长文慎入版本——一个只包含题目与项目链接的简单列表。如果你觉得这篇文章有用的话 请把它分享给其他做iOS开发的小伙伴们 好酒也怕巷子深。
DZNEmptyDataSet算是一个很标准的iOS内建方式 适合用来处理空的table view和collection view。默认情况下 如果你的table view为空 屏幕就为空 这样一来用户体验并不理想。

使用这个库 你只需遵守一些协议 iOS就会自动将collection view处理完善 并将用户消息以合适美观的方式显示出来。每个iOS项目都可以自动处理 不用再一一费神。
你的应用需要一个简单美观且正常运行的日历组件吗?现在有了——PDTSimpleCalendar也许可以算是iOS最棒的日历组件了。你可以在各个方面对它进行定制 无论是运行逻辑还是外观方面。

他们都说:Core Data简洁易用。他们又说:很棒很好用噢。哈?真的吗 苹果?添加到各个项目中的大量样板数据完全不符合简洁而易用的标准。更别提添加、移除和更新那一大堆的entities、保存context、按不同环境创建不同的Core Data堆栈等等。当然 我很喜欢Core Data 但是苹果真的可以把它更好地简化一下——使用MagicalRecord方式。

MagicalRecord就像是给Core Data提供了一层外包装 隐藏掉所有不相关的东西。如果你曾经使用过active record模式(比如Ruby on Rails) 你就知道了。倾情推荐 在应用中使用Core Data的童鞋们可一定要试试。
4. Chameleon
如果你已经看到这里了 我猜你更有可能是个程序猿 而不是设计狮。这里有个东东很适合你。

Chameleon是一个iOS的色彩框架。它运用现代化flat color将UIColor扩展地非常美观。还可以通过它运用自定义颜色创建调色板。它还有很多功用 请浏览readme。如果你想要应用美观的话 一定要把这个库加到项目里。

5. Alamofire
Alamofire是一个简洁的网络库 用Swift语言编写。你是否曾经使用过AFNetworking呢?Alamofire是它的小弟。更年轻更时尚 当然(AFNetworking是用Objective-C编写的)。

如果你需要进行网络的相关工作 诸如下载、上传与获取JSONs等等的话 Alamofire正是你所需要的。GitHub上8000人次推荐 一定不会错。
你不觉得标准的UITextField有些枯燥么?我也这样想——来认识一下TextFieldEffects吧!废话不多说 只要看几个例子:



是啊 都是些简单的dropin控制器。你甚至可以在storyboard中使用IBDesignables。
不幸地是:这个库不支持CocoaPods(如果你来自未来 而这一情况什么时候会改变的话 一定要在Twitter上告诉我) 但是它支持Carthage。你只管从GitHub上下载项目 把它放入你的workspace就行了。
7. GPUImage
你曾经写过照相机应用吗?如果没有的话 很快你一定会遇到这个库的。

GPUImage为提供了一个GPU加速的照相机效果(同时支持照片与视频) 而且处理速度飞快。在App Store中 使用这个库的应用数以百计。我有一个应用也用到了GPUImage。 它在GitHub上获得了8869个star 而且还在增长。

8. iRate
想要在App Store中获得更多评论的最佳方式是什么?想要回答这个问题 我缺乏切实数据 但如果必须猜一下的话 我会建议问问用户。也许这样做有点老套——大多开发者现在都有创建定制的应用内置alert。
但是如果你没有时间 或者不想从头实现的话 最好用一下iRata。这个就是iRata——一个小型库——你可以把它放入项目中 把问卷调查什么的都忘记吧 iRate会在恰当的时候为你解决这个问题。
无论你喜不喜欢单例模式 管理一个GameCenter都比已知的其他相反模式要好很多。(你的游戏只有一个GameCenter 对吗?)

说实话 在iOS上管理GameCenter vanilla并不算难 但是有了这个库会更简单也更快。好上加好不是更好么。

我在我一个游戏中用到了这个 体验很好。
这个要注意 真的很棒!是我最喜爱的iOS控件之一。PKRevealController是一个可以滑动的侧边栏菜单(可向左、向右或者同时向两侧) 只需手指轻轻一点(或者按一下按钮 但是这样滑动时不够炫酷)。

我试过一些可以提供这类控制的其他库 而PKRevealController是最棒的。安装简便 高度定制且对手势识别良好。可以当做一个标准控件用在iOS SDK中。
你曾经用过Slack iOS应用吗?如果你在较大的软件公司工作 也许会用过。对那些没用过的人呢?—?Slack令人激动。用到Slack的应用也是这样 尤其是用作极佳、定制的文本输入控制时。这时你有了一个现成可用在应用中的代码。
自适应文本区域?试一下。
手势识别、自动填充、多媒体合并?试一下。
快速drop-in解决方案?试一下。
其他还想要什么?
RETableViewManager可以帮助你进行动态创建与管理table views。它给提供了预定义cells(bool类型、文本、日期等等——请看下面的截图) 但是你还可以创建自定义views 并与默认视图一同使用。

左侧截图显得非常古板!在storyboard中没有这个库的时候 你能做的就是这些了 但是有时候代码比可视化编辑器要好。
13. PermissionScope
用这个库可以在询问用户前 就告知用户所需的系统权限 为用户带来更好的体验。接受度更高—>更多活跃用户->更高的留存率->数据更好->下载率更高。墙裂推荐pod。

14. SVProgressHUD
这张图片在正常加载 无需等待太久或者刷新页面。这正是SVProgressHUD在你的应用中的表现。如果你需要定制化的等待提示器 这个就是了(也许是最好的)。

15. FontAwesomeKit
Font Awesome很棒 有了它你可以很容易地给项目加字体 使用方式繁多。

16. SnapKit
喜欢自动布局吗?当然喜欢!至少在storyboard中创建时会喜欢。在代码中纯手工创建约束灰常痛苦 但幸运的是有了SnapKit 在board中用上它 你可以简单直观地编写约束了。

17. MGSwipeTableCell
这是另一个常见于很多应用中的UI组件 苹果应该考虑在标准的iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod的最佳描述 也是最好的。
这只是其中三个动画类型 还有更多变化 请查看readme。
尊贵的董事大人
英文标题不为空时 视为本栏投稿
需要关键字 描述 英文标题