際際滷
Submit Search
Android て? Realm を聞ってみよう
?
30 likes
?
7,950 views
Ryutaro Miyashita
Follow
Presentation of 03.14.2015 Realm meetup #1 in Sansan. Get started Realm-Java.
Read less
Read more
1 of 36
Download now
Download to read offline
More Related Content
Android て? Realm を聞ってみよう
1.
RealmAndroid で Realm を聞ってみよう Introduction
to Realm for Android Application Development Division Android Team, Ryutaro Miyashita 2015.03.14
2.
RealmRyutaro Miyashita Mobile Application
Engineer / ChatWork DroidKaigi は鯛ちました
3.
Realm ChatWork とは ビジネス鬚韻離船礇奪肇挑`ルです 秘芙方 60,000
を融篤 謹Nが秘り住じる寄きな二Iや、掲 IT 狼の嶄弌二Iを嶄伉に秘 旋喘室gはアグレッシブ Realm をはじめとして、Scala や巓x SaaS, AWS などをフル試喘
4.
Realm
5.
Realm 1. NoSQL 侏の
DB + ORM 2. C++ uの Realm-Core 3. iOS /Android I 4. とても堀い!
6.
RealmRealm を聞ってみよう
7.
檎艶温鉛馨聞い兵めるのは酒g
8.
Realm build.gradle に峰して Sync
する dependencies { compile 'io.realm:realm-android:0.80.0' }
9.
Realm モデルをく = テ`ブル協xをく public
class User extends RealmObject { @PrimaryKey private long id; @Index private String name; // Getter と Setter は福待 }
10.
Realm Realm realm =
Realm.getInstance(/* Context */); // Retrolambda realm.executeTransaction(_realm -> { User user = _realm.createObject(User.class); user.setId(1); user.setName("John Doe"); }); realm.close(); トランザクションの嶄でオブジェクトを恬る
11.
Realm Realm realm =
Realm.getInstance(/* Context */); User user = realm.where(User.class) .equalTo("id", 1) .findFirst(); realm.close(); メソッドチェインでクエリを恬ってオブジェクトを函り竃す iOS 井では NSPredicate like な碧だが、Android ではクエリビルダ
12.
檎艶温鉛馨麿の喟A晒字更との曳熟
13.
Realm Realm SQLiteShared Preferences g XML KVS Wい 中宜 RDBMS 堀い g NoSQL
RDB 堀い いいとこ函り:)
14.
Realm Realm ActiveAndroid ORM (SQLite) ActiveRecord Wい g NoSQL
RDB 堀い いいとこ函り:)
15.
Realm 兜豚晒rg[ms] 0 4000 8000 12000 16000 Realm ActiveAndroid 15,544 ms 5,054
ms Insert 周方 10,000 周 Nexus 4 / Android 5.0.1 JSON ★ Object
16.
RealmgHに Realm を聞うなら
17.
檎艶温鉛馨圧催晒
18.
Realmbyte[] key =
new byte[64]; new SecureRandom().nextBytes(key); Realm realm = Realm.getInstance(/* Context */, key); byte 侏の塘双をLさ 64 で恬る SecureRandom#nextBytes を聞って岱方バイトを函り竃す 圧催晒を聞っても堀業にそこまで唹しない!
19.
Realm 兜豚晒rg[ms] 0 4000 8000 12000 16000 Realm ActiveAndroid 15,544 ms 5,054
ms Insert 周方 10,000 周 Nexus 4 / Android 5.0.1 JSON ★ Object ◎ 圧催晒を聞ったY惚
20.
Realmbyte[] key =
new byte[64]; new SecureRandom().nextBytes(key); Realm realm = Realm.getInstance(/* Context */, key); ドキュメントとサンプルの秤鵑燐栽來が函れていない Key の隠贋圭隈は戻幣されていない ドキュメントは 32 になっている サンプルはgな Random になっている どこかに隠贋したい
21.
Realm Key を恬ったらファイルにして隠贋する Key ファイルがあればiみ竃して
byte 塘双に鯉{する byte[] key; File keyFile = context.getFileStreamPath(FILE_NAME); if (keyFile.exists()) { key = Files.readFromFile(keyFile, 64); } else { key = new byte[64]; new SecureRandom().nextBytes(key); Files.byteToFile(context, key, FILE_NAME); } http://goo.gl/GIK2qXFiles ★
22.
RealmRealm オブジェクト
23.
Realm Realm realm; try { realm
= Realm.getInstance(/* Context */, key); } finally { if (realm != null) realm.close(); } Realm を荷恬するときは Realm#getInstance をU喇する Realm オブジェクトは聞いKわったら close が駅勣である
24.
Realmtry (Realm realm
= Realm.getInstance(/* Context */, key)) { // do something } Android 4.4 參貧であれば try-with-resources が聞える でも、4.4 參貧をタ`ゲットにできるのは謹蛍、栖弊
25.
Realm public class MainActivity
extends ActionBarActivity { private Realm mRealm; @Override protected void onCreate(Bundle savedInstanceState) { mRealm = Realm.getInstance(getApplicationContext()); } @Override protected void onDestroy() { super.onDestroy(); if (mRealm != null) mRealm.close(); } } Activity の嶄であれば、インスタンス篳として隠隔してしまう onResume のタイミングで null チェックすると措いかも onDestroy のタイミングで close する
26.
檎艶温鉛馨マルチスレッド
27.
Realm Realm realm =
Realm.getInstance(/* Context */, key); User user = realm.where(User.class) .equalTo("id", 1) .findFirst(); // Retrolambda new Thread(() -> { Log.d(TAG, user.getName()); }).start(); realm.close(); 匯咾そうではある
28.
Realm // Retrolambda new Thread(()
-> { Realm realm = Realm.getInstance(/* Context */, key); User user = realm.where(User.class) .equalTo("id", 1) .findFirst(); Log.d(TAG, user.getName()); realm.close(); }).start(); Thread の嶄で Realm オブジェクトそのものから函誼し岷す駅勣がある Realm オブジェクトの close 梨れに勣廣吭
29.
檎艶温鉛馨廣吭したいところ
30.
Realm public class User
extends RealmObject { @PrimaryKey private long id; @Index private String name; // Getter と Setter は福待 } モデルのフィ`ルドに聞える侏は崙sがある (リンク) 畠てのフィ`ルドは private かつ、Getter / Setter が駅勣である equals, hashCode, toString も根めて、メソッドをO崔できない モデルの崙s
31.
Realm0.78 0.77 0.79 0.80 インメモリオブジェクト executeTransaction メソッド 圧催晒C嬬 PrimaryKey INSERT or
Update (´orUpdate メソッド) static フィ`ルド Realm モデル 0.01 のアップデ`トが^爾
32.
Realmbyte[] key =
new byte[64]; new SecureRandom().nextBytes(key); Realm realm = Realm.getInstance(/* Context */, key); 哂Z井のドキュメント = 恷仟 』 屎しい秤 GitHub のサンプル 』 屎しい秤 ドキュメントは 32 になっている サンプルはgな Random になっている ドキュメントとサンプルコ`ド Mみ栽わせ + 編^ + GitHub の changelog / Issues / Pull Request をiむ
33.
檎艶温鉛馨恷朔に
34.
Realm 1. Realm は返Xに兵められる 2.
スタンドアロンアプリに恷m 3. 掲械に互堀に嘛する 4. まだ碧や嘛は廣吭が駅勣
35.
檎艶温鉛馨傚
36.
Realm ChatWork でPきませんか? 1. Android Realm,
RxJava, RxAndroid 2. iOS ReactiveCocoa, Mantle 3.Web Scala, spray, DDD, ES6, React.js 和のキ`ワ`ドにピンときた圭、お蕗がけ or エントリを!
Download now