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
0
260
SwiftData をiOSでためす
DevSapで発表したSwiftDataの概要と記事へのリンク
高橋政明
December 09, 2023
Tweet
Share
More Decks by 高橋政明
See All by 高橋政明
自分のiOSアプリを作ろう
masaakittakahashi
0
200
とことん楽しむプログラミング発表スライド
masaakittakahashi
0
180
Swift Playgroundsによるプログラミング コードを学ぼう3前半
masaakittakahashi
0
790
Swift Playgroundsによるプログラミング コードを学ぼう3後半
masaakittakahashi
0
690
アクセシビリティの仕組みと実装(のさわり)
masaakittakahashi
0
490
Swift Playgrounds体験会その3
masaakittakahashi
0
200
Swift Playgrounds体験会その2
masaakittakahashi
0
490
Swift Playgrounds体験会その1
masaakittakahashi
0
530
Swift Playgroundsによるプログラミング コードを学ぼう2前半
masaakittakahashi
0
170
Other Decks in Programming
See All in Programming
2026年向け会社紹介資料
misu
0
150
Vueで学ぶデータ構造入門 リンクリストとキューでリアクティビティを捉える / Vue Data Structures: Linked Lists and Queues for Reactivity
konkarin
1
160
AsyncSequenceとAsyncStreamのプロポーザルを全部読む!!
s_shimotori
1
270
SidekiqでAIに商品説明を生成させてみた
akinko_0915
0
130
Honoを技術選定したAI要件定義プラットフォームAcsimでの意思決定
codenote
0
130
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
35
11k
Phronetic Team with AI - Agile Japan 2025 closing
hiranabe
1
240
詳細の決定を遅らせつつ実装を早くする
shimabox
1
980
歴史から学ぶ「Why PHP?」 PHPを書く理由を改めて理解する / Learning from History: “Why PHP?” Rediscovering the Reasons for Writing PHP
seike460
PRO
0
140
なぜ強調表示できず ** が表示されるのか — Perlで始まったMarkdownの歴史と日本語文書における課題
kwahiro
8
4.7k
業務でAIを使いたい話
hnw
0
260
CSC509 Lecture 09
javiergs
PRO
0
290
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Making Projects Easy
brettharned
120
6.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Music & Morning Musume
bryan
46
6.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
BBQ
matthewcrist
89
9.9k
Embracing the Ebb and Flow
colly
88
4.9k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Typedesign – Prime Four
hannesfritz
42
2.9k
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ͰͨΊ͢ɹΛࢀߟʹ͍ͯͩ͘͠͞