33 款主宰 2017 iOS 开发的开源库
angrybears
7年前
<p><img src="https://simg.open-open.com/show/7d7d555c01e74e01f91769fff969ceff.png"></p> <p>你好, <strong>iOS 开发者们</strong> !我的名字是 Pawel,是一名 iOS 独立开发者,也是 <a href="/misc/goto?guid=4959736478103620002" rel="nofollow,noindex"> <strong>Enter Universe</strong> </a> 的作者。</p> <p>大概在两年前,我发布了 <a href="/misc/goto?guid=4959749945642971056" rel="nofollow,noindex">27个iOS开源库提升你的开发</a> 。这篇文章是我的一个最佳纪录(用户好评数):</p> <p><img src="https://simg.open-open.com/show/a1ef701f5846a4500a11d1609586b23d.png"></p> <p>因为有 <strong>15.5万人</strong> 关注过这个话题,为了找到最好的 iOS 开源库, <strong>我又要发文了</strong> 。</p> <p>查看 <a href="/misc/goto?guid=4959736478193630323" rel="nofollow,noindex">我的 GitHub 资料</a> 可以看到,从那时起,我又发现了180多个新的已加星标的库,所以现在是更新我的“Medium”内容的绝佳时机。</p> <p>按需排列 33 个库,提升你在 2017 年的开发。开始燃烧吧。</p> <h3>1. <a href="/misc/goto?guid=4959736478281046483" rel="nofollow,noindex">IGListKit</a></h3> <p><img src="https://simg.open-open.com/show/aef6e10158e7c2c08f01a1084fe03db1.gif"></p> <p>由 Instagram 开发人员制作,IGListKit 是用于构建快速灵活列表的数据驱动型的 UICollectionView 框架。此外,它可以帮助你在应用程序中避免大量使用视图控制器的情况。查看 <a href="/misc/goto?guid=4959736478445197881" rel="nofollow,noindex">Ray Wenderlich</a> 关于在你的项目中实现该库的教程,或者从 <a href="/misc/goto?guid=4959736478529197968" rel="nofollow,noindex">Rodrigo Cavalcante</a> 中看看关于将现有的 UITableView 迁移到 IGListCollectionView 的方法。</p> <h3>2. <a href="/misc/goto?guid=4958838689566194388" rel="nofollow,noindex">Realm</a></h3> <p><img src="https://simg.open-open.com/show/44e77f9bce2c8b64c49d8984582172da.png"></p> <p><a href="/misc/goto?guid=4958973331914205897" rel="nofollow,noindex">Realm</a> 是一种移动数据库,可直接运行在手机、平板电脑和可穿戴设备中,不仅适用于 iOS。如果你想尝试与 Core Data 不同的东西,请尝试使用 Realm 。 许多人说,它是一种现代化的、高效率的用于原生苹果解决方案的替代物 。</p> <h3>3. <a href="/misc/goto?guid=4959642890508502196" rel="nofollow,noindex">Moya</a></h3> <p><img src="https://simg.open-open.com/show/bd04375d3aabe33d3d7a62b9db58201b.png"></p> <p>Moya 是你的应用程序所缺少的网络层。不用思考将你的网络请求放到哪里(以及如何),Moya 会为你处理这些问题。</p> <p><img src="https://simg.open-open.com/show/497ff9cd79a7cf9a273c2b5f4498350b.png"></p> <h3>4. <a href="/misc/goto?guid=4958851213980494983" rel="nofollow,noindex">SwiftyJSON</a></h3> <p>Swift 中的 JSON 解析之王。</p> <p>将下面内容:</p> <pre> 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 }</pre> <p>转换为这种格式:</p> <pre> let json = JSON(data: dataFromNetworking) if let userName = json[0]["user"]["name"].string { // Now you got your value }</pre> <p>可选封装会自动为你完成。</p> <h3>5. <a href="/misc/goto?guid=4958876515236096958" rel="nofollow,noindex">Valet</a></h3> <p>Valet 可以帮助你实现将数据安全地存储在 iOS 或 OS X Keychain 中,而无需了解任何 Keychain 相关的工作原理。它支持在单个设备上的多个应用程序(同一开发者)之间共享数据,并在具有 iCloud 的设备上的实现跨设备的数据共享。支持 Touch ID 吗?完全没问题。</p> <h3>6. <a href="/misc/goto?guid=4959736479181599799" rel="nofollow,noindex">Firebase Analytics</a></h3> <p><img src="https://simg.open-open.com/show/8f14a5693b410eb950f43128fcaf752d.png"></p> <p>它(由 Google 出品)可能是 iOS 上最好的免费分析解决方案。包括跟踪应用程序使用情况、用户参与度和事件; 设置用户属性; 创建自定义受众; 和一些其他功能。</p> <h3>7. <a href="/misc/goto?guid=4958851359520331775" rel="nofollow,noindex">AsyncDisplayKit</a></h3> <p><img src="https://simg.open-open.com/show/1702da80f98dc59431ef114368bacc46.png"></p> <p>非死book 为他们的应用程序 Paper 构建了这个异步 UI 的 SDK 。如果你对每秒60帧渲染应用感兴趣,请务必查看此库。 <a href="/misc/goto?guid=4959749946064337927" rel="nofollow,noindex">点此</a> 可以了解下 非死book Buffer 小组的历史。</p> <h3>8. <a href="/misc/goto?guid=4958878222867055812" rel="nofollow,noindex">DZNEmptyDataSet</a></h3> <p>通常用户安装一个 APP 后,会看到一个空的 UITableView 。DZNEmptyDataSet 可以通过提供默认的 <a href="/misc/goto?guid=4959736479600170130" rel="nofollow,noindex">Empty Data Set Pattern</a> 的实现来回避这个问题。</p> <p><img src="https://simg.open-open.com/show/2ab5149adb48001e075a9565c78974af.png"></p> <h3>9. <a href="/misc/goto?guid=4958968202068947762" rel="nofollow,noindex">Chameleon</a></h3> <p><img src="https://simg.open-open.com/show/904ddcce7635308b02d0d34cd2dd920b.png"></p> <p>Chameleon 是一个轻量却功能强大的 iOS 颜色框架软件。它基于的理念是:软件应用程序应该可以不费力气且同时维护多个漂亮的界面。</p> <p>使用 Chameleon ,你不再需要调配 RGB 值,不用浪费时间去找你的 APP 合适的颜色组合,也不用担心你 APP 的文字是否能在不同背景色上可读。</p> <p><img src="https://simg.open-open.com/show/a5da20a9dbdbd38872512271cf7f9375.png"></p> <p><img src="https://simg.open-open.com/show/653f878296160bea7a085ea4492d954f.png"></p> <h3>10. <a href="/misc/goto?guid=4958872895828933554" rel="nofollow,noindex">PermissionScope</a></h3> <p><img src="https://simg.open-open.com/show/393cf5925e0fffdca133825234ce29a7.png"></p> <p>PermissionScope 是一个用于智能请求用户权限的 Swift 框架。 它不仅包含一个简单的用户界面来请求权限,还包含一个统一的许可 API ,可以告诉你任何指定的系统权限的状态或轻松地对它们发起请求。</p> <p><img src="https://simg.open-open.com/show/717a6151bbfa50427ffaf793446e3d11.png"></p> <h3>11. <a href="/misc/goto?guid=4959661804276304587" rel="nofollow,noindex">FileKit</a></h3> <p><img src="https://simg.open-open.com/show/3615b7bd87570021845715266f39048e.png"></p> <p>FileKit 是一个 Swift 框架,提供简单而富有表现力的文件管理。 <a href="/misc/goto?guid=4959749946301031226" rel="nofollow,noindex">点此查看使用示例</a></p> <h3>12. <a href="/misc/goto?guid=4959736480197591923" rel="nofollow,noindex">SwiftyUserDefaults</a></h3> <p>SwiftyUserDefaults 让 user defaults 用起来很愉悦,通过结合极具表现力的 Swifty API 和静态输入的优势。在一个地方定义键,轻松地使用值类型,并免费获得额外的安全性和方便的编译时检查。</p> <p><img src="https://simg.open-open.com/show/40935ec33b3c12ae415952590cb3d475.png"></p> <p>Kingfisher 是一款轻量级的纯 Swift 库,用于从 Web 上异步下载和缓存图像。</p> <p>特性</p> <ul> <li> <p>异步图像下载和缓存</p> </li> <li> <p>基于 URLSession 的网络。提供基本图像处理器和滤镜。</p> </li> <li> <p>用于内存和磁盘的多层缓存。</p> </li> <li> <p>可取消下载和任务处理以提高性能。</p> </li> <li> <p>组件独立。可按需分别使用下载器或缓存系统。</p> </li> <li> <p>预先获取图像并在必要时将其从缓存中显示出来。</p> </li> <li> <p>包含 UIImageView、NSImage和UIButton扩展,可直接从 URL 设置图像。</p> </li> <li> <p>设置图像时可内置过渡动画。</p> </li> <li> <p>可扩展的图像处理和图像格式支持。</p> </li> </ul> <h3>14. <a href="/misc/goto?guid=4959734302901756571" rel="nofollow,noindex">Hero</a></h3> <p><img src="https://simg.open-open.com/show/54bc7180a60e04c5270a6299b324edf8.png"></p> <p>Hero 是构建 iOS 视图控制器过渡动画的库。它在 UIKit 繁琐的过渡动画 API 之上提供了一个层,使得自定义过渡动画对于开发人员来说是一个轻松的任务。</p> <h3>15. <a href="/misc/goto?guid=4959736480738235903" rel="nofollow,noindex">Hedwig</a></h3> <p><img src="https://simg.open-open.com/show/59aeb1284c5741afd1ea51143f483683.png"></p> <p>Hedwig 是一个 Swift 包,提供一组高级 API,可以让你轻松地发送电子邮件到 SMTP 服务器。如果你打算在下一个神奇的 Swift 服务器应用里发送电子邮件,Hedwig 可能是一个不错的选择。</p> <p>特性</p> <ul> <li> <p>支持通过普通、SSL 或 TLS(STARTTLS)端口连接到所有的 SMTP 服务器。</p> </li> <li> <p>支持使用 PLAIN、CRAM-MD5、LOGIN 或 XOAUTH2 进行认证。</p> </li> <li> <p>支持使用 HTML 正文和附件发送电子邮件。</p> </li> <li> <p>支持自定义验证方法和邮件标题,以跟踪你的邮件活动。</p> </li> <li> <p>支持邮件按序发送,甚至可以同时发送邮件。</p> </li> <li> <p>支持 Swift Package Manager。</p> </li> <li> <p>完善的测试和 <a href="/misc/goto?guid=4959749946477953630" rel="nofollow,noindex">文档</a> 。</p> </li> </ul> <h3>16. <a href="/misc/goto?guid=4959736480864783209" rel="nofollow,noindex">DeviceKit</a></h3> <p>DeviceKit 是 UIDevice 的值类型替换。可轻松获取设备的信息和电池电量。</p> <p>特性</p> <ul> <li> <p>设备识别</p> </li> <li> <p>设备系列检测</p> </li> <li> <p>设备组检测</p> </li> <li> <p>模拟器检测</p> </li> <li> <p>电池状态</p> </li> <li> <p>电池电量</p> </li> <li> <p>Equatable</p> </li> </ul> <h3>17. <a href="/misc/goto?guid=4958989863263683152" rel="nofollow,noindex">Charts</a></h3> <p><img src="https://simg.open-open.com/show/f7496aaff74841dbdc7c3d3ebc1b8005.png"></p> <p>漂亮的曲线图, 饼状图, 柱状图, 散点图, 气泡图, 雷达图,更多的图形都在 charts 库里。</p> <p><img src="https://simg.open-open.com/show/ab0f7ac9bd88b8db18c3fdecf3c223c0.png"></p> <h3>18. <a href="/misc/goto?guid=4958968159730531484" rel="nofollow,noindex">MGSwipeTableCell</a></h3> <p>一个易于使用的 UITableViewCell 子类,可展示多种过渡方式的可滑动按钮。</p> <p><img src="https://simg.open-open.com/show/64c19b9c8feb1744b07f79808a209d77.png"></p> <p><img src="https://simg.open-open.com/show/4275021efe07160d4d55f4ba7528956f.png"></p> <p><img src="https://simg.open-open.com/show/13b32b177c173254369b4b8aa0993f4d.png"></p> <p> </p> <p>来自:https://www.oschina.net/translate/33-ios-open-source-libraries-that-will-dominate-2017</p> <p> </p>