使用 Realm 和 Swift 创建 ToDo 应用

智能手机的快速发展的同时,涌现出了很多对开发者友好的开发工具,这些工具不仅使得开发变得更加容易,同时也保证了性能和产品质量。如今,想要在 App Store 占据一席之地,并非易事。想要使得应用易于扩展就更加困难了。当你成功获得百万量级的用户时,应用中的每一个细节都不能放过,并且需要在很短的时间完成对细节的打磨。和数据库打交道,是很多开发者都会面临的一个问题。相信我们每个人都会因为数据库引起的各种问题而头疼不已,对于数据库,我想如今我们只有两种选择:SQLiteCore Data。我是 Core Data 的忠实粉丝,它对记录(records)的处理和持久化数据的能力非常强大,但是我意识到,在开发应用的过程中,我在 Core Data 上浪费了太多的时间。最近,我无意中发现了 Realm,一个可以替代 SQLite 和 Core Data 的更好的解决方案。

Realm 是什么?

Realm 是一个跨平台的移动终端数据库,支持 iOS(Swift 和 Objective-C 语言都支持)和 Android。Realm 的目的就是提供比 SQLite 和 Core Data 更好更快的数据库支持。它不仅仅是更好和更快,而且更加易于使用,短短几行代码就可以完成很多操作。Realm 完全免费,你可以随意使用它。Realm 是为移动设备而生的,因为在过去的十年中,移动终端的数据库技术没有任何的革新。现在如果和移动终端的数据库打交道,你只有一种选择,使用 SQLite 或者是底层封装了 SQLite 的技术比如 Core Data。Realm 的目的是更加易用,它并不是一个建立在 SQLite 之上的 ORM,而是一个基于自己的持久化引擎,简单并且快速的面向对象移动数据库。

为什么选择 Realm ?

Realm拥有令人难以置信的速度并且使用起来非常简单,你会发现,无论是想完成数据库的读还是写操作,都只需要短短的几行代码。下面我会列出它的所有优势,并说明为什么 Realm 是你在移动应用上数据库的不二选择:

  • 安装简单:在下一个章节——如何使用 Realm 中你会了解到,安装 Realm 会比你想象的更为简单。使用简单的 Cocoapods 命令,你就可以完成所有的安装工作。
  • 速度更快:使用 Realm 库操作数据库的速度非常快。它比 SQLite 和 CoreData 都更加快速,这里有它们之间的比较指标作为证据。
  • 跨平台:Realm 的数据库文件是跨平台的,可以在 iOS 和 Android 间共享。无论你是使用 Java,Objective-C 或者 Swift,都可以使用相同的抽象模型访问。
  • 易于扩展:如果你的移动应用需要处理大量的用户数据记录,数据库的可扩展性就显得十分重要。在开始着手开发应用之前,这一点就应该被考虑在内。Realm 提供很好的可扩展性,在操作大量的数据时,速度也非常之快。选择使用 Realm 可以为你的应用带来更快的速度和更加流畅的用户体验。
  • 规范的文档和很好的支持:Realm 提供了大量条理清晰、易于阅读的文档。如果你有任何的问题,你也可以通过 Twitter,Github 或 Stackoverflow 来联系它们获得帮助。
  • 可信任:Realm 已经被大量的初创公司和大公司用于它们的移动应用中,像 Pinterest,Dubsmash 和 Hipmunk。
  • 免费:除了以上这些极好的优点以外,它还是完!全!免!费!的!

让我们开始动手吧

让我们开始学习 Realm,使用它来构建一个使用 Swift 语言的简单的 iPhone 应用。所完成的 demo 程序是一个简单的 Todo 应用。用户可以增加任务清单,每个任务清单都能够包含多个任务。任务拥有名称,备注,到期日期,可以添加图片,并且拥有一个布尔值来表示该任务是否已经完成。在开始创建 Xcode project 之前,我们需要先配置好 Xcode,安装使用 Realm 所需的工具。

环境要求