Top Banner
Realm The Finest Artist
21

Realm

Aug 15, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Realm

RealmThe Finest Artist

Page 2: Realm

Realm

Real MReal Mobile

Real Mobile Database뤰

렐름

렐음

Page 3: Realm

Realm = Kingdom

Page 4: Realm

Realm [Rϵlm]

Page 5: Realm

렘 [레엠]

Page 6: Realm

Realm = Mobile Database

Page 7: Realm

RealmReplacement for SQLite & Core Data

Android/Android Wear/iOS/OS X/Watch OS Java/Kotlin/Objective-C/Swift

Open Source Easy to Use Super Fast

Page 8: Realm

How Fast?

Page 9: Realm

Gson vs Realm

This test is to compare the speed of Gson and Realm with an extremely simple object model. The overall result of the test shows that Realm performs a little faster than Gson. However, it could show different results in other test conditions. Refer to the appendix for further information.

Object Creation

Gson.toJson

Gson.fromJson

Realm.createObject

copyToRealm

copyToRealmOrUpdate

Milisecond

0 450 900 1350 1800

Gson

Realm

)

)

Page 10: Realm

Modelpublic class User extends RealmObject {

@PrimaryKey private String name; private int age;

@Ignore private int sessionId;

// + Standard getters & setters generated by your IDE }

Page 11: Realm

Relationpublic class Email extends RealmObject { private String address; private boolean active; }

// Many to One public class Contact extends RealmObject { private Email email; }

// Many to Many public class Contact extends RealmObject { private RealmList<Email> emails; }

Page 12: Realm

Writerealm.beginTransaction(); User user = realm.createObject(User.class); // Create a new object user.setName("John"); user.setEmail("[email protected]"); realm.commitTransaction();

User user = new User("John"); user.setEmail("[email protected]"); realm.beginTransaction(); realm.copyToRealm(user); // Copy the object to Realm. realm.commitTransaction();

Page 13: Realm

WriteUser user = realm.createObject(User.class);

realm.copyToRealm(user);

realm.copyToRealmOrUpdate(user);

Page 14: Realm

Query// Fluent interface RealmResults<User> result = realm.where(User.class) .sort("age"); .beginGroup() .equalTo("name", "John") .or() .equalTo("name", "Peter") .endGroup() .findAll();

for (User user : result) { // do something... }

Page 15: Realm

SupportEncryption (AES-256) Multiple Databases In-Memory Realm

Listeners/Notifications Migration

Realm Browser (Mac OS)

Page 16: Realm

UsersPinterest Groupon Cymera

RIDIBOOKS iamschool

Been Together

Page 17: Realm

More

Homepage: http://realm.io/

Facebook: http://fb.com/groups/realmkr

Email: [email protected]

Page 18: Realm
Page 19: Realm
Page 20: Realm

Thank You :)

Page 21: Realm

AppendixTest Device: Galaxy S3 Test Model public class Contact { public String address; public String number; public boolean active; }

10000 times iteration per each test. 5 times test per each method Test Code: https://github.com/Test-Codes/Realm-Java-Benchmark