本文共 4850 字,大约阅读时间需要 16 分钟。
转自
http://www.jianshu.com/p/d75a9a8d13b5?utm_campaign=maleskine&utm_content=note&utm_medium=writer_share&utm_source=weibo&url_type=39&object_type=webpage&pos=1
本文翻译自,原作者为
你好,iOS 开发者们!我的名字叫 Paweł,我是一个独立 iOS 开发者,并且是 的作者。
接近两年前我发布了 。这是我在这里最棒的文章了(根据 Medium 用户的反馈来看):
如果有 15.5 万人 很担心能否跨越网络上连山排海般的文字找到最棒的 iOS 开源库,那我来传递。
可以看一下,在这篇文章之后又星了超过 180 个 repositories,所以是时候更新我的 Medium 了。
在文章的底部你会找到 TL;DR 即总结列表,列出了所有这些库,并且有相应的链接以及 CocoaPods 名字(如果有的话)。阅读过程中不需要记笔记。现在开始谈正事。
Instagram 程序员做的,IGListKit 是数据驱动的 UICollectionView 框架,为了构建快速和可扩展的列表。另外,它有助于你在 app 结束对于大量视图控制器的使用。看看这篇来自 ,关于如何在项目中实现这个库,或者读读这篇 ,关于迁移现有的 UITableView 到 IGListCollectionView。
是一个直接运行在手机、平板和可穿戴设备内部的移动端数据库,不只是 iOS。如果你想试一点和 Core Data 不一样的,就用 Realm。许多人说它是一个现代化的、产品已经可以替代苹果原生的解决方案。
Moya 是你的 app 中缺失的网络层。不用再去想在哪儿(或者如何)安放网络请求,Moya 替你管理。
Swift 界 JSON 解析之王。
把这段代码:
if let statusesArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]], let user = statusesArray[0]["user"] as? [String: Any], let username = user["name"] as? String { // Finally we got the username}
变成了这段:
let json = JSON(data: dataFromNetworking)if let userName = json[0]["user"]["name"].string { // Now you got your value}
自动替你完成了可选值的拆包。
Valet 允许你安全的在 iOS 或 OS X 钥匙链中存储数据,而不需要掌握任何钥匙链如何工作的知识。它支持在一台设备的多个应用(同一个开发者)间分享数据,以及在一个应用中在多个设备间利用 iCloud 进行分享。支持 Touch ID?没问题。
由谷歌制作(好吧,收购),应该是 iOS 最好的免费分析解决方案。追踪 app 使用量、用户活跃度、以及事件;设置用户属性;创建自定义受众;还有更多。
Facebook 为他们的 app Paper 创造了这个异步 UI SDK。如果你想让你的 app 总是每秒用 60 帧的速度来渲染,一定要看看这个库。这儿有一篇来自 Buffer 团队的故事:
用户安装了你的 app 之后,就会看见一个空白的 UITableView。
DZNEmptyDataSet 帮助你避免这个情况,它提供了 的默认实现。
Chameleon 是一个轻量、又强大的 iOS 颜色框架。它基于“软件应用程序应该轻松地实现功能,同时保持漂亮的界面”这个想法而创建。
有了 Chameleon,你就不再需要捣鼓 RGB 值、浪费时间搞明白 app 里正确的颜色组合、以及为文本能否在 app 里不同的背景下可以被看见而烦恼。
PermissionScope 是一个 Swift 框架,为了向用户巧妙地请求权限。它不只包含简单的权限请求 UI,还有统一的权限 API 可以告诉你任意给定的系统权限的状态,当然也可以轻松地请求它们。
FileKit 是一个 Swift 框架,提供了简单和富有表现力的文件管理。
SwiftyUserDefaults 让 user defaults 用起来很愉悦,通过结合意味深长的 Swifty API 和静态输入的益处。在一个地方定义键,轻松地使用值类型,获得额外的安全性和方便的编译时检查,这些都是免费的。
Kingfisher 是一个轻量、纯 Swift 的库,可以从网络中异步下载和缓存图片。
Hero 是为了构建 iOS 试图控制器过渡动画的库。它在 UIKit 繁琐的过渡动画 API 之上提供了一个层,使得自定义过渡动画对于开发人员来说是一个轻松的任务。
Hedwig 是一个 Swift 包,提供了一组高级 API,可以让你轻松地发送电子邮件到SMTP服务器。如果你打算在下一个神奇的 Swift 服务器 app里发送 email,Hedwig 可能是一个好的选择。
DeviceKit 是 UIDevice 的值类型替换。轻松获取设备信息和电池电量。
漂亮的线图、饼图、条形图、分布图、气泡图、雷达图还有更多种类,这是一个图表库。
一个易于使用的UITableViewCell子类,允许显示带有多种转换的可滑动按钮。
简单易用的随机数据生成。
ResponseDetective 是一个非嵌入式框架,用于拦截应用程序和服务器之间的任何传出请求和传入响应以用于调试目的。
只需几行代码,即可轻松创建漂亮,引人入胜的用户指导页体验。
Quick是 Swift 和 Objective-C 的BDD测试框架,和匹配器框架 Nimble 配合使用。
Natalie 生成基于 storyboard 文件的 Swift 代码,使 storyboard 和 segue 更容易使用。生成的文件减少了用字符串作为 Segue 或 Storyboard 的标识符的情况。
对Swift中的 reactive 编程感兴趣?这里是RxSwift。
GDPerformanceView在状态栏上方显示 FPS,CPU 使用情况,app 和 iOS 版本,并通过 delegate 报告 FPS 和 CPU 使用情况。
Alamofire 是用 Swift 写的 HTTP 网络库。
SwiftyStoreKit 是一个轻量的 app 内购框架,支持 iOS 8.0+,tvOS 9.0+和macOS 10.10+。
Swift 里直观的日期处理。
Swift 里加密相关的帮助函数实现。
完全自定义的 iOS 日历库,兼容 Objective-C 和 Swift。
模仿 Twitter 的图片浏览器。
PromiseKit 是对于任意有 swiftc 的平台的周到和完整的 promises 实现,它有优秀的 Objective-C 桥接和赏心悦目的 iOS、macOS、tvOS 和 watchOS 专业化。
Ensembles 是一个 Objective-C 框架——也支持 Swift —— 它扩展了Apple的Core Data框架,为Mac OS和iOS添加了点对点同步。多个 SQLite persistent store 可以通过文件同步平台(如iCloud或Dropbox)耦合在一起。该框架可以容易地扩展以支持能够在设备之间移动文件的任何服务,包括自定义服务器。
pod 'IGListKit', '~> 2.0.0
pod 'RealmSwift’
pod 'Moya', ‘8.0.0’
pod 'SwiftyJSON’
pod 'Valet’
pod 'Firebase/Core’
pod 'AsyncDisplayKit’
pod 'DZNEmptyDataSet’
pod 'ChameleonFramework/Swift', :git => 'https://github.com/ViccAlexander/Chameleon.git'
pod 'PermissionScope’
pod 'FileKit', '~> 4.0.0’
pod 'SwiftyUserDefaults’
pod 'Kingfisher', '~> 3.0’
pod 'Hero’
pod 'DeviceKit', '~> 1.0’
pod 'Charts’
pod 'MGSwipeTableCell’
pod 'RandomKit', '~> 3.0.0’
pod 'ResponseDetective’
pod 'Onboard’
pod 'Quick’
pod 'Nimble’
pod 'RxSwift', '~> 3.0’
pod 'GDPerformanceView-Swift', '~> 1.1.0’
pod 'Alamofire', '~> 4.3’
pod 'SwiftyStoreKit’
pod 'Timepiece’
pod 'CryptoSwift’
pod 'FSCalendar’
pod 'ImageViewer’
pod 'PromiseKit', '~> 4.0’
pod 'Ensembles’
感谢阅读,这不是你在 Medium 上可以读到的最短的文章!如果你喜欢这篇文章,点击下面的 ❤️ 来把它分享给你的朋友,这样更多的人会发现这些非常棒的库。你也可以 ,那儿我发的基本都是 iOS 开发。谢谢!
转载地址:http://rqpsi.baihongyu.com/