27 款 iOS 开源库 分享

开发者们花费大量宝贵的时间创造出如此惊人的东西,然后与其他人分享,而不要求任何回报。开源作者和贡献者们,真的非常令人钦佩!!!

本文例举了一些 iOS 开源库。
多数库支持 CocoaPods,所以很容易把它们加到你的 XCode 项目中。


以下列举的27 款 iOS 开源库,让你的开发溜到飞起

1. DZNEmptyDataSet

空白提示(提高 用户体验)

这是 iOS 内建的标准,用于处理空表和集合视图。默认情况下,如果你的表视图是空的,屏幕上什么也不会显示。它给予的用户体验还不算最佳。

使用这个库,你只需要一些协议,iOS 就会很好地处理集合视图,然后合理美观地显示出用户信息。你不需要为每一个 iOS 项目费心。



CocoaPods:

pod 'DZNEmptyDataSet'

github地址:https://github.com/dzenbot/DZNEmptyDataSet





2. PDTSimpleCalendar

📅日历

你的应用需要一个好看的日历组件吗?现在你有了 — PDTSimpleCalendar 可以说是最好的 iOS 日历组件。你可以通过许多方法定义它,包括工作逻辑和视觉效果。



CocoaPods:

pod 'PDTSimpleCalendar'

github地址:https://github.com/jivesoftware/PDTSimpleCalendar





3. MagicalRecord

数据库

有人说 Core Data 简单。也有人说它不仅简单而且美观。呵,得了吧,说的是苹果吗?巨多的封装代码被添加到工程里面并不会非常优雅和简单的,更别提要添加、删除和更新如此多的实体、保存上下文,为不同的环境创建不同的 Core Data 栈等等等等这些事情了。我当然也很喜欢 Core Data, 但苹果公司真应该用更好的方式把它简化一下了 — MagicalRecord 的方式就可以。

MagicalRecord 就像是针对 Core Data 的一个封装,隐藏了所有跟开发者无关的东西。如果你用过动态记录模式(例如, Ruby on Rails 就有用到)的话, 那这个非你莫属。如果你的应用里面也使用到了 Core Data,那我真的非常非常推荐这个库。



CocoaPods:

pod 'MagicalRecord'

github地址:https://github.com/magicalpanda/MagicalRecord





4. Chameleon

色彩框架

如果你正读到这个,那么比起设计师,你可能会是一个更好的程序员。而这个就是为你准备的。

Chameleon 是一个 iOS 的颜色框架。它扩展了 UIColor,加入了漂亮的、现代扁平化风格的颜色。它也让我们可以从由我们自己定义的颜色创建出调色板。通过阅读 readme,你会发现它还能做很多其它的事情。如果你想要的是一个漂亮的应用程序,绝对要把这个库添加到代码工程里面。



CocoaPods:

pod 'ChameleonFramework'

github地址:https://github.com/ViccAlexander/Chameleon





5. Alamofire

Swift网络库

Alamofire 是一个写在 Swift 上的十分美观的网络文库。你有使用过 AFNetwork 吗?Alamofire 就是它的姐妹版,但 Alamofire 更新颖,更有型,当然(AFNetwork 是写在 Objective-C 上的)。

是否还需要做一些网络的东西,例如下载,上传,获取 JSONs 等等呢?Alamofire 已经为你准备好了。GitHub 上 8000 人的选择肯定不会错。



CocoaPods:

pod 'Alamofire'

github地址:https://github.com/Alamofire/Alamofire





6. TextFieldEffects

UIT 文本域 优化

你是不是感觉标准的 UIT 文本域有点无聊?我也有这样的感觉——让我们来跟 TextFieldEffects 打个招呼吧! 我不会写太多,只是为你展示一些这个文库可以做到的事例:

是的,这些是简单的下拉插入键。你甚至可以利用脚本里的 IBDesignables!



CocoaPods:

pod 'TextFieldEffects'


Carthage:去中心化的Cocoa依赖管理器
Carthage:

github "raulriera/TextFieldEffects"



github地址:https://github.com/raulriera/TextFieldEffects





7. GPUImage

以 BSD 协议放出,能够在图像、实时摄像头影像和视频上使用 GPU 加速的滤镜和其他效果。

你是否有创建过相机APP的经历?如果没有,你一定会在不久之后遇到这个库的。

GPUImage为我们提供了由GPU加速的相机预览效果(包括图像和视频),速度极快。 在App Store有数百个APP已经使用这个库——我其中的一个也使用了:

我的一个使用GPUImage的APP。

8869 stars on GitHub and still counting.在GitHub上有8869颗星,并且还在不断增加中。



CocoaPods:

pod 'GPUImage'

github地址:http://github.com/BradLarson/GPUImage
(GPUImage:iOS上开源的基于GPU的图像视频处理框架)





8. iRate

获取用户更多评论

在App Store中获得更多评论的最好方法是什么? 我没有实际数据来回答这个问题,但如果我不得不猜测的话,我会说直接去问用户。也许这么做是一个很老式的方式——大多数开发人员现在创建自定义的App提示窗——但如果你没有时间或你不想一切从头开始,最好是使用iRate而不是不用。iRate是这样的:一个你可以包含到你的工程中,并且不需要考虑要求用户评论的小型库——iRate将会在合适的时机自动完成这个。



CocoaPods:

pod 'iRate'

github地址:https://github.com/nicklockwood/iRate
(iRate:一个便于使用的类库,可用于督促在iPhone、Mac应用商店下载并使用你的app用户给你推荐)





9. GameCenterManager

帮助管理 iOS 和 Mac 应用的游戏中心。报告和记录高分,成就和不同的玩家。

不管你喜欢或讨厌单例子,在这里通过我们最熟悉的 anti-pattern (反模式)管理 Game Center 都是一件非常简单的事(你的游戏里只有一个Game Center在,不是吗?)

老实说,vanilla-managing 在 iOS 中管理 Game Center 并不是很难,但是使用这个库就更加简单和快捷了。好上加好的体验。

我正在我的一个游戏项目中使用它,它带给我愉快的体验。



CocoaPods:

pod 'GameCenterManager'

github地址:https://github.com/nihalahmed/GameCenterManager





10. PKRevealController

侧滑:左右抽屉效果
⭐️同类型推荐:RESideMenu

这个是我最喜欢的 iOS 控件之一,它就像一个宝石。PKRevealController 是一个侧滑的菜单(左,右,或者同时),滑向哪边是看你的使用习惯(或者仅仅通过一个按钮,但是这样看起来并没有像滑动那样的 Cool)。

关于类似功能,我尝试过不少其他的库,但是 PKRevealController 给我的感觉是最好的,非常简单的设置,高度的自定义,手势的识别非常好。这个真的可以被包括在 iOS 的 SDK 中,作为一个标准库。



CocoaPods:

pod 'PKRevealController'

github地址:https://github.com/pkluz/PKRevealController





11. SlackTextViewController

Slack 是聊天群组 + 大规模工具集成 + 文件整合 + 统一搜索。
截至2014年底,Slack 已经整合了电子邮件、短信、Google Drives、Twitter、Trello、Asana、GitHub 等 65 种工具和服务,把可以把各种碎片化的企业沟通和协作集中到一起。

关于“slack”的介绍


你使用过 Slack iOS 的 App 吗?如果你在一个大型的软件公司工作,可能答案是肯定的。但也有一些人尚未接触 Slack。 Slack 的 iOS App 非常强大,尤其是它的自定义文本输入控件…这里有一段代码,你可在 APP 中使用!

需要自动增长的文本区域?验证下。需要手势识别、自动完成、多媒体粘贴? 验证下。需要易于方案集成?验证下。你还可能需要什么其他功能呢?



CocoaPods:

pod 'SlackTextViewController'

github地址:https://github.com/slackhq/SlackTextViewController





12. RETableViewManager

使用数据驱动的 UITableView 内容管理。

RETableViewManager 将帮助您动态创建和管理表视图,自动生成控制代码。 它为我们提供了预定义的单元格(对于 bools,文本,日期等 – 请查看下面的屏幕截图),但你也可以创建自定义视图,并支持与默认的视图一起使用。

所有这些元素,你可以在不使用这个库的前提下在 storyboard 中实现。但有时简单的代码比可视化编辑器更好。



CocoaPods:

pod 'RETableViewManager'

github地址:https://github.com/romaonthego/RETableViewManager





13、PermissionScope

权限作用域

PermissionScope是一个Swift 框架,可以智能地请求用户权。它不仅包含一个简单的许可请求UI,还包含统一的许可API来告诉你任何请求。

该库通过在请求用户之前通知用户有关所需的系统权限,以提供更好的用户体验。更高的接受率->更多活跃用户使用 app->更佳反馈->更好状态->更多下载量。鼎力推荐的 pod。



CocoaPods:

pod 'PermissionScope'

github地址:https://github.com/nickoneill/PermissionScope





14、SVProgressHUD

“菊花转” 进度提升框
同类型推荐:MBProgressHUD

这个图片展示的是正常下载,不用等到更长时间,也不用刷新页面。这就是 SVProgressHUD 在 app 中所呈现的。假如你需要自定义等待提示,这里有一个例子(可能是合适的)。



CocoaPods:

pod 'SVProgressHUD'

github地址:https://github.com/SVProgressHUD/SVProgressHUD





15. FontAwesomeKit

添加字体

Font Awesome 是非常优秀的,使用这个库可以简单地添加字体到你的项目当中,另外还有很多其它方面的功能。



CocoaPods:

pod 'FontAwesomeKit'

github地址:https://github.com/PrideChung/FontAwesomeKit





16. SnapKit

Swift 自动布局

喜欢自动布局(auto layout)?应该是!
至少在 storyboards 中创建的时候是这样的。

在没有帮助的情况下,在代码上创建约束是痛苦的,幸运地是用 SnapKit 你可以很方便地通过声明的方式,来约束你的代码。来看看吧。



CocoaPods:

pod 'SnapKit'

github地址:https://github.com/SnapKit/SnapKit





17. MGSwipeTableCell

UITableView的 可擦除式表格单元

这是另一个在很多应用里经常看到的 UI 模块,Apple 也许应该考虑将之纳入标准的 iOS SDK 里。Swipeable table cell(可擦除式表格单元)——是关于这个产品最好的描述。最好的一个。

展示 三种效果

以上只是3种动画类型,还有更多动画类型,请查阅Readme。



CocoaPods:

pod 'MGSwipeTableCell'

github地址:https://github.com/MortimerGoro/MGSwipeTableCell





18. Quick

单元测试(unit testing):是指对软件中的最小可测试单元进行检查和验证

关于“单元测试”的介绍


Swift 里的单元测试,适用于 Swift(好吧,Objective-C 也能用),已与 Xcode 集成。如果你是 Objective-C 粉,我更推荐 Specta,但是对于 Swift 来说,Quick 应该是最棒的选择。



CocoaPods:

pod 'Quick'

github地址:https://github.com/Quick/Quick





19. IAPHelper

苹果 iOS 应用购买助手 (支付)

应用内置支付给我们带来大量的样板代码,这个库简单封装了大量常见的任务来摆脱那些样板代码。它封装功能都是关于如何将 iOS 用户的钱送到你(或者你的公司)的钱包。


CocoaPods:

pod 'IAPHelper'

github地址:https://github.com/saturngod/IAPHelper





20. ReactiveCocoa

ReactiveCocoa为事件提供了很多处理方法,而且利用RAC处理事件很方便,可以把要处理的事情,和监听的事情的代码放在一起,这样非常方便我们管理,就不需要跳到对应的方法里。非常符合我们开发中“高聚合,低耦合”的思想。

好啊,这里有一个小怪物。

不像这个列表中的其它项,ReactiveCocoa 不小而且不会嵌入项目中。ReactiveCocoa 给我们带来不同的编程风格/架构,它基于信号和数据流。它令人感觉惊奇,不过你得先忘掉以前所学的内容才能理解它的工作原理。这不是一件容易的事情,但值得。

这里并不适合教你 ReactiveCocoa,但是如果你有兴趣,我会给你很好的资源:


CocoaPods:

pod 'ReactiveCocoa'

github地址:https://github.com/ReactiveCocoa/ReactiveCocoa





21. SwiftyJSON

Swfit的Json解析

使得在 Swift 中的 JSON 解析更加简便。



CocoaPods:

pod 'SwiftyJSON'

github地址:https://github.com/SwiftyJSON/SwiftyJSON





22. Spring

动画

使制作动画变得容易、更具表达性,并且可链接。




CocoaPods:

pod 'Spring'

github地址:https://github.com/MengTo/Spring





23. FontBlaster

字体

简化自定义字体加载到 APP 的实现。



CocoaPods:

pod 'FontBlaster'

github地址:https://github.com/ArtSabintsev/FontBlaster





24. TAPromotee

可以让你仅仅通过提供 App Store 的 ID 号,就可以交叉推广到 iOS 的 APP 上。它可以通过 iTunes 的 API 自动获取 APP 的信息。

这是交替宣传 APP 的最佳营销策略之一,它可在 APP 中免费实现。有了这个库,一切操作都变得简单,你会忍不住想试一试的——添加 TAPromotee 到你的的 podfile 中,配置后,就可以免费享受更多下载量了。



CocoaPods:

pod 'TAPromotee'

github地址:https://github.com/JanC/TAPromotee





25. Concorde

图片加载
⭐️同类型推荐:SDWebImage(缓存机制)

你是否在 APP 中加载了大量的 JPEG? Concorde 是一种渐进的加载方式,它可以让图片以更好看的方式加载出来。

加载 更美观



CocoaPods:

pod 'Concorde'

github地址:https://github.com/contentful-labs/Concorde





26. KeychainAccess

钥匙串

iOS设备中的Keychain是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌。


这是一个小助手库,用于管理 Keychain 访问。



CocoaPods:

pod 'KeychainAccess'

github地址:https://github.com/kishikawakatsumi/KeychainAccess





27. iOS-charts

iOS 图表库
⭐️同类型推荐:PNChart(统计图形绘制),支持CocoaPods 😁

最后同样重要的是—— iOS 图表库!它非常实用,也非常优雅,因此我不用过于赘述——你只要滚动下页面,就能知道使用这个项目能为你的 app 做些什么。


是的,一切都可以当成一个简单的(也许可称为“代码嵌入”)组件使用。

遗憾的是目前还没有支持 CocoaPods,所以你需要手工地将项目拖动到你的 Xcode工程里面。
github地址:https://github.com/danielgindi/Charts



总结:

  1. DZNEmptyDataSet [UI, 解决空表显示]
  2. PDTSimpleCalendar [UI, 下拉日历组件]
  3. MagicalRecord [实现活动记录模式 的 Core Data 助手]
  4. Chameleon [UI, 色彩框架]
  5. Alamofire [Swift 网络化]
  6. TextFieldEffects [UI, 自定义视觉的文本框]
  7. GPUImage [快速图像处理]
  8. iRate [获得用户对等级的投票]
  9. GameCenterManager [易于管理的用户中心]
  10. PKRevealController [UI, 侧滑菜单]
  11. SlackTextViewController [UI, 高度可定制的文本框]
  12. RETableViewManager [从代码动态创建表格视图]
  13. PermissionScope [UI, 提前向用户请求系统权限]
  14. SVProgressHUD [UI, 自定义等待图示]
  15. FontAwesomeKit [把 Font Awesome 添到项目变得简单]
  16. SnapKit [在代码中简单地自动布局]
  17. MGSwipeTableCell [UI, 让表格视图的单元格可滑动]
  18. Quick [Swift 单元测试框架]
  19. IAPHelper [内购助手]
  20. ReactiveCocoa [FRP 框架]
  21. SwiftyJSON [Swift JSON 库]
  22. Spring [动画框架]
  23. FontBlaster [在应用中简单地加载自定义字体]
  24. TAPromotee [通过下拉视图全方位推广你的应用]
  25. Concorde [边下载边显示 JPEG 图像]
  26. KeychainAccess [密码管理器]
  27. iOS-charts [漂亮的图表库]



文章内容来源:oschina
链接:http://t.cn/RIos6kl




















goyohol's essay

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念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

推荐阅读更多精彩内容