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
240
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
760
Swift Playgroundsによるプログラミング コードを学ぼう3後半
masaakittakahashi
0
690
アクセシビリティの仕組みと実装(のさわり)
masaakittakahashi
0
490
Swift Playgrounds体験会その3
masaakittakahashi
0
200
Swift Playgrounds体験会その2
masaakittakahashi
0
480
Swift Playgrounds体験会その1
masaakittakahashi
0
530
Swift Playgroundsによるプログラミング コードを学ぼう2前半
masaakittakahashi
0
170
Other Decks in Programming
See All in Programming
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
780
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
520
設計やレビューに悩んでいるPHPerに贈る、クリーンなオブジェクト設計の指針たち
panda_program
6
2.1k
RailsGirls IZUMO スポンサーLT
16bitidol
0
190
システム成長を止めない!本番無停止テーブル移行の全貌
sakawe_ee
1
200
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
130
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
130
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
89
30k
“いい感じ“な定量評価を求めて - Four Keysとアウトカムの間の探求 -
nealle
2
10k
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
770
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
5
7.5k
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
3
490
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
Facilitating Awesome Meetings
lara
54
6.4k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Gamification - CAS2011
davidbonilla
81
5.4k
Being A Developer After 40
akosma
90
590k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
820
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ͰͨΊ͢ɹΛࢀߟʹ͍ͯͩ͘͠͞