Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
次世代MobileデータベースRealm
Search
Kishikawa Katsumi
February 19, 2016
Programming
540
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
次世代MobileデータベースRealm
Developers Summit 2016
Kishikawa Katsumi
February 19, 2016
More Decks by Kishikawa Katsumi
See All by Kishikawa Katsumi
Accessibility APIでテキストの内容、位置、サイズを取得する実装パターン
kishikawakatsumi
0
82
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
270
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
200
Running Swift without an OS
kishikawakatsumi
0
1.2k
浮動小数の比較について
kishikawakatsumi
0
640
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
280
愛される翻訳の秘訣
kishikawakatsumi
3
500
Private APIの呼び出し方
kishikawakatsumi
3
1k
iOSでSVG画像を扱う
kishikawakatsumi
0
270
Other Decks in Programming
See All in Programming
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
730
iOSDCのペンライトを自動制御したい!
akkeylab
0
170
The Rails Doctrine Decade
koic
2
410
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
280
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
510
難しいけど、読めた。- OSSの入口に立った話。
sts11142
0
130
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
570
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
370
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
29
12k
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
190
JRuby: Past, Present, and Future
headius
0
210
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
170
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Become a Pro
speakerdeck
PRO
31
6.3k
How GitHub (no longer) Works
holman
316
150k
Everyday Curiosity
cassininazir
0
330
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Making Projects Easy
brettharned
120
6.8k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
sira's awesome portfolio website redesign presentation
elsirapls
0
430
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Transcript
如⚅➿.PCJMFر٦ةك٦أ 3FBMN
IUUQTHJUIVCDPNLJTIJLBXBLBUTVNJ LJTIJLBXBLBUTVNJ IUUQCMPHLJTIJLBXBLBUTVNJDPN 3FBMN 5FDIOJDBM"EWJTPS 3FBMN*OD։
None
3FBMNהכ⡦ַ
ٌغ؎ٕرغ؎أ㼔欽ח倜׃ֻ⡲ر٦ةك٦أ 0CKFDUJWF$䎃剢։ +BWB䎃剢։ 4XJGU䎃剢։ ٌغ؎ٕ欽鷿ח剑黝⻉ׁגְ 鹼䒀ٗ٦س ئٗ؝ؾ٦ ط؎ذ؍ـ٥ؙٔٝ 3FBMNהכ⡦ַ
ؔ٦فٝا٦أ ぐ珏غ؎ٝر؍ؚٝ0CKDUJWF$4XJGU+BWBⰕ׆ ⰻ鿇أزٖ٦آؒٝآٝתזֻⰕ✮㹀 杝荈ؒٝآٝ42-JUF⢪גְזְ 3FBMNהכ⡦ַ
넝鸞ז⹛⡲ 农〾⻉垥彊鄲⪒ وٕثفٓحزؿؓ٦ي J04049"OESPJE +4JOCFUB /&5JODPNJOH 湫䠬涸דءٝفٕז"1* ♨㻝ז؟ه٦ز傈劤铂0, 3FBMNך暴ꞿ
None
3FBMNِ٦ؠ٦
3FBMNָ⢪גְ،فٔ 傈劤穗幥倜耀ꨵ㶨晛 1JOUFSFTU $BNFSBO "8" 薉⽃铂؟فٔ 4ZODCZ8BOUFEMZ $IBUXPSL (SPVQPO GFBUIFSGPS5XJUUFS
5XJUQBOF 'BMDPO1SP "QMPT J$PNJDT &JHIUCZ4BOTBO
넝鸞ז⹛⡲
*OTFSU6QEBUF .7$$،٦ؗذؙثٍ ط؎ذ؍ـ٥ؙٔٝ 2VFSZ ئٗ؝ؾ٦ 鹼䒀ٗ٦س 넝鸞ז⹛⡲
ػؿؓ٦وٝأ嫰鯰
傈劤Ⰻ㕂ך⡝䨽♰⟝嗚稊ׅ،فٔ
HJUIVCDPNLJTIJLBXBLBUTVNJ3FBMN$PSF%BUB1FSGPSNBODF
Realm CoreData શ݅औಘ 0.0004ඵ 8.01ඵ ෦Ұகݕࡧ 0.09ඵ 1.27ඵ ෦Ұகݕࡧʴιʔτ 0.09ඵ
2.23ඵ ♰⟝ך⡝䨽ر٦ةך嗚稊鸞䏝
Realm CoreData શ݅औಘ 12MB 65MB ෦Ұகݕࡧ 12MB 18MB ෦Ұகݕࡧʴιʔτ 12MB
20MB ♰⟝ך⡝䨽ر٦ةך嗚稊ًٌٔ嶊顤
农〾⻉堣腉
let key = NSMutableData(length: 64)! SecRandomCopyBytes(kSecRandomDefault, key.length, UnsafeMutablePointer<UInt8>(key.mutableBytes)) let config
= Realm.Configuration(encryptionKey: key) let realm = try! Realm(configuration: config) 农〾⻉堣腉
إٝءذ؍ـז䞔㜠ך⥂㶷 խ⦐➂䞔㜠ծ،ؕؐٝزز٦ؙٝזו 衼⡲埄זוד⥂隊ׁر٦ة 农〾⻉堣腉
وٕثفٓحزؿؓ٦ي
None
class Article: Object { dynamic var id: Int = 0
dynamic var title: String = "" dynamic var contents: String = "" dynamic var creationDate: NSDate = NSDate() dynamic var modificationDate: NSDate = NSDate() dynamic var deletionDate: NSDate? = nil dynamic var user: User? = nil let comments = List<Comment>() } ٌرٕذ٦ـٕ㹀纏 J04
public class Article extends RealmObject { @PrimaryKey private int id;
private String title; private String contents; private Date creationDate; private Date modificationDate; private Date deletionDate; private User user; private RealmList<Comment> user; } ٌرٕذ٦ـٕ㹀纏 "OESPJE
let realm = try! Realm() // RealmίωΫγϣϯ let article =
Article() article.title = titleTextfield.text article.contents = contentTextfield.text realm.write { // τϥϯβΫγϣϯ realm.add(article) } ر٦ةך⥂㶷 J04
Realm realm = Realm.getInstance(this); // RealmίωΫγϣϯ realm.beginTransaction(); // τϥϯβΫγϣϯ։࢝ Article
article = realm.createObject(Article.class); article.setText(titleTextfield.getText()); article.setContents(contentTextfield.getText()); realm.commitTransaction(); // τϥϯβΫγϣϯऴྃ ر٦ةך⥂㶷 "OESPJE
let realm = try! Realm() letɹarticles = realm .objects(Article) .filter("user
= %@", currentUser) .sorted("modificationDate", ascending: false) ؙؒٔ J04
Realm realm = Realm.getInstance(this); RealmResults<Article> result = realm .where(Article.class) .equalTo("user.id",
currentUser.getId()) .findAll() .sort("modificationDate", Sort.DESCENDING); ؙؒٔ "OESPJE
Storage Engine ObjectStore API Objective-C Binging Java Binging Swift Binging
C++ وٕثفٓحزؿؓ٦ي佄ִ ،٦ؗذؙثٍ
J04"OESPJE⚕倯ד3FBMNָ⢪גְ،فٔ "8" &JHIUCZ4BOTBO 㹺做،ٕغيגי J20/
ٌغ؎ٕرغ؎أפך剑黝⻉ ך➬穈
䗡䎿׃鹼䒀ٗ٦س
颩ְغ؎ٝر؍ؚٝ堣圓ח״䗡䎿׃鹼䒀ٗ٦س فٗػذ؍ח،ؙإأׅתדְַזر٦ة⥂䭯׃זְ 㣐ꆀךر٦ة侧⼧ծ侧涰♰⟝ד넝鸞ח満ًٌٔד⸬桦״ֻ䪔ִ 䗡䎿׃鹼䒀ٗ٦س
పఈͨ͠Ԇϩʔυ articles = realm.objects(Article).filter("user = %@", currentUser)
పఈͨ͠Ԇϩʔυ articles = realm.objects(Article) .filter("user = %@", currentUser)
పఈͨ͠Ԇϩʔυ let allArticles = realm.objects(Article) let articles = allArticles.filter(“user =
%@", currentUser)
పఈͨ͠Ԇϩʔυ let allArticles = realm.objects(Article) let articles = allArticles.filter(“user =
%@", currentUser) 3FTVMUT"SUJDMF 5BCMF"SUJDMF
పఈͨ͠Ԇϩʔυ let allArticles = realm.objects(Article) let articles = allArticles.filter(“user =
%@", currentUser) 3FTVMUT"SUJDMF 5BCMF"SUJDMF 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS
పఈͨ͠Ԇϩʔυ let articles = allArticles.filter(“user = %@", currentUser) let count
= articles.count 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS $PVOU 7JFX
పఈͨ͠Ԇϩʔυ let count = articles.count let article = articles[0] 3FTVMUT"SUJDMF
5BCMF"SUJDMF 2VFSZVTFS $PVOU 7JFX "SUJDMF 3PX*OEFY 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS $PVOU 7JFX
పఈͨ͠Ԇϩʔυ let article = articles[0] let title = article.title "SUJDMF
3PX*OEFY 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS $PVOU 7JFX "SUJDMF 3PX*OEFY 5JUMF(FUUFS 3FBMN 4USJOH 5JUMF
ئٗ٥؝ؾ٦ ر٦ة♧ⴖ؝ؾ٦׃זְ
.FNPSZNBQQFEؿ؋؎ٕ ًٌٔהر؍أؙ♳דずׄؿؓ٦وحزךر٦ة ׅץגךؙؒٔכؔؿإحزך乼⡲ فٗػذ؍ך،ؙإأדⴱגر٦ة《䖤 ئٗ٥؝ؾ٦
3FBMN ך➭ך03. 㹋ꥷח،ؙإأׅ鿇ⴓ ֽر٦ة铣⳿ׅ ⟝侧ⴓך ؔـآؙؑز ָ⡲
.7$$"SDIJUFDUVSF .VMUJ7FSTJPO$PODVSSFODZ$POUSPM
.VMUJ7FSTJPO$PODVSSFODZ$POUSPM غ٦آّٝ㾶娖ח״زٓٝؠؙءّٝך盖椚 ぐزٓٝؠؙءّٝכծ֮儗挿ךأشحفءّحز 铣鴥כⴽך铣鴥ծ剅ֹ鴥ـٗحؙ׃זְ 剅ֹ鴥כ铣鴥ـٗحؙ׃זְ 剅ֹ鴥ה剅ֹ鴥כـٗحؙׅ .7$$"SDIJUFDUVSF
ꟼ鸬ך؝أزָ㸜ְ ط؎ذ؍ـ٥ؙٔٝ
3FBMNךر٦ة圓鸡כ䊬㣐ז# USFF 㼎ծ㼎㢳ךꟼ鸬荈搫ח邌植דֹ ه؎ٝة籬ּֽծ؝أزך넝ְ+PJOכ♶銲 6*ך鿪さחさׇגر٦ة圓鸡㹀纏׃װְׅ ꟼ鸬ך؝أزָ㸜ְ
ⵖꣲ✲갪חאְג
㛇劤涸ז俑㶵הغ؎زꂁծ傈➰ծ׃ג侧⦼㘗ך ꂁװ鳤剅湫䱸⥂㶷דֹזְ㔐鼘瘻ؔـآؙؑزדٓحفׅ 㼛勻涸חכ㢳圫זر٦ة㘗.BQ4FU 63- 㔿㹀鹌侧 FUD؟ه٦ز ٌرٕךⵖꣲ
䗳׆暴㹀ךؙٓأך؟ـؙٓأדזֽלזזְ 3FBMNؔـآؙؑزכ鹼䒀ٗ٦سך㹋植ךծفٗؗءה׃ג⹛⡲ׅ ךדծ鸐䌢ךؔـآؙؑزה殯ז㜥さָ֮ أٖحس馄ִג3FBMNؔـآؙؑز床ֿׅהָדֹזְ 3FBMNؔـآؙؑزךⵖꣲ
宕竲⻉ׁגְזְ⦼ח㼎ؙׅؒٔכ劢؟ه٦ز ꟼ侧זוד㢌䳔׃⦼勴⟝חׅծ醱侧ךؕٓيךさ鎘⦼勴⟝ח ׅזו 宕竲⻉ׁגְזְ⦼嗚稊穠卓ה׃ג㼪⳿ׅ 䚍ⴽָˏ'ˏה.ד⥂㶷ׁגְהֹծ侧⦼ח㢌䳔׃ג侧ִ ♳־זו ؙؒٔךⵖꣲ
J1IPOFזודכ֮玎䏝⟃♳ךؿ؋؎ٕ؟؎ؤחזהNNBQ ָ㣟 侁ׅؿ؋؎ًٌٕٔחوحؾؚٝדֹזְ رغ؎أ⣛㶷ָծְְ.#։ 㼛勻涸חծًٌٔوحفך眔㔲ⴓⶴֿׅהד㼎䘔✮㹀 ؿ؋؎ٕ؟؎ؤךⵖꣲ
3FBMNחאְג锃ץ 罋项俱
˖ Ⱅ䒭8FC؟؎ز! IUUQTSFBMNJPKQ ˖ (JU)VC IUUQTHJUIVCDPNSFBMNSFBMNDPDPB IUUQTHJUIVCDPNSFBMNSFBMNKBWB
˖ ِ٦ؠ٦ؚٕ٦ف! IUUQTXXXGBDFCPPLDPNHSPVQTSFBMNKQ ˖ ؟ه٦زثٍحز! IUUQTMBDLSFBMNJP ˖ 5XJUUFS! IUUQTUXJUUFSDPNSFBMN+BQBO ˖ ى٦ز،حف! IUUQSFBMNDPOOQBTTDPN 罋项俱
3FBMN+BQBONFFUVQ SFBMNDPOOQBTTDPN
3FBMN+BQBONFFUVQ SFBMNJPKQOFXT
3FBMN+BQBONFFUVQ SFBMNDPOOQBTTDPN ։ه٦ز吳䒭⠓爡銮倜㺊 ։ٖغٖآ٦ؤ吳䒭⠓爡幪靼ؼؕٔؒ ։4BOTBO吳䒭⠓爡邌麣
3FBMNعٝؤؔٝ SFBMNDPOOQBTTDPN ։ٖغٖآ٦ؤ吳䒭⠓爡幪靼ؼؕٔؒ
3FBMN+BQBO6TFS(SPVQ GBDFCPPLDPNHSPVQTSFBMNKQ
1VCMJD3FBMN4MBDL! TMBDLSFBMNJP