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 #11
Search
Kishikawa Katsumi
July 24, 2016
Programming
0
230
Realm Japan meetup #11
Realmのアーキテクチャ
- 遅延ロード・ゼロコピーの図解
- クエリがどのように実行されるか
Kishikawa Katsumi
July 24, 2016
Tweet
Share
More Decks by Kishikawa Katsumi
See All by Kishikawa Katsumi
iOSDC 2024 SMBファイル共有をSwiftで実装する
kishikawakatsumi
1
260
Enhancing Applications with Accessibility API
kishikawakatsumi
3
4.5k
Mastering SwiftSyntax
kishikawakatsumi
4
6.7k
My SwiftData Review
kishikawakatsumi
7
1.5k
Swift Expression Macros: a practical introduction
kishikawakatsumi
3
2k
Xcode Cloudの評価
kishikawakatsumi
2
1.4k
Regular expressions basics/正規表現の基本
kishikawakatsumi
7
800
家のいろいろな数値を計測する
kishikawakatsumi
4
2.4k
GitHub Actionsでテストの結果をわかりやすく表示する
kishikawakatsumi
1
1.3k
Other Decks in Programming
See All in Programming
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
4.3k
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
460
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
2.9k
AI Coding Agentのセキュリティリスク:PRの自己承認とメルカリの対策
s3h
0
240
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
130
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
2.8k
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
610
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
4.3k
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.5k
為你自己學 Python - 冷知識篇
eddie
1
350
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
0
480
Featured
See All Featured
Making Projects Easy
brettharned
117
6.4k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
Faster Mobile Websites
deanohume
309
31k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Speed Design
sergeychernyshev
32
1.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Transcript
Realm Japan Meetup #11
#realm_jp
https://github.com/kishikawakatsumi/ kishikawa katsumi http://kishikawakatsumi.hatenablog.com/ Realm
Realm Objective-C/Swift 0.97.1 ˖ 'JYDSBTIFTXIFOBO3-.3FBMNJTEFBMMPDBUFEGSPNUIF XSPOHUISFBE ˖ *OEFYJOH#00-#PPMBOE/4%BUFQSPQFSUJFTBSFOPX TVQQPSUFE ˖
4XJGU"EETVQQPSUGPSJOEFYJOHPQUJPOBMQSPQFSUJFT
Realm Objective-C/Swift 0.98.0ʢ༧ఆʣ ˖ "TZOD2VFSJFT
Realm Objective-C/Swift 0.99.0ʢ༧ఆʣ ˖ 'JOFHSBJOFE/PUJDBUJPO
RealmͷԆϩʔυΛ׆༻͢Δʹ
Realmͷجຊతͳ͍ํ
class Article: Object { dynamic var id: Int = 0
dynamic var title: String = "" dynamic var content: 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>() override static func primaryKey() -> String? { return "id" } } class Comment: Object { dynamic var id: Int = 0 dynamic var content: String = "" dynamic var user: User? = nil override static func primaryKey() -> String? { return "id" } } class User: Object { dynamic var id: Int = 0 dynamic var name: String = "" override static func primaryKey() -> String? { return "id" } }
let realm = try! Realm() let article = Article() article.title
= titleTextfield.text article.contents = contentTextfield.text let currentUser = realm.objectForPrimaryKey(User.self, key: userID) article.user = currentUser try! realm.write { in realm.add(article) }
let realm = try! Realm() let articles = realm.objects(Article).filter("user =
%@", currentUser) let article = articles[0]
let realm = try! Realm() let currentUser = realm.objectForPrimaryKey(User.self, key:
userID) try! realm.write { in currentUser.name = "..." }
ԆϩʔυΛ׆༻͢Δ
override func viewDidLoad() { ... articles = realm.objects(Article).filter("user = %@",
currentUser) } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return articles.count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("", forIndexPath: indexPath) let article = articles[indexPath.row] cell.title = article.title cell.content = article.content cell.username = article.user.name return cell }
ԆϩʔυͷΈ
ԆϩʔυͷΈ 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
ඇಉظΫΤϦ (Swift) let allArticles = realm.objects(Article) let articles = allArticles.filter(“user
= %@", currentUser) 3FTVMUT"SUJDMF 5BCMF"SUJDMF 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS
ඇಉظΫΤϦ (Swift) let articles = allArticles.filter(“user = %@", currentUser) let
count = articles.count 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS 3FTVMUT"SUJDMF 5BCMF"SUJDMF 2VFSZVTFS $PVOU 7JFX
ඇಉظΫΤϦ (Swift) 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
ඇಉظΫΤϦ (Swift) 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
None
IUUQTUFDICPPTUFSCPPUIQN
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/
Realm Japan User Group # facebook.com/groups/realmjp
Public Realm Slack # slack.realm.io/
Official Twitter/Facebook twitter.com/realm facebook.com/655569387879379
Official Web site # realm.io/jp
Next Realm Meetup
http://bit.ly/RealmJP_11 ͍Ξϯέʔτʹ͝ڠྗ͍ͩ͘͞