Slide 1

Slide 1 text

Realm meetup #2 kk@realm.io

Slide 2

Slide 2 text

#realm_jp kk@realm.io

Slide 3

Slide 3 text

Katsumi Kishikawa Realm Inc. kk@realm.io

Slide 4

Slide 4 text

Realm Mobile Platform kk@realm.io

Slide 5

Slide 5 text

Open Sourcing Realm Core kk@realm.io

Slide 6

Slide 6 text

What is Realm Mobile Platform? kk@realm.io

Slide 7

Slide 7 text

Realm ˖ 42-JUFך➿剏הז׷ٌغ؎ٕرغ؎أ㼔欽ך ر٦ةك٦أ ˖ ؙٗأفٓحزؿؓ٦ي ˖ J04"OESPJE ˖ +BWB 4XJGU 0CKFDUJWF$ $ +BWB4DSJQU ˖ ؔ٦فٝا٦أ kk@realm.io

Slide 8

Slide 8 text

Realm Mobile Database kk@realm.io ˖ 42-JUFך➿剏הז׷ٌغ؎ٕرغ؎أ㼔欽ך ر٦ةك٦أ ˖ ؙٗأفٓحزؿؓ٦ي ˖ J04"OESPJE ˖ +BWB 4XJGU 0CKFDUJWF$ $ +BWB4DSJQU ˖ ؔ٦فٝا٦أ

Slide 9

Slide 9 text

kk@realm.io Realm Mobile Platform

Slide 10

Slide 10 text

kk@realm.io Realm Mobile Platform Realm Mobile Database

Slide 11

Slide 11 text

Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync ٔ،ٕة؎يず劍

Slide 12

Slide 12 text

Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync User Identify ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ

Slide 13

Slide 13 text

Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync Access Control User Identify ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ ر٦ةⰟ剣

Slide 14

Slide 14 text

Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync Access Control User Identify Event Handling ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ ر٦ةⰟ剣 ؽآطأٗآحؙ

Slide 15

Slide 15 text

Realm Mobile Platform jp@realm.io kk@realm.io Realm Mobile Database

Slide 16

Slide 16 text

Demo kk@realm.io

Slide 17

Slide 17 text

࢖ͬͯΈΔ kk@realm.io

Slide 18

Slide 18 text

ηοτΞοϓ jp@realm.io kk@realm.io

Slide 19

Slide 19 text

Realm Object ServerΛىಈ͢Δ jp@realm.io kk@realm.io

Slide 20

Slide 20 text

AdminΞΧ΢ϯτΛ࡞Δ kk@realm.io

Slide 21

Slide 21 text

ηοτΞοϓ jp@realm.io kk@realm.io

Slide 22

Slide 22 text

ηοτΞοϓ jp@realm.io kk@realm.io

Slide 23

Slide 23 text

jp@realm.io kk@realm.io μογϡϘʔυ

Slide 24

Slide 24 text

jp@realm.io kk@realm.io μογϡϘʔυ

Slide 25

Slide 25 text

Object Server্ͷσʔλΛݟΔ kk@realm.io

Slide 26

Slide 26 text

Realm Browser jp@realm.io kk@realm.io

Slide 27

Slide 27 text

جຊతͳ࢖͍ํ jp@realm.io kk@realm.io

Slide 28

Slide 28 text

ΞΫηετʔΫϯʢmacOSʣ jp@realm.io kk@realm.io

Slide 29

Slide 29 text

ΞΫηετʔΫϯʢCentOSʣ jp@realm.io kk@realm.io # cd /etc/realm/ # ls admin_token.base64 configuration.yml token- signature.key token-signature.pub # cat admin_token.base64 ewoJImlkZW50a...

Slide 30

Slide 30 text

جຊతͳ࢖͍ํ jp@realm.io kk@realm.io User.authenticate(with: Credential.usernamePassword(username: "username", password: "password", actions: []), server: URL(string: "http://128.199.141.202:9080")!, onCompletion: { user, error in guard let user = user else { fatalError(String(describing: error)) } let configuration = Realm.Configuration( syncConfiguration: (user, URL(string: "realm://128.199.141.202:9080/~/realmtasks")!) ) self.realm = try! Realm(configuration: configuration) })

Slide 31

Slide 31 text

FacebookϩάΠϯ jp@realm.io kk@realm.io

Slide 32

Slide 32 text

FacebookϩάΠϯ jp@realm.io kk@realm.io func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { if let _ = error { return } if result.isCancelled { return } User.authenticate(with: Credential.facebook(token: result.token.tokenString), server: URL(string: "http://128.199.141.202:9080")!, onCompletion: { user, error in guard let user = user else { fatalError(String(describing: error)) } let configuration = Realm.Configuration( syncConfiguration: (user, URL(string: "realm://128.199.141.202:9080/~/realmtasks")!) ) self.realm = try! Realm(configuration: configuration) }) }

Slide 33

Slide 33 text

FacebookϩάΠϯ jp@realm.io kk@realm.io developers.facebook.com/docs/facebook-login/ios

Slide 34

Slide 34 text

Typical Mobile App Development kk@realm.io /login /tasks /tasks/id

Slide 35

Slide 35 text

w/ Realm Mobile Platform kk@realm.io

Slide 36

Slide 36 text

Data Sync kk@realm.io ر٦ةず劍

Slide 37

Slide 37 text

User Identify kk@realm.io ر٦ةず劍 ِ٦ؠ٦陎ⴽ

Slide 38

Slide 38 text

Access Control kk@realm.io ر٦ةず劍 ِ٦ؠ٦陎ⴽ ،ؙإأ؝ٝزٗ٦ٕ

Slide 39

Slide 39 text

Event Handling kk@realm.io ؎كٝزعٝسؚٔٝ

Slide 40

Slide 40 text

ΠϕϯτϋϯυϦϯά kk@realm.io var Realm = require('realm'); var filter_callback = function(realm_name) { ... }; var change_notification_callback = function(realm_name, realm) { var channels = realm.objects('Channel'); for (var i = 0; i < channels.length; ++i) { var channel = channels[i]; ... } }; Realm.setGlobalSyncListener(local_root_dir, server_base_url, access_token, filter_callback, change_notification_callback);

Slide 41

Slide 41 text

jp@realm.io kk@realm.io

Slide 42

Slide 42 text

Realm Mobile Platform ˖ .PCJMF%BUBCBTF ˖ ⿽倯ぢךر٦ةず劍 ˖ ٔ،ٕة؎ي ˖ ء٦يٖأ ˖ ؝ٝؿؙٔزך荈⹛鍑寸 ˖ ِ٦ؠ٦陎ⴽ ˖ ؎كٝزعٝسؚٔٝ • αʔόʔϓογϡ • σʔλڞ༗ • ΞΫηείϯτϩʔϧ kk@realm.io

Slide 43

Slide 43 text

ίϯϑϦΫτͷղܾ jp@realm.io kk@realm.io • جຊ͸ޙউͪ • ಉ͡ΞΠςϜʹผͷมߋΛՃ͑ͨ৔߹ɺޙʹىͬͨ͜มߋ͕࠾༻ ͞Ε·͢ɻ • ಉ͡ΠϯσοΫε΁ͷૠೖ͸࣌ؒॱʹͳΔ • ࡟আ͸͢΂ͯʹউͭ • ͋ΔΞΠςϜ͕࡟আ͞ΕͯɺผͷσόΠεͰ͸ಉ͡ΞΠςϜΛมߋ ͨ͠ɺͱ͍͏৔߹͸ɺ࡟আ͚͕ͩى͜Γ·͢ɻ

Slide 44

Slide 44 text

Demo github.com/realm/RealmTasks kk@realm.io

Slide 45

Slide 45 text

Recent Updates kk@realm.io

Slide 46

Slide 46 text

Recent Updates • Realm Objective-C/Swift 2.0 (was 1.1.0) • Realm Java 2.0 (was 1.1.0) • Realm React Native 0.14.0 • Realm Xamarin 0.78 (was 0.77.2) kk@realm.io

Slide 47

Slide 47 text

Realm Objective-C/Swift 2.0 kk@realm.io

Slide 48

Slide 48 text

Realm Objective-C/Swift 2.0 • Realm Mobile PlatformରԠ • RealmSwift.Error => RealmSwift.Realm.Error jp@realm.io kk@realm.io

Slide 49

Slide 49 text

Where to find us • % Realm Japan User Group: facebook.com/groups/realmjp • % Twitter: twitter.com/realmJapan • GitHub: github.com/realm • % StackOverflow: ja.stackoverflow.com/questions/tagged/realm • % Email: help@realm.io • % Slack: slack.realm.io/ kk@realm.io

Slide 50

Slide 50 text

Realm Japan User Group Facebook kk@realm.io

Slide 51

Slide 51 text

Support Chat Slack kk@realm.io

Slide 52

Slide 52 text

Ξϯέʔτ bit.ly/RealmJP_Kansai2 kk@realm.io

Slide 53

Slide 53 text

Questions? Katsuma Kishikawa kk@realm.io www.realm.io/jp @k_katsumi