Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Introducing Realm Mobile Platform
Kishikawa Katsumi
October 20, 2016
Programming
2
420
Introducing Realm Mobile Platform
Introducing Realm Mobile Platform
Kishikawa Katsumi
October 20, 2016
Tweet
Share
More Decks by Kishikawa Katsumi
See All by Kishikawa Katsumi
家のいろいろな数値を計測する
kishikawakatsumi
3
1.1k
GitHub Actionsでテストの結果をわかりやすく表示する
kishikawakatsumi
1
130
GitHub Actionsでテストの結果をわかりやすく表示する
kishikawakatsumi
1
680
Network ExtensionでiOSデバイス上で動くパケットキャプチャを作る
kishikawakatsumi
7
4.1k
Xcode Cloud at a glance
kishikawakatsumi
2
710
StoreKit Testingについて
kishikawakatsumi
1
780
Build Swift Web Playground
kishikawakatsumi
1
120
SourceKit-LSPを使ってWebブラウザでSwiftの入力補完を実現する
kishikawakatsumi
1
2.2k
400種類のアプリを毎日ビルドする自動化の技術
kishikawakatsumi
15
7.5k
Other Decks in Programming
See All in Programming
デュアルトラックアジャイル× Agile Testingから 見えてきたQAのミライ
atamaplus
0
490
競プロへの誘 -いざな-
u76ner
0
380
A technique to implement DSL in Ruby
okuramasafumi
0
830
Licences open source : entre guerre de clochers et radicalité
pylapp
2
380
プログラミングを勉強したいと言われたら
yuba_4
0
430
Oculus Interaction SDK 概説 / xrdnk-caunity-LT4
xrdnk
0
300
mrubyを1300円のボードで動かそう
yuuu
0
190
WindowsコンテナDojo:第2回 Windowsコンテナアプリのビルド、公開、デプロイ
oniak3ibm
PRO
0
160
Kotlin KSP - Intro
taehwandev
1
510
Let's build components, not layers
thombergs
1
230
CIでAndroidUIテストの様子を録画してみた
mkeeda
0
190
NieR Re[in]carnationにおけるUnityアニメーション活用術
applibot
1
950
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
25
1.5k
Navigating Team Friction
lara
175
11k
Building Applications with DynamoDB
mza
83
4.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
920
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
The Language of Interfaces
destraynor
148
20k
Facilitating Awesome Meetings
lara
29
3.9k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
What the flash - Photography Introduction
edds
61
10k
We Have a Design System, Now What?
morganepeng
35
2.9k
Art, The Web, and Tiny UX
lynnandtonic
280
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
103
16k
Transcript
Realm meetup #2 kk@realm.io
#realm_jp kk@realm.io
Katsumi Kishikawa Realm Inc. kk@realm.io
Realm Mobile Platform kk@realm.io
Open Sourcing Realm Core kk@realm.io
What is Realm Mobile Platform? kk@realm.io
Realm ˖ 42-JUFך➿剏הזٌغ؎ٕرغ؎أ㼔欽ך ر٦ةك٦أ ˖ ؙٗأفٓحزؿؓ٦ي ˖ J04"OESPJE ˖ +BWB
4XJGU 0CKFDUJWF$ $ +BWB4DSJQU ˖ ؔ٦فٝا٦أ kk@realm.io
Realm Mobile Database kk@realm.io ˖ 42-JUFך➿剏הזٌغ؎ٕرغ؎أ㼔欽ך ر٦ةك٦أ ˖ ؙٗأفٓحزؿؓ٦ي ˖
J04"OESPJE ˖ +BWB 4XJGU 0CKFDUJWF$ $ +BWB4DSJQU ˖ ؔ٦فٝا٦أ
kk@realm.io Realm Mobile Platform
kk@realm.io Realm Mobile Platform Realm Mobile Database
Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync ٔ،ٕة؎يず劍
Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync User
Identify ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ
Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync Access
Control User Identify ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ ر٦ةⰟ剣
Realm Mobile Platform kk@realm.io Realm Mobile Database Data Sync Access
Control User Identify Event Handling ٔ،ٕة؎يず劍 ِ٦ؠ٦陎ⴽ ر٦ةⰟ剣 ؽآطأٗآحؙ
Realm Mobile Platform jp@realm.io kk@realm.io Realm Mobile Database
Demo kk@realm.io
ͬͯΈΔ kk@realm.io
ηοτΞοϓ jp@realm.io kk@realm.io
Realm Object ServerΛىಈ͢Δ jp@realm.io kk@realm.io
AdminΞΧϯτΛ࡞Δ kk@realm.io
ηοτΞοϓ jp@realm.io kk@realm.io
ηοτΞοϓ jp@realm.io kk@realm.io
jp@realm.io kk@realm.io μογϡϘʔυ
jp@realm.io kk@realm.io μογϡϘʔυ
Object Server্ͷσʔλΛݟΔ kk@realm.io
Realm Browser jp@realm.io kk@realm.io
جຊతͳ͍ํ jp@realm.io kk@realm.io
ΞΫηετʔΫϯʢmacOSʣ jp@realm.io kk@realm.io
ΞΫηετʔΫϯʢ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...
جຊతͳ͍ํ 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) })
FacebookϩάΠϯ jp@realm.io kk@realm.io
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) }) }
FacebookϩάΠϯ jp@realm.io kk@realm.io developers.facebook.com/docs/facebook-login/ios
Typical Mobile App Development kk@realm.io /login /tasks /tasks/id
w/ Realm Mobile Platform kk@realm.io
Data Sync kk@realm.io ر٦ةず劍
User Identify kk@realm.io ر٦ةず劍 ِ٦ؠ٦陎ⴽ
Access Control kk@realm.io ر٦ةず劍 ِ٦ؠ٦陎ⴽ ،ؙإأ؝ٝزٗ٦ٕ
Event Handling kk@realm.io ؎كٝزعٝسؚٔٝ
ΠϕϯτϋϯυϦϯά 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);
jp@realm.io kk@realm.io
Realm Mobile Platform ˖ .PCJMF%BUBCBTF ˖ 倯ぢךر٦ةず劍 ˖ ٔ،ٕة؎ي ˖
ء٦يٖأ ˖ ؝ٝؿؙٔزך荈⹛鍑寸 ˖ ِ٦ؠ٦陎ⴽ ˖ ؎كٝزعٝسؚٔٝ • αʔόʔϓογϡ • σʔλڞ༗ • ΞΫηείϯτϩʔϧ kk@realm.io
ίϯϑϦΫτͷղܾ jp@realm.io kk@realm.io • جຊޙউͪ • ಉ͡ΞΠςϜʹผͷมߋΛՃ͑ͨ߹ɺޙʹىͬͨ͜มߋ͕࠾༻ ͞Ε·͢ɻ • ಉ͡ΠϯσοΫεͷૠೖ࣌ؒॱʹͳΔ
• আͯ͢ʹউͭ • ͋ΔΞΠςϜ͕আ͞ΕͯɺผͷσόΠεͰಉ͡ΞΠςϜΛมߋ ͨ͠ɺͱ͍͏߹ɺআ͚͕ͩى͜Γ·͢ɻ
Demo github.com/realm/RealmTasks kk@realm.io
Recent Updates kk@realm.io
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
Realm Objective-C/Swift 2.0 kk@realm.io
Realm Objective-C/Swift 2.0 • Realm Mobile PlatformରԠ • RealmSwift.Error =>
RealmSwift.Realm.Error jp@realm.io kk@realm.io
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
Realm Japan User Group Facebook kk@realm.io
Support Chat Slack kk@realm.io
Ξϯέʔτ bit.ly/RealmJP_Kansai2 kk@realm.io
Questions? Katsuma Kishikawa kk@realm.io www.realm.io/jp @k_katsumi