写点什么

Realm 获得了 10 亿的用户,10 万活跃的开发者,并且发布了 1.0 版本

  • 2016-06-07
  • 本文字数:2061 字

    阅读完需:约 7 分钟

Realm 针对 iOS 和安卓发布了它作为面向对象数据库的 1.0 版本。

两年前的发布后,Realm 打算为了使用设备上的技术,例如SQLite 或Core Data,而提供一个更简单的、性能更高的选择方案。

Realm 的技术团队告诉 InfoQ:在移动数据库的最新发布中值得注意的变化是一个改进的查询语言,其中支持了部分的字符串匹配、关系遍历、多字段排序和去重匹配。本版本还伴随着一些其他的改进,包括在安卓上减少了 70% 的库资源占用,它使用户提交更小型的应用成为可能,并且引入了 Realm 配置类,为越来越多的拥有多 Realm 的应用提供服务。

继它最近的一个为.NET 开发者的响应式数据库 Realm Xamarin 的发布,Realm 1.0 的变更日志包括了以下的支持:

  • 通过 Realm Swift 支持苹果的 Swift 语言
  • Carthage,Swift 的依赖包管理
  • 苹果的 watchOS 和 tvOS
  • 安卓上的 RxJava
  • Kotlin,安卓应用开发的新兴语言

在“ 13949 次提交和 6148 个已关闭的问题之后:感谢大家帮助 Realm 到达 1.0 版本”的博客文章中,Realm 团队展示了下面的 Java 展示的内联代码:

复制代码
// Define you model class by extending RealmObject
public class Dog extends RealmObject {
private String name;
private int age;
// ... Generated getters and setters ...
}
public class Person extends RealmObject {
@PrimaryKey
private long id;
private String name;
private RealmList<dog> dogs; // Declare one-to-many relationships
public Person(long id, String name) {
this.id = id;
this.name = name;
}
// ... Generated getters and setters ...
}
// Use them like regular java objects
Dog dog = new Dog();
dog.setName("Rex");
dog.setAge(1);
// Create a RealmConfiguration that saves the Realm file in the app's "files" directory.
RealmConfiguration realmConfig = new RealmConfiguration.Builder(context).build();
Realm.setDefaultConfiguration(realmConfig);
// Get a Realm instance for this thread
Realm realm = Realm.getDefaultInstance();
// Query Realm for all dogs younger than 2 years old
final RealmResults<dog> puppies = realm.where(Dog.class).lessThan("age", 2).findAll();
puppies.size(); // => 0 because no dogs have been added to the Realm yet
// Persist your data in a transaction
realm.beginTransaction();
final Dog managedDog = realm.copyToRealm(dog); // Persist unmanaged objects
Person person = realm.createObject(Person.class); // Create managed objects directly
person.getDogs().add(managedDog);
realm.commitTransaction();
// Listeners will be notified when data changes
puppies.addChangeListener(new RealmChangeListener<realmresults><dog>>() {
@Override
public void onChange(RealmResults<dog> results) {
// Query results are updated in real time
puppies.size(); // => 1
}
});
// Asynchronously update objects on a background thread
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
Dog dog = bgRealm.where(Dog.class).equals("age", 1).findFirst();
dog.setAge(3);
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
// Original queries and Realm objects are automatically updated.
puppies.size(); // => 0 because there are no more puppies younger than 2 years old
managedDog.getAge(); // => 3 the dogs age is updated
}
});
</dog></dog></realmresults></dog></dog>

在 Hacker News 中对 Realm 1.0 的探讨中,围绕主要版本的讨论气氛很积极,其中很多用户给予了他们赞扬和祝贺。在有关 Realm 的闭源“内核”的探讨中,用户 mahyarm 提到了 Realm FAQ 中的评论者:

我在代码中看到指向“内核”的引用,那是什么?

内核是指向我们内部的 C++ 存储引擎。它现在不是开源的,但是我们也确实计划:一旦我们有机会将其整理干净、重命名并最终确定它内部的主要功能,就在 Apache 2.0 许可证下将其开源。同时,它的二进制版本在 Realm 核心(TightDB)二进制许可证下发布。

在 1.0 版本发布的同时,Realm 还汇报了他们的新的里程碑:拥有超过十亿在它支持的 iOS 和安卓应用上的终端用户。

有关对此新闻的看法,Realm 的 CEO Alexander Stigsen 说道:“能看到我们成长之快和使用 Realm 来巩固移动基础设施的公司的高水准是十分激动人心的。达到了十亿的终端用户是一个很少有公司能够达到的里程碑,是一个我们探求移动数据存储创新方法的证明。”

查看英文原文 Realm reaches 1B users,100k active developers, launches version 1.0


感谢夏雪对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-06-07 19:003326
用户头像

发布了 26 篇内容, 共 75439 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

嘘!马斯克的话别全信

ZA技术社区

云服务 科技

实践零信任(Zero Trust):步骤详解

Apifox

程序员 安全 API 接口安全 零信任

解决Lightroom无法使用修改照片的问题

南屿

Lightroom无法使用

纹理贴图解释

3D建模设计

3D渲染 3D材质编辑 3D材质纹理贴图

流式湖仓增强,Hologres + Flink构建企业级实时数仓

阿里云大数据AI技术

【Mac/win】Imagenomic Portraiture-PS磨皮插件-支持Ps2024 直装激活版

南屿

Imagenomic Professional PS磨皮滤镜降噪插件套装

小红书笔记详情数据接口(smallredbook.item_get_video)丨小红书API接口

tbapi

小红书笔记详情接口 小红书API接口

工业 4.0 和数字孪生

3D建模设计

智慧城市 智慧园区 3D场景建模 3D数字孪生场景编辑器

适用于ipad/iphone的虚拟定位工具:FonesGo Location Changer

南屿

GPS Mac软件 FonesGo Location Changer

Calendar 366 II for Mac日历软件 最新版下载安装

南屿

Mac日历软件 菜单栏日历提醒工具 Calendar 366 II mac版 Calendar 366 II 下载

国企财务管控模式的创新思路

智达方通

国企 国有企业 财务管控 国企财务管控

3D 纹理的综合指南

3D建模设计

3D渲染 3D材质编辑 3D材质纹理贴图

人大金仓&恒生电子助力湘财证券TA系统国产化升级

科技热闻

mac VM虚拟机中文版 VMware Fusion Pro 13 密钥激活 附 安装教程

南屿

我的效率自救之路:大胆对低效的会议说“不!”

LigaAI

高效工作 经验分享 会议管理 研发提效 高绩效团队

文心一言 VS 讯飞星火 VS chatgpt (172)-- 算法导论13.3 1题

福大大架构师每日一题

福大大架构师每日一题

速卖通商品列表数据接口(aliexpress.item_search)丨速卖通API接口

tbapi

速卖通API接口 速卖通商品数据接口 速卖通商品列表数据接口 关键词搜索速卖通商品接口

功能强大的专业扫描套装:ExactScan Enterprise中文下载

胖墩儿不胖y

Mac软件 扫描工具

苹果Mac Finder 文件管理器替代工具:Path Finder

南屿

Path Finder破解 Path Finder下载 Mac文件管理

Solidity之旅十七-库 [library]

BSN研习社

如何推动智能制造 - 数字孪生示例

3D建模设计

智慧城市 智慧园区 3D场景建模 3D数字孪生场景编辑器

苹果电脑音乐制作工具有哪些?分享几款Mac端好用的音乐制作工具!

南屿

mac软件下载 mac音乐制作工具

AdGuard for Mac(macOS上的广告拦截工具)中文版 支持M1/M2

南屿

mac软件下载 AdGuard Mac版 Mac广告拦截工具 Adguard 中文版

30+华为云专家倾力打造,《2023华为开发者宝典》免费下载

华为云开发者联盟

程序员 开发者 华为云 华为云开发者联盟

Realm获得了10亿的用户,10万活跃的开发者,并且发布了1.0版本_数据库_James Chesters_InfoQ精选文章