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
Realm Japan meetup #20 Java
Search
zaki50
November 25, 2016
Technology
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Realm Japan meetup #20 Java
zaki50
November 25, 2016
More Decks by zaki50
See All by zaki50
I/O Extended 2018 @Tokyo Android1
zaki50
3
1.3k
簡単高速なDIライブラリToothpick
zaki50
1
240
Android Studio 3.0 profilerハンズオン
zaki50
2
800
Realm Japan meetup #23_Java
zaki50
0
760
Realm Japan meetup #22_Java
zaki50
1
570
Realm World Tour Osaka Recent Java Updates
zaki50
0
500
Realm World Tour - ErrorProne in Realm Java
zaki50
2
500
Realm World Tour Tokyo Recent Java Updates
zaki50
2
810
Realm World Tour - ErrorProne in Realm Java
zaki50
1
790
Other Decks in Technology
See All in Technology
個人開発で育てる「大規模設計の苗床」 - AI時代の1人開発から始める業務への知識接続 / The Seedbed for Large-Scale Design - From AI-Era Solo Projects to Professional Knowledge
bitkey
PRO
1
280
Making sense of Google’s agentic dev tools
glaforge
1
280
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
2
420
あなたの『Site』はどこですか? — xREという考え方
miyamu
0
1.2k
ソニー銀行におけるビジネスアジリティ向上のためのクラウドシフト戦略
srenext
0
730
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
230
ファミコンでPHPを動かす / PHP on the Famicom
tomzoh
2
350
非定型なドキュメントを効率よくリファクタする 〜えぇ!?仕様書27本の移行が1日で終わったって!?〜
subroh0508
2
550
Control Planeで育てるBtoB SaaSの認証基盤 - SRE NEXT 2026
pokohide
1
2.6k
AI時代の闇と光
tatsuya1970
0
110
Oracle Exadata Database Service on Cloud@Customer X11M (ExaDB-C@C) サービス概要
oracle4engineer
PRO
2
8.4k
美しいコードを書くためにF#を学んでみた話
yud0uhu
1
460
Featured
See All Featured
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
590
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
240
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Curse of the Amulet
leimatthew05
2
13k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
Transcript
Realm meetup #20
[email protected]
#realm_jp
[email protected]
Makoto Yamazaki Realm Inc. / uPhyca Inc.
[email protected]
Recent Updates
[email protected]
Realm Java 2.2.1 (was 2.0.0)
[email protected]
Realm Java 2.0.0 • Realm Mobile PlatformରԠʂʂʂʢϕʔλʣ • άϩʔόϧॳظԽϝιουRealm.init(Context)Λಋೖ •
ॳظԽϝιουҎ֎ͰContext͕ෆཁʹ • RealmLogΫϥεʹΑΔϩά੍ޚ • ϞσϧΫϥεͰΦϒδΣΫτͷॳظΛఆٛՄೳʹ • isManaged()ϝιουΛՃ
[email protected]
Realm Mobile PlatformରԠ
[email protected]
realm { syncEnabled = true }
appͷbuild.gradeʹ ৄࡉ bit.ly/RMP_JAVA
Realm Java 2.0.1-2.0.2 • syncEnabled falseͷࡍʹෆཁͳINTERNETύʔϛογϣϯΛཁٻ͢Δ όά (#3505) • syncEnabled
falseͷࡍʹωοτϫʔΫͷଓঢ়ଶ͕มΘΔͱΫϥο γϡ͢Δόά (#3505) • distinctAsync͕ɺࢦఆ͞ΕͨΫΤϦͷ݅Λແࢹ͢Δόά (#3537) • ಛఆͷڥͰϏϧυ࣌ʹConcurrentModificationException͕ൃੜ͢Δ όά(#3501) • Java7ڥͰϏϧυΤϥʔ͕ൃੜ͢Δόά (#3563)
[email protected]
Realm Java 2.1, 2.2(৽ػೳ) • Sync APIมߋʢϕʔλʣ • Realm.compactRealm()͕҉߸Խ͞ΕͨϑΝΠϧΛαϙʔτ •
RealmListɺRealmResultsʹfirst(E defaultValue), last(E defaultValue) • RealmLog.setLevel(int)ʹΑΔϩάϨϕϧࢦఆΛαϙʔτ • annotationProcessor dependency configurationͷαϙʔτ
[email protected]
Realm Java 2.1.0-2.1.2(όάमਖ਼) • ProGuardઃఆϑΝΠϧ͕sync APIʹରԠ(#3596) • ֎෦ετϨʔδʹσʔλϕʔεϑΝΠϧΛஔ͘ͱPermissionΤϥʔʹ ͳΔόάΛमਖ਼(#3140ɺچͰҰ෦ະमਖ਼) •
ObservableΛunsubscribeͨ͠ࡍͷϝϞϦʔϦʔΫ(#3552) • #3596Ͱͷमਖ਼ͰɺಡԽ͕͓͜ͳΘΕͳ͘ͳΔόάͷमਖ਼(#3689) • Realm.insert͕ελοΫΦʔόʔϑϩʔ͢Δόά(#3732)
[email protected]
Realm Java 2.2.0-2.2.1(όάमਖ਼) • KotlinͰϞσϧΫϥε͕ଘࡏ͠ͳ͍߹ʹΤϥʔʹͳΔόά(#3746) • 2.1ͰͷProGuardઃఆ͕built-in shrinkerͰΤϥʔʹͳΔ(#3714) • Realmߋ৽ޙʹωΠςΟϒϥΠϒϥϦͷϩʔυ͕ΤϥʔʹͳΔ(#3775)
• શRealmΫϩʔζޙʹRealm.getLocalinstanceCount()ͰNPE(#3791)
[email protected]
annotationProcessor
[email protected]
android-aptϓϥάΠϯ͕ඞཁͳ߹໌ࣔతʹapply͍ͯͩ͘͠͞ ద༻͢Δ߹RealmͷϓϥάΠϯΑΓલͰʂ
annotationProcessor
[email protected]
https://developer.android.com/studio/releases/gradle-plugin.html
annotationProcessor
[email protected]
from https://github.com/realm/realm-java/pull/3754 android-aptϓϥάΠϯ͕طʹద༻͞Ε͍ͯΔ߹ apt Λɺະద༻ͷ߹Լهͷදʹै͍·͢ɻ
annotationProcessor
[email protected]
android-aptϓϥάΠϯ͕ඞཁͳ߹໌ࣔతʹapply͍ͯͩ͘͠͞ ద༻͢Δ߹RealmͷϓϥάΠϯΑΓલͰʂ
Object Server APIมߋ • Ϋϥε໊มߋ(User-> SyncUser, Credentials->SyncCredentials, Session->SyncSession) • SyncManager.setLogLevel()Λഇࢭ(RealmLog.setLevel()ͷ౷߹)
• SyncUser.all()ͷՃ • SyncUser.getManagementRealm()ͱPermission APIͷՃ
[email protected]
Permission API
[email protected]
public class PermissionChange extends RealmObject { @PrimaryKey
@Required private String id = UUID.randomUUID().toString(); @Required private Date createdAt = new Date(); @Required private Date updatedAt = new Date(); @Required private String realmUrl; @Required private String userId; private Boolean mayRead = false; private Boolean mayWrite = false; private Boolean mayManage = false; private Integer statusCode = null; // null=not processed, 0=success, >0=error private String statusMessage; }
Permission API
[email protected]
SyncUser user = ...; String realmUrl =
"realms://..."; final Realm managementRealm = user.getManagementRealm(); try { final PermissionChange permissionChange = new PermissionChange( realmUrl, "*", // for all users true, // read false, // write false // manage ); managementRealm.insert(permissionChange); } finally { managementRealm.close(); }
Permission API
[email protected]
private PermissionChange permissionChange; permissionChange = managementRealm.copyToRealm(new PermissionChange(
realmUrl, “*”/* or someUser.getIdentity() */, // for all users true, // read false, // write null // manage )); permissionChange.addChangeListener(new RealmChangeListener<PermissionChange>() { @Override public void onChange(PermissionChange element) { Log.d("realm", "permission changed: " + element.getStatusCode()); } });
ΞϯέʔτͷճΛ͓ئ͍͠·͢
[email protected]
http://bit.ly/RealmJP_20