阅读更多

2顶
0踩

编程语言

转载新闻 33 款主宰 2017 iOS 开发的开源库

2017-06-16 13:21 by 副主编 jihong10102006 评论(0) 有20197人浏览

你好,iOS 开发者们!我的名字是 Pawel,是一名 iOS 独立开发者,也是Enter Universe 的作者。

大概在两年前,我发布了 提升开发的 27 个 iOS 开源库。这篇文章是我的一个最佳纪录(用户好评数):

因为有15.5万人关注过这个话题,为了帮大家找到最好的 iOS 开源库,我又要发文了。

查看我的 GitHub 资料可以看到,距离上次发文,我又发现了180多个新的已加星标的库,所以现在是更新我的内容的绝佳时机。
按需排列 33 个库,提升你在 2017 年的开发。开始燃烧吧。

1. IGListKit

由 Instagram 开发人员制作,IGListKit 是用于构建快速灵活列表的数据驱动型的 UICollectionView 框架。此外,它可以帮助你在应用程序中避免大量使用视图控制器的情况。可查看 Ray Wenderlich 上的关于在你的项目中实现该库的教程,或者从 Rodrigo Cavalcante 中看看关于将现有的 UITableView 迁移到 IGListCollectionView 的方法。

2. Realm

Realm 是一款移动数据库,可直接运行在手机、平板电脑和可穿戴设备中,它不仅适用于 iOS。如果你想尝试与 Core Data 不同的东西,可以试试使用 Realm 。许多人说,它是一种现代化的、高效率的用于原生苹果解决方案的替代物。

3. Moya

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

4. SwiftyJSON

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
}

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

5. Valet

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

6. Firebase Analytics

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

7. AsyncDisplayKit

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

8. DZNEmptyDataSet

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

9. Chameleon

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

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


10. PermissionScope

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

11. FileKit

FileKit 是一个 Swift 框架,提供简单而富有表现力的文件管理。点此查看使用示例

12. SwiftyUserDefaults

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

13.Kingfisher

Kingfisher 是一款轻量级的纯 Swift 库,用于从 Web 上异步下载和缓存图像。
特性
  • 异步图像下载和缓存
  • 基于 URLSession 的网络。提供基本图像处理器和滤镜。
  • 用于内存和磁盘的多层缓存。
  • 可取消下载和任务处理以提高性能。
  • 组件独立。可按需分别使用下载器或缓存系统。
  • 预先获取图像并在必要时将其从缓存中显示出来。
  • 包含 UIImageView、NSImage和UIButton扩展,可直接从 URL 设置图像。
  • 设置图像时可内置过渡动画。
  • 可扩展的图像处理和图像格式支持。
14. Hero

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

15. Hedwig

Hedwig 是一个 Swift 包,提供一组高级 API,可以让你轻松地发送电子邮件到 SMTP 服务器。如果你打算在下一个神奇的 Swift 服务器应用里发送电子邮件,Hedwig 可能是一个不错的选择。
特性
  • 支持通过普通、SSL 或 TLS(STARTTLS)端口连接到所有的 SMTP 服务器。
  • 支持使用 PLAIN、CRAM-MD5、LOGIN 或 XOAUTH2 进行认证。
  • 支持使用 HTML 正文和附件发送电子邮件。
  • 支持自定义验证方法和邮件标题,以跟踪你的邮件活动。
  • 支持邮件按序发送,甚至可以同时发送邮件。
  • 支持 Swift Package Manager。
  • 完善的测试和文档
16. DeviceKit

DeviceKit 是 UIDevice 的值类型替换。可轻松获取设备的信息和电池电量。
特性
  • 设备识别
  • 设备系列检测
  • 设备组检测
  • 模拟器检测
  • 电池状态
  • 电池电量
  • Equatable
17. Charts

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

18. MGSwipeTableCell

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

19. RandomKit

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

20. ResponseDetective

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

21. Onboard

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

22. Quick+ Nimble

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

23. Natalie

Natalie 生成基于 Storyboard 文件的 Swift 代码,使 Storyboard 和 Segue 更容易使用。生成的文件减少了用字符串作为 Segue 或 Storyboard 的标识符的情况。

24. RxSwift

对 Swift 的响应式编程感兴趣? 那不妨试试 RxSwift 。
示例
指定 GitHub 存储库的搜索 ...
let searchResults = searchBar.rx.text.orEmpty
    .throttle(0.3, scheduler: MainScheduler.instance)
    .distinctUntilChanged()
    .flatMapLatest { query -> Observable<[Repository]> in
        if query.isEmpty {
            return .just([])
        }
        return searchGitHub(query)
            .catchErrorJustReturn([])
    }
    .observeOn(MainScheduler.instance)

... 然后将结果绑定到你的视图表
searchResults
    .bind(to: tableView.rx.items(cellIdentifier: "Cell")) {
        (index, repository: Repository, cell) in
        cell.textLabel?.text = repository.name
        cell.detailTextLabel?.text = repository.url
    }
    .disposed(by: disposeBag)


25. GDPerformanceView

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

26. Alamofire

Alamofire 是一个用 Swift 编写的 HTTP 网络库。
特性
  • 链式的请求/响应方法
  • URL / JSON / plist 参数编码
  • 上传类型支持:文件(File )、数据(Data )、流(Stream)以及MultipartFormData
  • 支持文件下载,下载支持断点续传
  • 支持使用 NSURLCredential进 行身份验证
  • 支持 HTTP 响应验证
  • 上传和下载进度可随进程关闭
  • 支持 cURL 命令输出
  • 支持动态修改和重试请求
  • 支持 TLS Certificate 和 Public Key Pinning
  • 网络可达性
  • 文档完善
27. SwiftyStoreKit

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

28. Timepiece

直观的 Swift 日期处理库。
特征:
  • 直观: Timepiece 提供了一系列辅助函数,使得日期处理更简单。
  • 准确: 精确依赖于 Foundation API , Timepiece 可以在无需深入了解的前提下辅助计算日期。
  • 小: Timepiece 只有4个文件,你可以很简单的阅读其内部结构。
29. CryptoSwift

用 Swift 实现的且用于 Swift 中的加密相关函数和辅助结构。
特点
  • 易用
  • 对于字符串和数据方便扩展
  • 支持增量更新(流式更新)
  • 支持 iOS、 macOS、AppleTV、watchOS、Linux 等系统
30. FSCalendar

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


31. ImageViewer

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

32. PromiseKit

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

33. Ensembles

Ensemble 是一个 Objective-C 框架,支持 Swift ,扩展了 Apple 的 Core Data 框架,为 Mac OS 和 iOS 添加了点对点的同步功能。多个 SQLite 持久存储可以通过像 iCloud 或 Dropbox 这样的文件同步平台整合在一起。该框架易于扩展,可支持任何需要在不同设备之间传输文件的服务,包括定制服务器。

英文原文:33 iOS open source libraries that will dominate 2017
译者: Tocy, 王练, 无若, 总长, 君影文华
  • 大小: 521 KB
  • 大小: 90.4 KB
  • 大小: 537.6 KB
  • 大小: 5.5 KB
  • 大小: 5.1 KB
  • 大小: 50.7 KB
  • 大小: 35 KB
  • 大小: 47.4 KB
  • 大小: 78.4 KB
  • 大小: 25 KB
  • 大小: 48.1 KB
  • 大小: 109.4 KB
  • 大小: 38 KB
  • 大小: 9.2 KB
  • 大小: 32.8 KB
  • 大小: 29.2 KB
  • 大小: 20.8 KB
  • 大小: 75 KB
  • 大小: 41.7 KB
  • 大小: 122.7 KB
  • 大小: 45.8 KB
  • 大小: 24.4 KB
  • 大小: 28.3 KB
  • 大小: 1.9 MB
  • 大小: 482.2 KB
  • 大小: 35.8 KB
  • 大小: 21.9 KB
  • 大小: 637.7 KB
  • 大小: 41.9 KB
  • 大小: 46 KB
  • 大小: 36.7 KB
  • 大小: 40.1 KB
  • 大小: 123.3 KB
  • 大小: 64.9 KB
  • 大小: 8.9 MB
  • 大小: 15.1 KB
  • 大小: 23.4 KB
来自: oschina
2
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

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

    由 Instagram 开发人员制作,IGListKit 是用于构建快速灵活列表的数据驱动型的 UICollectionView 框架。此外,它可以帮助你在应用程序中避免大量使用视图控制器的情况。可查看 Ray Wenderlich 上的关于在你的项目...

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

    1. IGListKit ...由 Instagram 开发人员制作,IGListKit 是用于构建快速灵活列表的数据驱动...可查看 Ray Wenderlich 上的关于在你的项目中实现该库的教程,或者从 Rodrigo Cavalcante 中看看关于将现有的

  • 移动周刊第 195 期:技能提升!33 款 iOS 开源库及 Objective-C 文章详细汇总

    33 款主宰 2017 iOS 开发的开源库 为了帮大家找到最好的 iOS 开源库,本文按需排列 33 个库,提升你在 2017 年的开发。 iOS Objective-C 文章详解整理 本文详细汇总了 iOS Objective-C 的相关文章,欢迎大家「...

  • ios33款实用库

    英文中文翻译摘要:iOS 开发者福利,本文为广大iOS开发者准备了33 款主宰 2017 iOS 开发的开源库,已经有十几万小伙伴关注了,提升你在 2017 年的开发。开始燃烧吧。你好,iOS 开发者们!我的名字是 Pawel,是一名 ...

  • 为什么是 Dart ?

    除了各种静态工具,它有一个现代化的仓库——pub,可以很容易的依赖我们需要的第三方库,也可以很方便的发布我们开源的库。 Dart 是一种健壮的语言。Dart 是一种开源、面向对象、可选类型和基于类的语言,它对函数式...

  • 开源软件和开源社区的反思

    由于开源软件存在局限性,近来学术界 开始对开源软件和社区的发展进行反思,认为 :开 源软件的使用比开发更重要 ;要重视发展开源软件 工程技术 ;在大数据和云平台的环境下,应该建立 新的软件工程,包括软件的...

  • 你确定不了解下 2021 年 Web 开发的趋势嘛

    多年来,Web 开发已经证明自己是任何组织/业务成功不可或缺的因素。它是你企业的窗口,帮助你在全球范围内成长。 现在,Web 开发世界正在不断变化,趋势也是如此。有时候,这些趋势变化的速度远远快于它们可以被利用...

  • 化解Android 和iOS“恩怨”的Flutter ,凭的是什么?

    移动研发由来已久,从早期的J2ME开始,到后来居上的Windows Mobile、Symbian,小众却各领风骚的BREW、Palm、BlackBerry,以及当前几乎平分市场的Android和iOS。面对如此多的平台和技术,开发者可以择其优者而习之,...

  • IOS 控件资料汇总

    33 款主宰 2017 iOS 开发的开源库 2. 这个控件叫什么专题 3. iOS基本UI控件总结 4. iOS 为控件添加BadgeView 转载于:https://my.oschina.net/zhugenqiang/blog/968018

  • Android开发应该用什么语言

    自 Google 于 2017 年宣布 Kotlin 成为 Google IO 的 Android 开发官方语言以来,想要成为Android开发人员的程序员正陷入两难境地。 在讨论这个问题前,我首先要明确一点, 不要陷入编程语言战争,不要进行语言鄙视...

  • HTML 5+JavaScript混合应用比本地应用的开发成本低

    开发者们经常思考的一个问题是该开发Web应用、本地应用,还是其他混合形式的内容。其实,该问题的答案虽不确定但十分简单,在正式的开发工作开始前,开发者需想清楚一些关键问题,如:目标受众是谁?开发该应用的...

  • 基于java的-28-“智慧食堂”设计与实现--LW-源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

  • C#,回文分割问题(Palindrome Partitioning Problem)算法与源代码

    C#,回文分割问题(Palindrome Partitioning Problem)算法与源代码 1 回文串 “回文串”是一个正读和反读都一样的字符串,初始化标志flag=true,比如“level”或者“noon”等等就是回文串。 2 回文分割问题 给定一个字符串,如果该字符串的每个子字符串都是回文的,那么该字符串的分区就是回文分区。 例如,“aba | b | bbabb | a | b | aba”是“abababababa”的回文分区。 确定给定字符串的回文分区所需的最少切割。 例如,“ababababababa”至少需要3次切割。 这三个分段是“a | babbab | b | ababa”。 如果字符串是回文,则至少需要0个分段。 如果一个长度为n的字符串包含所有不同的字符,则至少需要n-1个分段。

  • node-v9.2.1.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • 贪心算法解决活动选择问题,Java版源码

    贪心算法是一种在每一步选择中都采取在当前状态下最好或最优的选择,从而希望导致结果是全局最好或最优的算法策略。贪心算法在有最优子结构的问题中尤为有效。最优子结构的意思是局部最优解可以决定全局最优解。 附件中一个使用贪心算法解决活动选择问题(也称为会议时间安排问题)的 Java 示例代码。这个问题的目标是选择最大的活动数量,使得活动之间互不重叠。 在示例中,我们定义了一个 Activity 类来表示每个活动的开始和结束时间。然后,我们创建了一个活动数组,并使用 Arrays.sort() 方法按照活动的结束时间对它们进行排序。 接下来,我们遍历排序后的数组,使用贪心算法的策略选择活动。选择的标准是当前活动的开始时间是否晚于或等于之前选择的最后一个活动的结束时间。如果是,我们就选择这个活动,并更新 lastActivityEnd 为当前活动的结束时间。最后,我们打印出可以执行的最大活动数量。

  • 小程序-2-“最多跑一次”微信小程序--LW-源码.zip

    提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

  • 基于java的-198-ssm智能新冠疫苗接种助手--LW-源码.zip

    提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

  • 酒店管理系统的设计与实现.zip

    本项目基于jsp框架,数据库采用mysql,采用tomcat服务部署,适合学生论文、课设参考及学习。 功能介绍: 1)基本操作 2)客户管理 3)客房管理 4)菜品管理 5)餐桌预定 6)餐饮消费管理

  • 【前端素材】大数据-大屏数据统计.zip

    大数据技术指的是用于处理和分析大规模数据集的技术和工具。以下是一些常见的大数据技术和工具: Hadoop:Apache Hadoop是一个用于分布式存储和处理大规模数据的开源框架。它包括Hadoop Distributed File System(HDFS)用于数据存储和MapReduce用于数据处理。 Spark:Apache Spark是一个快速、通用的集群计算系统,提供了比MapReduce更快的数据处理能力。它支持内存计算和更多复杂的数据处理流程。 NoSQL数据库:NoSQL数据库(如MongoDB、Cassandra等)则更适用于处理这类数据。 数据仓库:数据仓库是一个用于集成和分析大规模数据的存储系统,一些知名的数据仓库包括Snowflake、Amazon Redshift等。 数据湖:数据湖是一个存储结构化和非结构化数据的存储池,用于支持数据分析和机器学习应用。 机器学习:大数据技术也广泛应用于机器学习领域,支持大规模数据的模型训练和预测分析。 流式处理:针对实时数据处理需求,流式处理技术(如Apache Kafka、Apache Flink)可以实时。

Global site tag (gtag.js) - Google Analytics