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
Realmビギナーが知っとくべき内容で打線組んだwww
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yimajo
March 12, 2015
Technology
7.3k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Realmビギナーが知っとくべき内容で打線組んだwww
potatotips15 で発表した資料です
http://connpass.com/event/12140/
yimajo
March 12, 2015
More Decks by yimajo
See All by yimajo
片田舎のおっさん、 Swift Buildのダイアモンド問題解決の不具合修正PRを出すが、解決方法がキャッシュをしないようにすることであり、ビルド時間が伸びると言われてマージされないので高速化もする/swiftbuild
yimajo
0
370
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
920
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
740
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
410
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
3
350
良いテストコードのために悪いテストコードを理解する - 不安定なテスト編: iOSアプリ開発ユニットテストの場合
yimajo
22
6.8k
TCAの Shared Stateって どういう仕組みになってんの?
yimajo
0
2.8k
Swift 5.9 からの Observation はiOS17 未満 からも使えて struct の変更検知もできるんすかね?
yimajo
2
1.2k
不安定なテストは200種類あんねん
yimajo
3
1.3k
Other Decks in Technology
See All in Technology
人間はどの意思決定を手放せるのか
kawasima
15
7.5k
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
30
17k
SREは、MCPとAutopilotをこう使え!
kazumax55
3
910
The Knowledge Spine: A Machine-Executable Ontology for Governed Marketing Activation
vananth22
0
110
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
3
940
LLMに渡さなかった仕事
nanaism
0
1.1k
CLIライブラリ開発を支える技術
htnabe
0
140
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
970
AI coding 整合正規方法
philipz
0
380
Cloudflare Workers 向けアプリを C# で構築する ~WASM Native AOT への道~
nenonaninu
1
560
絵ではじめるKubernetesセキュリティ
aoi1
4
690
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
120
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
How to build a perfect <img>
jonoalderson
1
6k
Ethics towards AI in product and experience design
skipperchong
2
380
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
230
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
600
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
Transcript
3FBMNϏΪφʔ͕ͬͱ͖͘ ༰ͰଧઢΜͩXXX גࣜձࣾΩϡϦΦγςΟιϑτΣΞ ࠓળۣ !ZJNBKP ୈճQPUBUPUJQT
ଧॱ कඋ બख໊ ༡ 3FBMNͷಡΈํʮϨϧϜʯ ೋ 3-.0CKFDUαϒΫϥεͷϓϩύςΟఆ͕ٛΧϥϜΛࣔ͢
த /4/VMMOJMͰอଘͰ͖ͳ͍ Ұ ओΩʔTUSJOH͔Ͱͳ͚Ε͍͚ͳ͍ ӈ /4%BUF͕ϛϦඵΛอଘͰ͖ͯͳ͍ ࡾ 3FBMN +40/͕ࣗಈͰ*40ܗࣜͷจࣈྻΛ/4%BUFʹ ͯ͠͠·͏ ࠨ +40/&YQPSUͷίʔυOJMΛߟྀ͍ͯ͠ͳ͍ ั 3-.0CKFDUͷϓϩύςΟଐੑॻ͔ͳ͍͜ͱΛਪ /4*OUFHFS͡Όͳ͘JOU@UΛ͏͖࣌͋Δ 3FBMN DPDPB WΛ༻ɻόάमਖ਼͞ΕͨΓ༷มΘΔͨΊ༰ӏವΈʹ͠ͳ͍Ͱ͍ͩ͘͞
3FBMNಡΈํΛΧλΧφͰදݱ͢Δͱ ʮϨϧϜʯ
ͦͦ3FBMNͱ w 3FBMNϞόΠϧϑΝʔετͰγϯϓϧ͔ͭϞμ ϯͳ࣍ੈσʔλϕʔε w IUUQTHJUIVCDPNSFBMNSFBMNDPDPB w 0CKFDUJWF$ 4XJGUͱ"OESPJE͔Β͑ΔϥΠ ϒϥϦ͕͋Δ
w ϦΞϧϜ͡Όͳͯ͘ϨϧϜͱಡΉ
ࠓճશͯJ04ʹ͍ͭ ͯͷ
3-.0CKFDUαϒΫϥεͷϓϩύςΟఆ͕ٛ ΧϥϜΛࣔ͢
@interface Dog : RLMObject @property NSString *name; @end ϞσϧͰςʔϒϧఆٛ ͑Δܕ
#00- CPPM JOU /4*OUFHFS MPOH qPBU EPVCMF $('MPBU /44USJOH /4%BUF /4%BUB 3-.0CKFDUͷαϒΫϥε
@interface Dog : RLMObject @property NSString *name; @property NSNumber *age;
// Ճͨ͠ @end ϞσϧͰςʔϒϧఆٛ ͑ͳ͍ܕͰఆٛͯ͠͠·͏ͱz࣮ߦ࣌ʹྫ֎zɻ ͜Ε୯७ϛεͳͷͰͦͷΫϥεΛར༻͢Δࡍʹ ͕͔Δͷخ͍͠ɻ
/4/VMMOJMͰอଘ͕Ͱ͖ͳ͍ͷͰσʔλ͕ ͳ͍͜ͱΛදͮ͠Β͍
8FC"1*Λར༻ͨ͠߹ ϨεϙϯεʹΦϓγϣφϧͳ߲͕͋Δ ͱ/4/VMMOJM͕ར༻Ͱ͖ͳ͍ͷਏ͍
ٯʹ ϩʔΧϧͰ࡞ͨ͠σʔλΛ3FBMNʹอଘ͢Δ ߹Φϓγϣφϧͳ߲ ͬͱগͳ͍͔͠Εͳ͍ͨΊ ͋·ΓؾʹͳΒͳ͍ͱࢥ͏
ଥڠҊ w ͦͷ͕͋Δ͔ͳ͍͔ͷ#00-ϑϥάΛอଘ߲ ͷҰͭͱͯ࣋ͭ͠ ଥڠҊ w ͳΒ*/5@.*/ͳͲఆԽ͞Ε͍ͯΔΘ Εͳͦ͞͏ͳͰଘࡏ͠ͳ͍ͱ͍͏ҙຯ͚ͩΛ ࣔ͢
ͪͳΈʹ
/44USJOHʹOJMΛ ಥͬࠐΊΔ
None
w OJM͕อଘͰ͖ͯΔΑ͏ʹݟ͑Δ͚Ͳ w ۭจࣈ!lz͕อଘ͞Ε͍ͯͯɺOJMͰͳ͍͔Β ҙ͕ඞཁ
ओΩʔTUSJOH͔Ͱͳ͚Ε͍͚ͳ͍
w ྫ֎ʹTUSJOH͔JOUΛ͑ͱॻ͍ͯ͋Δ w JOU͚ͩͰͳ͘MPOHͳͲ͑ΔͷͰͰ͋Ε ྑ͍
/4%BUF͕ϛϦඵΛอଘͰ͖ͯͳ͍
w ݱࡏͷ࠷৽ W Ͱ࣌ؒͷখҎԼ͕ ΓࣺͯΒΕɺϛϦඵҎԼ͕อଘͰ͖ͳ͍ w IUUQTHJUIVCDPNSFBMNSFBMNDPDPB JTTVFT
w /45JNF*OUFSWBM͏ͷ͕ૉ w ͕ͩ͋͘·Ͱج४͔Βͷ*OUFSWBMʹͳΔͷͰ ͦͷج४ΛͲ͜ʹ͢Δ͔దʹܾΊͨ͘ͳ Δ w 8FC"1*͔Β*40ܗࣜʢྫ 5 ʣͰૹΒΕͯ͘ΔΑ͏ͳ
έʔεͳΒͦΕΛ/44USJOHͰอଘ͢Δͷѱ͍ํ ๏͡Όͳ͍ؾ͕͢Δ ϛϦඵҎԼ͍͍ͨ࣌ͷ ଥڠҊ
ଥڠҊͲͪΒΛબΜͰ ෦อଘ͕Ͳ͏͋Εϝιουܦ༝ Ͱ/4%BUFΛฦ͢Α͏ʹ͢Ε 3-.0CKFDUΛࢀর͢Δଆؾʹ͠ ͳ͍ͰࡁΉ͔
@interface Dog : RLMObject @property NSTimeInterval *birthDateInterval; // NSDate͕ཉ͚͠ΕpropertyΛNSDateʹͯ͠ฦ͢ɻ //
birthDateInterval͕-1ͳΒnilΛฦ͍͍ͤ - (NSDate *)birthDate; @end
3FBMN +40/͕ࣗಈͰ*40ܗࣜͷจ ࣈྻΛ/4%BUFʹͯ͠͠·͏
3FBMN +40/ͱ͍͏ ϥΠϒϥϦ͕͋Δ w +40/ͷϚοϐϯάϧʔϧΛ.BOUMFͷΑ͏ʹॻ ͚Δ w Ϛοϐϯάϧʔϧ3-.0CKFDUΛܧঝͨ͠Ϋϥ εͷΫϥεϝιουͱͯ͠هड़͠/4%JDUJPOBSZ Ͱฦ͢
IUUQTHJUIVCDPNNBUUIFXDIFPL3FBMN+40/
+ (NSDictionary *)JSONInboundMappingDictionary { return @{ @"id": @"identifier", @"created_at": @"createdAt"
}; } Ϛοϐϯάϧʔϧྫ LFZ͕KTPOͷLFZ WBMVF͕Ϛοϐϯά͢ΔϓϩύςΟ໊
w *40ܗࣜͷจࣈྻ/4%BUFʹͯ͘͠ΕΔ w Ͱ/4%BUFϛϦඵࣺͯΔ͠ w σʔλ͕ͳ͍ͱ͖/4%BUFͰOJMอ࣋͢Δͷϫʔ ΫΞϥϯυ͕ඞཁͳͷͰ w ࣌Λ/4%BUFͰอଘͨ͘͠ͳ͍࣌͋ͬͯ ͋Γ͕ͨ໎తͳʜ
+40/&YQPSUͷίʔυ OJMΛҙ͍ࣝͯ͠ͳ͍
+40/&YQPSUͱ IUUQTHJUIVCDPN"INFE"MJ+40/&YQPSU
+40/&YQPSUͱ w +40/&YQPSU+40/ͷϑΝΠϧ͔ΒΫϥεΛఆ ٛͯ͘͠ΕΔπʔϧ w Ϛοϐϯά༻ͷϝιουͷίʔυੜͯ͠ग़ ྗͯ͘͠ΕΔ IUUQTHJUIVCDPN"INFE"MJ+40/&YQPSU
ྫ - (instancetype)initWithDictionary:(NSDictionary *)dictionary { if(dictionary == nil || [dictionary
isKindOfClass:[NSNull class]]){ return nil; } self = [super init]; if(![dictionary[@"id"] isKindOfClass:[NSNull class]]){ self.identifier = [dictionary[@"id"] integerValue]; } if(![dictionary[@"name"] isKindOfClass:[NSNull class]]){ self.name = dictionary[@"name"]; } return self; } ͨͩEJDUJPOBSZ<!lJEz>͕OJMͳΒ@JEFOUJpFSOJMʹͳΓྫ֎͕ ى͖ΔͷͰɺ͜ͷ݅ࣗମΧελϚΠζඞཁʹͳΔ
+40/ &YQPSUͰࣗಈੜ͞ ΕΔίʔυΛݩʹΧελϚΠ ζ͍ͯ͘͠ͷ͕ྑͦ͞͏
3-.0CKFDUͷϓϩύςΟ ଐੑॻ͔ͳ͍͜ͱΛਪ
w 3FBMNͰɺOPOBUPNJD BUPNJD TUSPOH DPQZ XFBLͷ Α͏ͳ0CKFDUJWF$ͷϓϩύςΟଐੑ͕ແࢹ͞Ε·͢ w 3FBMNͷதͰɺಠࣗͷ࠷దԽ͞Εͨଐੑ͕ΘΕ·͢ɻ ͦͷͨΊɺࠞཚΛආ͚ΔͨΊʹɺ3FBMNϞσϧΫϥεΛએ
ݴ͢Δͱ͖ɺϓϩύςΟଐੑΛ͚ͳ͍͜ͱΛਪ͍ͯ͠ ·͢ɻ w ϓϩύςΟଐੑΛ͚ͨ߹ɺ3-.0CKFDU͕3FBMNʹอ ଘ͞ΕΔ·Ͱ༗ޮʹͳΓ·͢ɻ ެࣜϦϑΝϨϯεΑΓ IUUQSFBMNJPKQEPDTDPDPB
ແࢹ͞ΕΔͷ͔͞Εͳ ͍ͷ͔͔ΓͮΒ͍ʜ
͜͏͍͏͜ͱʁ %#ʹอଘ͞Εͨ 3-.0CKFDUΛ࡞ͬͨ ଐੑͷࢦఆ͕༗ޮ ଐੑͷࢦఆΛແࢹʁ w Կʹ͠Ζଐੑͷࢦఆ͠ͳ͍΄͏͕ྑͦ͞͏ %#͔Βऔಘ ଐੑͷࢦఆΛແࢹʁ
/4*OUFHFSʹ͢ΔͱCJU$16ͰࠔΔ͜ͱ ͋Δ
ωλ͕ਚ͖ͯ3FBMNͱ ؔͳ͍ΜͰ͕͢
w CJU$16ͷ߹/4*OUFHFSCJU w CJU͚ʹϏϧυ͞Ε্ͨͰCJU$16ͳΒ /4*OUFHFSCJUʹͳΔ w ϋʔυΣΞΞʔΩςΫνϟʹΑΒͣɺॴఆͷό ΠτͰ͋Δ͜ͱ͕อূ͞ΕͨΈࠐΈσʔλ ܕ͕0CK$Ͱ͑ΔͷͰͦΕΛ͏΄͏͕ྑ͍ 8FC"1*ͰCJUͷΛฦ
͞ΕΔࡍ
@interface Employ : RLMObject @property uint64_t identifier; @end ྫ͑ූ߸ͳ͠CJUͷΛอଘ͢Δඞཁ͕͋Δ ͳΒ/4*OUFHFSͰͳ͘JOU@UVJOU@UΛ͑
͍͍ͱࢥ͏
ͦͷଞ
w 3FBMN DPDPB ͷόʔδϣϯΞοϓ͕͍ w /4/VMMOJMΛಥͬࠐΊͳ͍͙͢ʹղܾ͢Δ ͩΖ͏ͱࢥ͏ w %#ͱͯ͠Ϣʔβʔͷखݩʹͬͯ͠·͏͜ͱͳ ͷͰมͳϫʔΫΞϥϯυΛͤͣͳΔ͘ૉ
ͳରԠ͍ͨ͠