免费开源的iOS开发学习平台

Realm介绍:1-Realm基本介绍

Realm是由美国YCombinator孵化的创业团队历时几年打造,第一个专门针对移动平台设计的数据库。Realm是一个跨平台的移动数据库引擎,目前支持iOS、Android平台,同时支持Objective-C、Swift、Java、React Native、Xamarin等多种编程语言。Realm自发布之初就提出了:“reaml是SQLite以及CoreData的替代者”的口号。

Realm简介

Realm是一个跨平台的移动数据库引擎,于2014年7月发布,准确来说,它是专门为移动应用所设计的数据持久化解决方案。Realm并不是对SQLite或者CoreData的简单封装,它建立了自己独特的数据库存储引擎,可以方便、高效的完成数据库的各种操作。

Realm是一款专门针对移动平台设计的数据库,因此其能够无缝的支持iOS以及Android,并且支持Objective-C、Swift、Java、React Native等多种编程语言编写。

与SQLite或者CoreData相比,Realm最大的优势在于学习门槛极低,由于其是直接针对对象进行读写的,因此,不必像SQLite一样,需要预先掌握SQL语句,也不像CoreData使用起来如此的繁琐。

Realm不仅学习难度极低,其还拥有不凡的性能,根据Realm官方提供的数据如下所示:

  • 统计查询。针对20万条数据执行统计操作,Realm每秒可以执行30.9次统计操作

  • 遍历查询。针对20万条数据,Realm每秒可以遍历31次查询

  • 插入操作。Realm的性能虽然低于原生的SQLite,但是却远远高于FMDB以及CoreData

有关Realm更多的介绍,可以访问官方网站:https://realm.io

Realm的优势与亮点

  • 开源。Realm移动端数据库相关代码已全部开源。数千开发者在GitHub上参与了相关工作。另外还有几百个Realm数据库相关的扩展。

  • 简单易用:Core Data 、 SQLite 庞大的学习量和繁杂的代码足以吓退绝大多数刚入门的开发者,而换用 Realm,则可以极大地减少学习代价和学习时间,让应用及早用上数据存储功能。

  • 跨平台:现在绝大多数的应用开发并不仅仅只在 iOS 平台上进行开发,还要兼顾到 Android 平台的开发。为两个平台设计不同的数据库是不明智的,而使用 Realm 数据库,iOS 和 Android 无需考虑内部数据的架构,调用 Realm 提供的 API 就可以完成数据的交换,实现“一个数据库,两个平台无缝衔接”。

  • 线程安全。程序员无需对在不同线程中,对数据库的读取一致性做任何考虑,Realm会保证每次读取都得到一致的数据。

Realm Browser

为了配合Realm的使用,Realm还提供了一个轻量级的数据库查看工具Realm Browser,借助这个工具,开发者可以查看数据库当中的内容,并执行简单的插入和删除操作。Realm Browser可以在App Store中下载安装。

我们可以在Realm Browser中选择Tools -> Generate demo database来创建一个测试数据库,来实践一下Realm Browser的功能。

Realm中的一些重要概念

为了掌握Realm的使用,需要预先了解并掌握Realm中的一些重要概念以及类。

  • RLMRealm类:可以理解为Realm创建的用于数据存储的数据库类,与CoreData中的管理上下文(managed object context)类似。对于存储在Realm中的数据,我们都需要获取到一个RLMRealm类的对象,然后对其中的数据进行读写操作。

  • RLMObject类:对于Realm中存储的对象,都是RLMObject类的子类,也就是说,RLMRealm类中存储的都是RLMObject类的对象。

  • RLMResults类:对Realm数据库执行查询操作后,返回的结果是一个RLMResults对象,这个对象是一个数组,其中存储的对象都是RLMObject类型的。不仅如此,它还拥有许多更强大的功能,包括排序、查找等等操作。

  • 写操作事务(Write Transactions):Realm数据库中的所有操作,比如创建、编辑,或者删除对象,都必须在事务中完成。