33 款主宰 2017 iOS 开发的开源库

1、IGListKit
https://github.com/Instagram/IGListKit


由 Instagram 开发人员制作,IGListKit 是用于构建快速灵活列表的数据驱动型的 UICollectionView 框架。

此外,它可以帮助你在应用程序中避免大量使用视图控制器的情况。可查看 Ray Wenderlich 上的关于在你的项目中实现该库的教程,或者从 Rodrigo Cavalcante 中看看关于将现有的 UITableView 迁移到 IGListCollectionView 的方法。

2、Realm
https://github.com/realm/realm-cocoa


Realm 是一款移动数据库,可直接运行在手机、平板电脑和可穿戴设备中,它不仅适用于 iOS。

如果你想尝试与 Core Data 不同的东西,可以试试使用 Realm 。许多人说,它是一种现代化的、高效率的用于原生苹果解决方案的替代物。

3、Moya
https://github.com/Moya/Moya


Moya 是你的应用程序所缺少的网络层。你不用思考将网络请求放到哪里(以及如何放),Moya 会帮你处理这些问题。

4、SwiftyJSON
https://github.com/SwiftyJSON/SwiftyJSON
Swift 中的 JSON 解析之王。

将下面内容:


转换为这种格式:


可选封装会自动为你完成。

5、Valet
https://github.com/square/Valet
Valet 可以帮助你实现将数据安全地存储在 iOS 或 OS X Keychain 中,而无需了解任何 Keychain 相关的工作原理。它支持在单个设备上的多个应用程序(同一开发者)之间共享数据,并在具有 iCloud 的设备上的实现跨设备的数据共享。它还支持 Touch ID。

6、Firebase Analytics
https://firebase.google.com/docs/analytics/ios/start


它(由 Google 出品)可能是 iOS 上最好的免费分析解决方案。包括跟踪应用程序使用量、用户活跃度,以及事件;设置用户属性;创建自定义受众;和一些其他功能。

7、AsyncDisplayKit
https://github.com/facebook/AsyncDisplayKit


Facebook 为他们的 app Paper创造了这个异步 UI SDK。如果你想让你的 app 总是每秒用 60 帧的速度来渲染,一定要看看这个库。 这儿有一篇来自 Buffer 团队的故事。

8、DZNEmptyDataSet
https://github.com/dzenbot/DZNEmptyDataSet


通常用户安装一个 APP 后,会看到一个空的 UITableView 。DZNEmptyDataSet 可以通过提供默认的 Empty Data Set Pattern 的实现来回避这个问题。

9、Chameleon
https://github.com/ViccAlexander/Chameleon

Chameleon 是一个轻量却功能强大的 iOS 颜色框架软件。它基于的理念是:软件应用程序应该可以不费力气且同时保持多个漂亮的界面。

使用 Chameleon ,你不再需要调配 RGB 值,不用浪费时间去找你的 APP 合适的颜色组合,也不用担心你 APP 的文字是否能在不同背景色上可读。

10、PermissionScope
https://github.com/nickoneill/PermissionScope

PermissionScope 是一个用于智能请求用户权限的 Swift 框架。 它不仅包含一个简单的用户界面来请求权限,还包含一个统一的许可 API ,可以告诉你任何指定的系统权限的状态或轻松地对它们发起请求。

11、FileKit
https://github.com/nvzqz/FileKit


FileKit 是一个 Swift 框架,提供简单而富有表现力的文件管理。使用示例:http://github.com/nvzqz/FileKit#paths

12、SwiftyUserDefaults
https://github.com/radex/SwiftyUserDefaults
SwiftyUserDefaults 让 user defaults 用起来很愉悦,通过结合极具表现力的 Swifty API 和静态输入的优势。在一个地方定义键,轻松地使用值类型,并免费获得额外的安全性和方便的编译时检查。

13、Kingfisher
https://github.com/onevcat/Kingfisher


Kingfisher 是一款轻量级的纯 Swift 库,用于从 Web 上异步下载和缓存图像。

特性

  • 异步图像下载和缓存

  • 基于 URLSession 的网络。提供基本图像处理器和滤镜。

  • 用于内存和磁盘的多层缓存。

  • 可取消下载和任务处理以提高性能。

  • 组件独立。可按需分别使用下载器或缓存系统。

  • 预先获取图像并在必要时将其从缓存中显示出来。

  • 包含 UIImageView、NSImage和UIButton扩展,可直接从 URL 设置图像。

  • 设置图像时可内置过渡动画。

  • 可扩展的图像处理和图像格式支持。

14、Hero
https://github.com/lkzhao/Hero


Hero 是构建 iOS 视图控制器过渡动画的库。它在 UIKit 繁琐的过渡动画 API 之上提供了一个层,使得自定义过渡动画对于开发人员来说是一个轻松的任务。

15、Hedwig
https://github.com/onevcat/Hedwig


Hedwig 是一个 Swift 包,提供一组高级 API,可以让你轻松地发送电子邮件到 SMTP 服务器。如果你打算在下一个神奇的 Swift 服务器应用里发送电子邮件,Hedwig 可能是一个不错的选择。

特性

  • 支持通过普通、SSL 或 TLS(STARTTLS)端口连接到所有的 SMTP 服务器。

  • 支持使用 PLAIN、CRAM-MD5、LOGIN 或 XOAUTH2 进行认证。

  • 支持使用 HTML 正文和附件发送电子邮件。

  • 支持自定义验证方法和邮件标题,以跟踪你的邮件活动。

  • 支持邮件按序发送,甚至可以同时发送邮件。

  • 支持 Swift Package Manager。

  • 完善的测试和文档。

16、DeviceKit
https://github.com/dennisweissmann/DeviceKit
DeviceKit 是 UIDevice 的值类型替换。可轻松获取设备的信息和电池电量。

特性

  • 设备识别

  • 设备系列检测

  • 设备组检测

  • 模拟器检测

  • 电池状态

  • 电池电量

  • Equatable

17、Charts
https://github.com/danielgindi/Charts


漂亮的曲线图、饼状图、柱状图、散点图、气泡图、雷达图,更多的图形都在 charts 库里。


18、MGSwipeTableCell
https://github.com/MortimerGoro/MGSwipeTableCell


一个易于使用的 UITableViewCell 子类,可展示多种过渡方式的可滑动按钮

19、RandomKit
https://github.com/nvzqz/RandomKit

640.png

简单易用的随机数据生成器。

20、ResponseDetective
https://github.com/netguru/ResponseDetective


ResponseDetective 是一个非侵入式框架,在调试时用于拦截应用程序和服务器之间的任何的传出请求和传入响应,以进行调试。

21、Onboard
https://github.com/mamaral/Onboard


仅需添加几行代码,即可轻松创建一个美丽和吸引人的载入体验。

22、Quick + Nimble
https://github.com/Quick/Nimble


Quick 是一款专门用于 iOS 应用开发的开源行为驱动开发(BDD)测试框架,支持 Swift 和 Objective-C ,一般配合匹配框架 Nimble 使用。

23、Natalie
https://github.com/krzyzanowskim/Natalie
Natalie 生成基于 Storyboard 文件的 Swift 代码,使 Storyboard 和 Segue 更容易使用。生成的文件减少了用字符串作为 Segue 或 Storyboard 的标识符的情况。

24、RxSwift
https://github.com/ReactiveX/RxSwift


对 Swift 的响应式编程感兴趣? 那不妨试试 RxSwift 。

示例

指定 GitHub 存储库的搜索 ...


... 然后将结果绑定到你的视图表


25、GDPerformanceView
https://github.com/dani-gavrilov/GDPerformanceView-Swift





GDPerformanceView 可以在状态栏上方显示 FPS、CPU 使用情况以及应用版本和 iOS 版本,并通过 delegate 报告 FPS 和 CPU 使用情况。

26、Alamofire
https://github.com/Alamofire/Alamofire


Alamofire 是一个用 Swift 编写的 HTTP 网络库。

特性

  • 链式的请求/响应方法

  • URL / JSON / plist 参数编码

  • 上传类型支持:文件(File )、数据(Data )、流(Stream)以及 MultipartFormData

  • 支持文件下载,下载支持断点续传

  • 支持使用 NSURLCredential进 行身份验证

  • 支持 HTTP 响应验证

  • 上传和下载进度可随进程关闭

  • 支持 cURL 命令输出

  • 支持动态修改和重试请求

  • 支持 TLS Certificate 和 Public Key Pinning

  • 网络可达性

  • 文档完善

27、SwiftyStoreKit
https://github.com/bizz84/SwiftyStoreKit


SwiftyStoreKit 是一个轻量级的 App 内购框架,支持 iOS 8.0+、tvOS 9.0+ 和 macOS 10.10+ 。

28、Timepiece
https://github.com/naoty/Timepiece
直观的 Swift 日期处理库。
特征:

  • 直观: Timepiece 提供了一系列辅助函数,使得日期处理更简单。

  • 准确: 精确依赖于 Foundation API , - Timepiece 可以在无需深入了解的前提下辅助计算日期。

  • 小: Timepiece 只有4个文件,你可以很简单的阅读其内部结构。

29、CryptoSwift
https://github.com/krzyzanowskim/CryptoSwift
用 Swift 实现的且用于 Swift 中的加密相关函数和辅助结构。

特点

  • 易用

  • 对于字符串和数据方便扩展

  • 支持增量更新(流式更新)

  • 支持 iOS、 macOS、AppleTV、watchOS、Linux 等系统

30、FSCalendar
https://github.com/WenchaoD/FSCalendar


完全可定制的 iOS 日历库,兼容 Objective-C 和 Swift 。


31、 ImageViewer
https://github.com/MailOnline/ImageViewer


一个类似 Twitter 的图像查看器。

32、PromiseKit
https://github.com/mxcl/PromiseKit


PromiseKit 是对任意有 swiftc 的平台的恰当而又完整的 promises 实现,它具有卓越的 Objective-C 桥接和专门为 iOS、macOS、tvOS 以及 watchOS 的特殊化处理。

33、Ensembles
https://github.com/drewmccormack/ensembles


Ensemble 是一个 Objective-C 框架,支持 Swift ,扩展了 Apple 的 Core Data 框架,为 Mac OS 和 iOS 添加了点对点的同步功能。

多个 SQLite 持久存储可以通过像 iCloud 或 Dropbox 这样的文件同步平台整合在一起。该框架易于扩展,可支持任何需要在不同设备之间传输文件的服务,包括定制服务器。

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

推荐阅读更多精彩内容

  • 近期看到一篇文章,里面收录了很多不错的第三方库,收藏起来,原文如下: 原文 由 Instagram 开发人员制作,...
    好雨知时节浩宇阅读 350评论 0 3
  • 【转】原文链接 1.IGListKit 由 Instagram 开发人员制作,IGListKit 是用于构建快速灵...
    张三呢阅读 280评论 0 0
  • 愿你 做自己想做的事 走自己想走的路
    Sky0203阅读 149评论 0 0
  • 有时候必需要紧握着拳头 才可以 击流水于无形 才可以 相伴你的左右 聆听你内心深处的声音 一定要让山风飘荡着黑的白...
    江城妖怪阅读 147评论 0 1
  • 在竞争日趋激烈的今天,口才不仅成了人们日常生活的一个重要组成部分,更是人们事业成功的一个举足轻重的先决条件。从...
    纤薇阅读 890评论 0 3