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
SwiftData をiOSでためす
Search
高橋政明
December 09, 2023
Programming
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SwiftData をiOSでためす
DevSapで発表したSwiftDataの概要と記事へのリンク
高橋政明
December 09, 2023
More Decks by 高橋政明
See All by 高橋政明
初期MacとQuickDrawで振り返るApple50年
masaakittakahashi
1
57
自分のiOSアプリを作ろう
masaakittakahashi
0
220
とことん楽しむプログラミング発表スライド
masaakittakahashi
0
210
Swift Playgroundsによるプログラミング コードを学ぼう3前半
masaakittakahashi
0
830
Swift Playgroundsによるプログラミング コードを学ぼう3後半
masaakittakahashi
0
710
アクセシビリティの仕組みと実装(のさわり)
masaakittakahashi
0
520
Swift Playgrounds体験会その3
masaakittakahashi
0
230
Swift Playgrounds体験会その2
masaakittakahashi
0
520
Swift Playgrounds体験会その1
masaakittakahashi
0
570
Other Decks in Programming
See All in Programming
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
仕様駆動開発の消費期限
watany
20
9.2k
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
500
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
630
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
230
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.4k
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
600
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
120
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
280
Go 1.27 における memory allocation の高速化
andpad
0
370
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
130
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Code Reviewing Like a Champion
maltzj
528
40k
Producing Creativity
orderedlist
PRO
348
41k
Building an army of robots
kneath
306
46k
The SEO identity crisis: Don't let AI make you average
varn
0
550
First, design no harm
axbom
PRO
2
1.3k
We Are The Robots
honzajavorek
0
330
For a Future-Friendly Web
brad_frost
183
10k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
A better future with KSS
kneath
240
18k
Transcript
SwiftDataΛiOSͰͨΊ͢ շٕ҇ɹߴڮ໌ɹɹ 𝕏 @houheiɹɹhttps://note.com/kaigian 202312݄9ɹDevSapൃදࢿྉ
noteͷهࣄ • SwiftDataΛiOSͰͨΊ͢ લΛࢼಡͰ͖Δ༗ྉهࣄ • ߪಡํ๏ • ϚΨδϯɹߪಡͰશهࣄߪಡɹࠓޙͷՃ͕͋ΕͦΕಡΊΔ •
هࣄ୯ҐɹʮSNSϓϩϞʔγϣϯػೳʯͰɹׂҾߪಡ • 𝕏 ʢچTwitterʣ@houheiͷهࣄΛݟ͚ͭͯϙετΛϦϙετ͢Δ
ϚΨδϯURL https://note.com/kaigian/m/m4350f04fed f b • ֤هࣄʹϦϯΫ͍ͯ͠·͢ • લࢼಡͰ͖·͢
SwiftData • ͬͯ·͢ʁ • iOS 17Ҏ߱ɹWWDC2023ͰൃදɹSwiftઐ༻ • SwiftUIͱҰॹʹ͏ͱগͳ͍ίʔυͰࡁΉ • υΩϡϝϯτ͕·ͩগͳ͍ɹʢWWDCޙΑΓ͍ͩͿϚγʹͳͬͨʣ
• αϯϓϧͷղઆϖʔδ͕ྑ͍ࢿྉʹͳ͍ͬͯΔ • σϑΥϧτͰӬଓԽσʔλ͕Ͳ͜ʹอଘ͞ΕΔ͔ͳͲ͕ॻ͔Ε͍ͯͳ͍
SwiftDataΛγϯϓϧʹͨΊ͢ • WWDCޙͱঢ়گมΘ͍ͬͯΔ • υΩϡϝϯτͱαϯϓϧ͕Ճ͞Εͨ • Query͕ϚΫϩʹมߋ • XcodeͷςϯϓϨʔτ •
ςϯϓϨʔτͷίʔυDateσʔλΛొ͢Δɹొը໘ෆཁͰγϯϓϧ • ςϯϓϨʔτՃ͚ͩͰͳ͘আؚΉ • Xcode ࣮ߦ࣌ʹ Debug navigatorɹDisk > Files ʢҰ൪Լʣ
CSVϑΝΠϧσʔλΛಡΈSwiftDataͰ͏ • SwiftDataͷςϯϓϨʔτ͔Β গ͠ͷมߋͰӬଓԽσʔλ࡞ઐ༻πʔϧΛ࡞Δ͜ͱ͕Ͱ͖Δ • ΞϓϦͷӬଓԽσʔλΛ࡞͢Δαϯϓϧɹஶऀͱ࡞σʔλͳͲͰ͑Δ • CSV࠷খݶͷίʔυͰಡΈࠐΊΔɹҾ༻ූॲཧͳͲҙඞཁ
ΞϓϦىಈ࣌ͷදࣔใʹSwiftDataΛ͏ • ӬଓԽ.store ModelCon f iguration ͷΠχγϟϥΠβͰࢦఆ͢Δ • URL
εΩʔϜ໊ʮ f ileʯͷ໌͕ࣔඞཁ • ॳճىಈ࣌ʹσʔλՃɺΈ୯७͕ͩҙඞཁ • URLࢦఆ͕ਖ਼͘͠ͳ͍ͱCoreDataͷΤϥʔ͕දࣔ͞ΕΔ
ϚΫϩ ͱ Φϒβϕʔγϣϯ • ͲͪΒ iOS 17Ҏ߱ • ϚΫϩͷதͰϚΫϩΛ͑Δɹల։Ͱ͖Δ •
Observation • ޮ͕ྑ͍͕ͣͩWWDCͰࣃΕ͕ѱ͔ͬͨ • SwiftUIઐ༻Ͱͳ͍ • ObservableObjectͰൃੜ͢ΔෆཁͳϏϡʔߋ৽ͷ৺ͳ͘ͳΔ ➡Observationඞཁͳ߹ͷΈߋ৽
None
SwiftDataͷݕࡧɾߜΓࠐΈͱฒସ͑ • ϏϡʔΠχγϟϥΠβ Λ͏ͱ ಈతʹݕࡧฒସ͑Ͱ͖Δ • ݕࡧߜΓࠐΈ݅ʹରԠͨ͠ɹPredicateΛฦؔ͢ɹΛϞσϧʹΈࠐΉ ɹෳͷϏϡʔͰಉ݅͡ʹͰ͖ศར • PredicateΛฦؔ͢ɹར༻͢ΔϏϡʔ͕Ұ͚ͭͩͰ
ɹ݅Ͱ༻͢ΔϓϩύςΟ͕֬ೝ͘͢͠ɹϞσϧʹஔ͘ͷ͕ݟ͍͢
ݕࡧ݁Ռͷදࣔॱͱ݁Ռͳ͠ • දࣔॱɹ୯७ʹΩʔύεࢦఆ͚ͩͰ Finderॱ ʹͳΒͳ͍ • ࣈΛؚΉ߹ Finderॱ ͕·͍͠ɹSortDescriptorΛ͏ •
SwiftUI ʹ ContentUnavailableView ͳͲ৽͍͠Ϗϡʔ͕Ճ͞Ε͍ͯΔ • ContentUnavailableView ͓͢͢Ί • μΠφϛοΫλΠϓͱμʔΫϞʔυʹରԠࡁΈ • ContentUnavailableView.search ϩʔΧϥΠζෆཁͰڞ௨ͷද͕ࣔՄೳ ͳλΠϓϓϩύςΟ
ContentUnavailableView.search ContentUnavailableView
࠷ޙʹ • SwiftData SwiftUI ͱͷΈ߹ΘͤͰศརʹ͑Δ • υΩϡϝϯτ·ͩগͳ͍ • αϯϓϧίʔυͱͦͷղઆϖʔδوॏͳ࣮ྫͰʹͨͭ
• ςϯϓϨʔτ͔Βελʔτ͢Δͷ͕ྑ͍ • ࠓޙʹظ • SwiftDataΛiOSͰͨΊ͢ɹΛࢀߟʹ͍ͯͩ͘͠͞