Slide 1

Slide 1 text

Realm meetup #2 [email protected]

Slide 2

Slide 2 text

#realm_jp [email protected]

Slide 3

Slide 3 text

Katsumi Kishikawa Realm Inc. [email protected]

Slide 4

Slide 4 text

Realm Mobile Platform [email protected]

Slide 5

Slide 5 text

Open Sourcing Realm Core [email protected]

Slide 6

Slide 6 text

What is Realm Mobile Platform? [email protected]

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

[email protected] Realm Mobile Platform

Slide 10

Slide 10 text

[email protected] Realm Mobile Platform Realm Mobile Database

Slide 11

Slide 11 text

Realm Mobile Platform [email protected] Realm Mobile Database Data Sync ٔ،ٕة؎يず劍

Slide 12

Slide 12 text

Realm Mobile Platform [email protected] Realm Mobile Database Data Sync User Identify ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ

Slide 13

Slide 13 text

Realm Mobile Platform [email protected] Realm Mobile Database Data Sync Access Control User Identify ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ ر٦ةⰟ剣

Slide 14

Slide 14 text

Realm Mobile Platform [email protected] Realm Mobile Database Data Sync Access Control User Identify Event Handling ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ ر٦ةⰟ剣 ؽآطأٗآحؙ

Slide 15

Slide 15 text

Realm Mobile Platform [email protected] [email protected] Realm Mobile Database

Slide 16

Slide 16 text

Slide 17

Slide 17 text

࢖ͬͯΈΔ [email protected]

Slide 18

Slide 18 text

Slide 19

Slide 19 text

Realm Object ServerΛىಈ͢Δ [email protected] [email protected]

Slide 20

Slide 20 text

AdminΞΧ΢ϯτΛ࡞Δ [email protected]

Slide 21

Slide 21 text

Slide 22

Slide 22 text

Slide 23

Slide 23 text

Slide 24

Slide 24 text

Slide 25

Slide 25 text

Object Server্ͷσʔλΛݟΔ [email protected]

Slide 26

Slide 26 text

Slide 27

Slide 27 text

Slide 28

Slide 28 text

ΞΫηετʔΫϯʢmacOSʣ [email protected] [email protected]

Slide 29

Slide 29 text

ΞΫηετʔΫϯʢCentOSʣ [email protected] [email protected] # 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

جຊతͳ࢖͍ํ [email protected] [email protected] 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

Slide 32

Slide 32 text

FacebookϩάΠϯ [email protected] [email protected] 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ϩάΠϯ [email protected] [email protected] developers.facebook.com/docs/facebook-login/ios

Slide 34

Slide 34 text

Typical Mobile App Development [email protected] /login /tasks /tasks/id

Slide 35

Slide 35 text

w/ Realm Mobile Platform [email protected]

Slide 36

Slide 36 text

Data Sync [email protected] ر٦ةず劍

Slide 37

Slide 37 text

User Identify [email protected] ر٦ةず劍 ِ٦ؠ٦陎ⴽ

Slide 38

Slide 38 text

Access Control [email protected] ر٦ةず劍 ِ٦ؠ٦陎ⴽ ،ؙإأ؝ٝزٗ٦ٕ

Slide 39

Slide 39 text

Event Handling [email protected] ؎كٝزعٝسؚٔٝ

Slide 40

Slide 40 text

ΠϕϯτϋϯυϦϯά [email protected] 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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

Demo github.com/realm/RealmTasks [email protected]

Slide 45

Slide 45 text

Recent Updates [email protected]

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) [email protected]

Slide 47

Slide 47 text

Realm Objective-C/Swift 2.0 [email protected]

Slide 48

Slide 48 text

Realm Objective-C/Swift 2.0 • Realm Mobile PlatformରԠ • RealmSwift.Error => RealmSwift.Realm.Error [email protected] [email protected]

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: [email protected] • % Slack: slack.realm.io/ [email protected]

Slide 50

Slide 50 text

Realm Japan User Group Facebook [email protected]

Slide 51

Slide 51 text

Support Chat Slack [email protected]

Slide 52

Slide 52 text

Ξϯέʔτ bit.ly/RealmJP_Kansai2 [email protected]

Slide 53

Slide 53 text

Questions? Katsuma Kishikawa [email protected] www.realm.io/jp @k_katsumi