Slide 1

Slide 1 text

3FBMNCFHJOOFSTNFFUVQ

Slide 2

Slide 2 text

IUUQTHJUIVCDPNLJTIJLBXBLBUTVNJ LJTIJLBXBLBUTVNJ IUUQCMPHLJTIJLBXBLBUTVNJDPN Realm

Slide 3

Slide 3 text

3FDFOU6QEBUFT

Slide 4

Slide 4 text

3FBMN0CKFDUJWF$4XJGU+BWB IUUQTSFBMNJPKQOFXTSFBMN

Slide 5

Slide 5 text

Realm ˖ 0CKFDUJWF$ ˖ 4XJGU ˖ "OESPJE+BWB ˖ /&5$

Slide 6

Slide 6 text

Realm ˖ ⢪ְװְׅ ˖ 鸞ְ ˖ ؟ه٦ز ˖ 农〾⻉

Slide 7

Slide 7 text

3FBMN2VJ[5JQT

Slide 8

Slide 8 text

2 ؙؒٔךػؿؓ٦وٝأ

Slide 9

Slide 9 text

ؙؒٔךػؿؓ٦وٝأ class Article: Object { ... } class Comment: Object { ... } class User: Object { ... }

Slide 10

Slide 10 text

ؙؒٔךػؿؓ٦وٝأ let articles = realm .objects(Article) ו׍׵ָ鸞ְד׃׳ֲ let recentArticles = realm.objects(Article) .filter("modificationDate > ...") .filter("deletionDate != nil") .sorted("modificationDate", ascending: false)

Slide 11

Slide 11 text

瘶ִ ו׍׵׮ずׄ

Slide 12

Slide 12 text

ؙؒٔךػؿؓ٦وٝأחאְג ו׍׵׮ֿך儗挿דכ嗚稊勴⟝׾⥂䭯׃גְ׷׌ֽկ 㹋ꥷךؙؒٔכ㹋遤ׁ׸זְկ let articles = realm .objects(Article) let recentArticles = realm.objects(Article) .filter("modificationDate > ...") .filter("deletionDate != nil") .sorted("modificationDate", ascending: false)

Slide 13

Slide 13 text

ؙؒٔךػؿؓ٦وٝأחאְג ו׍׵׮ֿך儗挿דכ嗚稊勴⟝׾⥂䭯׃גְ׷׌ֽկ 㹋ꥷךؙؒٔכ㹋遤ׁ׸זְկ let articles = realm .objects(Article) return articles.count let recentArticles = realm.objects(Article) .filter("modificationDate > ...") .filter("deletionDate != nil") .sorted("modificationDate", ascending: false) recentArticles[indexPath.row]

Slide 14

Slide 14 text

׮׃ָؙؒٔ鹼ְ㜥さכ غحؙؚٓؐٝسؙؒٔ׾ⵃ欽ׅ׷ notificationToken = realm.objects(Article) .filter("modificationDate > ...") .filter("deletionDate != nil") .sorted("modificationDate", ascending: false) .addNotificationBlock { (changes: RealmCollectionChange) in switch changes { case let .Initial(results): ... case let .Update(results, deletions, insertions, modifications): ... case let .Error(error): ... } } ؙؒٔכغحؙؚٓؐٝسד㹋遤ׁ׸ծ 㸣✪׃׋儗挿ד؝٦ٕغحָؙㄎל׸׷

Slide 15

Slide 15 text

2 و؎ؚٖ٦ءّٝ 0CK$4XJGUPOMZ

Slide 16

Slide 16 text

و؎ؚٖ٦ءّٝ و؎ؚٖ٦ءّٝכ䗳銲 class User: Object { dynamic var id = 0 dynamic var name = "" } class User: Object { dynamic var id = 0 dynamic var name = "" dynamic var age 0 }

Slide 17

Slide 17 text

瘶ִ 䗳銲

Slide 18

Slide 18 text

و؎ؚٖ٦ءّٝ و؎ؚٖ٦ءّٝכ䗳銲 class Article: Object {...} class Comment: Object {...} class User: Object {...} class Article: Object {...} class Comment: Object {...} class User: Object {...} class News: Object {...}

Slide 19

Slide 19 text

瘶ִ ♶銲

Slide 20

Slide 20 text

و؎ؚٖ٦ءّٝ و؎ؚٖ٦ءّٝכ䗳銲 class User: Object { dynamic var id = 0 dynamic var name = “" } class User: Object { dynamic var id = 0 dynamic var name = "" class override func indexedProperties() -> [String] { return ["name"] } }

Slide 21

Slide 21 text

瘶ִ ♶銲

Slide 22

Slide 22 text

و؎ؚٖ٦ءّٝ5JQT 荈⹛و؎ؚٖ٦ءّٝ 0CK$4XJGUPOMZ let config = Realm.Configuration(schemaVersion: 4) let realm = try! Realm(configuration: config) ...

Slide 23

Slide 23 text

و؎ؚٖ٦ءّٝךתה׭ و؎ؚٖ٦ءָّٝ䗳銲 ˖ فٗػذ؍ך鷄⸇٥⵴ꤐ ˖ فٗػذ؍ךせ⵸㢌刿 ˖ فٗػذ؍ך/6--〳٥♶〳ך㢌刿 ˖ فٓ؎ؤؗ٦ך㢌刿 و؎ؚٖ٦ءّٝ♶銲 ˖ ؙٓأך鷄⸇٥⵴ꤐ ˖ ؎ٝرحؙأך鷄⸇٥⵴ꤐ

Slide 24

Slide 24 text

و؎ؚٖ٦ءّٝךתה׭ 荈⹛و؎ؚٖ٦ءّٝ ˖ ⦼׾獳遤ׅ׷䗳銲ָזֽ׸ל荈⹛و؎ؚٖ٦ءָّٝ⢪ִ׷ 0CK$4XJGUך׫

Slide 25

Slide 25 text

2 ꟼ鸬ך⵴ꤐ

Slide 26

Slide 26 text

ꟼ鸬ך⵴ꤐ 剑䖓ךDPNNFOUDPVOUָ鵤ׅ⟝侧כ let article = realm.objects(Article)[0] let comments = article.comments print(comments.count) // => 3 let lastComment = comments[2] try! realm.write { realm.delete(lastComment) } print(comments.count) // => ?

Slide 27

Slide 27 text

瘶ִ

Slide 28

Slide 28 text

ꟼ鸬ך⵴ꤐךתה׭ ˖ ꟼ鸬ח鏣㹀ׁ׸גְ׷ؔـآؙؑزָ⵴ꤐׁ׸׷הծꟼ鸬ַ׵׮ 荈⹛涸ח⵴ꤐׁ׸תׅկؕأ؛٦ر؍ؚٝ⵴ꤐדכזְ ˖ ؕأ؛٦ر؍ؚٝ⵴ꤐכBSUJDMFDPNNFOUTהְֲꟼ鸬ָ֮׷ה ֹծBSUJDMF׾⵴ꤐׅ׷הDPNNFOUT׮⵴ꤐׁ׸׷״ֲז堣腉ךֿ הדׅկ

Slide 29

Slide 29 text

فٓحزؿؓ٦ي꟦ך麩ְ 0CK$4XJGU晛ח֮׏ג+BWB晛חזְ׮ך ˖ */〣ָזְ ˖ ꟼ鸬ך嗚稊ח湫䱸ؔـآؙؑز׾床ׇזְ realm.objects(Article).filter("user = %@", currentUser) ˖ 荈⹛و؎ؚٖ٦ءָّٝזְ

Slide 30

Slide 30 text

فٓحزؿؓ٦ي꟦ך麩ְ 3FBDU/BUJWF晛ך植㖈ךⵖꣲ ˖ 'JOFHSBJOFE/PUJDBUJPO

Slide 31

Slide 31 text

فٓحزؿؓ٦ي꟦ך麩ְ 9BNBSJO晛ך植㖈ךⵖꣲ ˖ ꬊず劍ؙؒٔ ˖ غ؎شٔر٦ةך⥂㶷 ˖ 'JOFHSBJOFE/PUJDBUJPO ˖ رؿٕؓز⦼ ˖ ؔـآؙؑزךⰋ⵴ꤐ ˖ و؎ؚٖ٦ءّٝ荈⹛و؎ؚٖ٦ءّٝכ֮׷

Slide 32

Slide 32 text

8IFSFUPOEVT ˖ "3FBMN+BQBO6TFS(SPVQGBDFCPPLDPNHSPVQTSFBMNKQ ˖ "5XJUUFSUXJUUFSDPNSFBMN+BQBO ˖ (JU)VCHJUIVCDPNSFBMN ˖ "4UBDL0WFSPXKBTUBDLPWFSPXDPNRVFTUJPOTUBHHFESFBMN ˖ "&NBJMIFMQ!SFBMNJP ˖ "4MBDLTMBDLSFBMNJP

Slide 33

Slide 33 text

3FBMN+BQBO6TFS(SPVQ" GBDFCPPLDPNHSPVQTSFBMNKQ

Slide 34

Slide 34 text

1VCMJD3FBMN4MBDL" slack.realm.io/

Slide 35

Slide 35 text

0DJBM8FCTJUF" realm.io/jp