Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introducing Realm Mobile Platform
Search
Kishikawa Katsumi
October 20, 2016
Programming
2
470
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
iOSDC 2024 SMBファイル共有をSwiftで実装する
kishikawakatsumi
1
210
Enhancing Applications with Accessibility API
kishikawakatsumi
3
3.7k
Mastering SwiftSyntax
kishikawakatsumi
4
5.8k
My SwiftData Review
kishikawakatsumi
7
1.4k
Swift Expression Macros: a practical introduction
kishikawakatsumi
3
1.9k
Xcode Cloudの評価
kishikawakatsumi
2
1.3k
Regular expressions basics/正規表現の基本
kishikawakatsumi
7
750
家のいろいろな数値を計測する
kishikawakatsumi
4
2.2k
GitHub Actionsでテストの結果をわかりやすく表示する
kishikawakatsumi
1
1.1k
Other Decks in Programming
See All in Programming
読まないコードリーディング術
hisaju
0
110
GoとPHPのインターフェイスの違い
shimabox
2
210
メンテが命: PHPフレームワークのコンテナ化とアップグレード戦略
shunta27
0
310
Generating OpenAPI schema from serializers throughout the Rails stack - Kyobashi.rb #5
envek
1
390
PRレビューのお供にDanger
stoticdev
1
240
Swift Testingのモチベを上げたい
stoticdev
2
130
推しメソッドsource_locationのしくみを探る - はじめてRubyのコードを読んでみた
nobu09
2
330
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
250
技術を改善し続ける
gumioji
0
140
Jakarta EE meets AI
ivargrimstad
0
500
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
160
TCAを用いたAmebaのリアーキテクチャ
dazy
0
200
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Embracing the Ebb and Flow
colly
84
4.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
How to train your dragon (web standard)
notwaldorf
91
5.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
KATA
mclloyd
29
14k
Bootstrapping a Software Product
garrettdimon
PRO
306
110k
Unsuck your backbone
ammeep
669
57k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
How to Think Like a Performance Engineer
csswizardry
22
1.4k
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