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
SwiftUIのアニメーション_ちょっと触ってみた話
Search
riataso
June 27, 2025
Programming
0
4
SwiftUIのアニメーション_ちょっと触ってみた話
riataso
June 27, 2025
Tweet
Share
More Decks by riataso
See All by riataso
現在地から始まる物語:位置情報アプリ開発の冒険
riataso_kebin
1
34
Other Decks in Programming
See All in Programming
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
340
AI Ramen Fight
yusukebe
0
130
画像コンペでのベースラインモデルの育て方
tattaka
3
1.4k
AHC051解法紹介
eijirou
0
180
バイブコーディングの正体——AIエージェントはソフトウェア開発を変えるか?
stakaya
5
810
書き捨てではなく継続開発可能なコードをAIコーディングエージェントで書くために意識していること
shuyakinjo
0
240
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
0
790
新世界の理解
koriym
0
130
中級グラフィックス入門~効率的なメッシュレット描画~
projectasura
4
2.5k
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
190
物語を動かす行動"量" #エンジニアニメ
konifar
13
3.7k
ゲームの物理
fadis
3
910
Featured
See All Featured
Designing for humans not robots
tammielis
253
25k
Mobile First: as difficult as doing things right
swwweet
223
9.9k
RailsConf 2023
tenderlove
30
1.2k
Making Projects Easy
brettharned
117
6.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.4k
Bash Introduction
62gerente
614
210k
Gamification - CAS2011
davidbonilla
81
5.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Facilitating Awesome Meetings
lara
54
6.5k
Raft: Consensus for Rubyists
vanstee
140
7.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
The Cult of Friendly URLs
andyhume
79
6.5k
Transcript
SwiftUIͷΞχϝʔγϣϯɺͪΐͬͱ৮ͬͯΈͨ 2025/06/27 mobile.stmn#12
ࣗݾհ ɾࣾձਓ3ͷΫϥυΤϯδχΞ(23ೖࣾ) riataso @riataso_kebin ɾίʔώʔΛ೩ྉʹಈ͍͍ͯ·͢☕
࣍ ɾΞχϝʔγϣϯͬͯͦ͠͏ʁ࣮... ɾSwiftUiΞχϝʔγϣϯͷ֓ཁ ɾදతΞχϝʔγϣϯհ ɾ࣮ࡍʹ࡞ͬͯΈͨʂσϞΞϓϦհ ɾ·ͱΊ
ݸਓ։ൃͷΞϓϦʹΞχϝʔγϣϯɺೖΕͯ·͔͢ʁ
Ξχϝʔγϣϯͬͯͦ͠͏ʁ࣮... 😅͢ΕOKͬͯࢥͬͯͯɺ Ξχϝʔγϣϯશવ৮ͬͯ·ͤΜͰͨ͠ɻ ɾ·ͣػೳΛͤ͞Α͏ ɾΞχϝʔγϣϯσβΠϯ༨༟͕͋ͬͨΒ… ɾͳͯ͘ಈ͘͠ɺ͍͍͔ͳɻ ΞχϝʔγϣϯΛޙճ͠ʢ࣮͠ͳ͍ɻɻʣঢ়ଶͰऴΘΔ
Ξχϝʔγϣϯͬͯͦ͠͏ʁ࣮... ΞχϝʔγϣϯΛͬͯΈͯ ɾجຊతͳͷͳΒҙ֎ͱ؆୯ ɾΞϓϦ͕ͪΌΜͱͯ͠ݟ͑Δʂ ͦΜͳSwiftUIΞχϝʔγϣϯͷ ໘ന͞Λগ͠Ͱײͯ͡Β͑ͨΒͱࢥ͍·͢ɻ
SwiftUiΞχϝʔγϣϯͷ֓ཁ
SwiftUIΞχϝʔγϣϯͷ֓ཁ SwiftUIͷΞχϝʔγϣϯͱʁ • ঢ়ଶมԽΛࣗಈతʹิؒͯ͠ΞχϝʔγϣϯԽ • એݴతͳهड़Ͱෳࡶͳ੍ޚ͕ෆཁ • @StateͳͲͷঢ়ଶཧͱ࿈ܞͯ͠ಈ࡞
දతͳΞχϝʔγϣϯհ
දతͳΞχϝʔγϣϯ SwiftUIͰΑ͘ΘΕΔجຊతͳΞχϝʔγϣϯख๏ɿ 1. ҉తΞχϝʔγϣϯ (.animation) • Ϗϡʔͷঢ়ଶมԽΛࣗಈͰΞχϝʔγϣϯ • ༻ྫɿϘλϯͷ৭มߋɺαΠζมߋ 2.
໌ࣔతΞχϝʔγϣϯ (withAnimation) • ಛఆͷλΠϛϯάͰΞχϝʔγϣϯ࣮ߦ • ༻ྫɿෳཁૉͷಉظΞχϝʔγϣϯ 3. τϥϯδγϣϯ (.transition) • Ϗϡʔͷදࣔ/ඇදࣔ࣌ͷΞχϝʔγϣϯ • ༻ྫɿը໘ભҠɺཁૉͷग़ݱ/ফࣦ
දతͳΞχϝʔγϣϯ SwiftUIͰΑ͘ΘΕΔجຊతͳΞχϝʔγϣϯख๏ɿ 1. ҉తΞχϝʔγϣϯ (.animation) • Ϗϡʔͷঢ়ଶมԽΛࣗಈͰΞχϝʔγϣϯ • ༻ྫɿϘλϯͷ৭มߋɺαΠζมߋ 2.
໌ࣔతΞχϝʔγϣϯ (withAnimation) • ಛఆͷλΠϛϯάͰΞχϝʔγϣϯ࣮ߦ • ༻ྫɿෳཁૉͷಉظΞχϝʔγϣϯ 3. τϥϯδγϣϯ (.transition) • Ϗϡʔͷදࣔ/ඇදࣔ࣌ͷΞχϝʔγϣϯ • ༻ྫɿը໘ભҠɺཁૉͷग़ݱ/ফࣦ
දతͳΞχϝʔγϣϯ
දతͳΞχϝʔγϣϯ 1. ҉తΞχϝʔγϣϯ (.animation) λοϓͰԁ͕มԽ͢ΔΞχϝʔγϣϯ ʲಈ࡞༰ʳ • ԁλοϓͰ isAnimated ͷঢ়ଶ͕ΓସΘΔ
• ৭: ੨ ⁶ ɺαΠζ: 100×100 ⁶ 200×200 • 0.5ඵͷͳΊΒ͔ͳΠʔζΠϯΞτ ʲ҉తΞχϝʔγϣϯͷಛʳ ✅ ঢ়ଶมԽΛࣗಈͰݕ ✅ .animationϞσΟϑΝΠΞҰͭͰ࣮ ✅ ෳͷϓϩύςΟΛಉ࣌ʹΞχϝʔγϣϯ
දతͳΞχϝʔγϣϯ Ξχϝʔγϣϯ ͳ͠ Ξχϝʔγϣϯ ͋Γ
දతͳΞχϝʔγϣϯ SwiftUIͰΑ͘ΘΕΔجຊతͳΞχϝʔγϣϯख๏ɿ 1. ҉తΞχϝʔγϣϯ (.animation) • Ϗϡʔͷঢ়ଶมԽΛࣗಈͰΞχϝʔγϣϯ • ༻ྫɿϘλϯͷ৭มߋɺαΠζมߋ 2.
໌ࣔతΞχϝʔγϣϯ (withAnimation) • ಛఆͷλΠϛϯάͰΞχϝʔγϣϯ࣮ߦ • ༻ྫɿෳཁૉͷಉظΞχϝʔγϣϯ 3. τϥϯδγϣϯ (.transition) • Ϗϡʔͷදࣔ/ඇදࣔ࣌ͷΞχϝʔγϣϯ • ༻ྫɿը໘ભҠɺཁૉͷग़ݱ/ফࣦ
දతͳΞχϝʔγϣϯ
දతͳΞχϝʔγϣϯ 2. ໌ࣔతΞχϝʔγϣϯ (withAnimation) withAnimationΛͬͨϘλϯϑΟʔυόοΫ ϘλϯΛԡ͢ͱʮॖΜͰΔʯಈ࡞Ͱ ࢹ֮తϑΟʔυόοΫΛఏڙ͠·͢ɻ ʲಈ࡞༰ʳ 1. ϘλϯλοϓͰ90%ʹॖখ
(0.1ඵɺeaseIn) 2. completionޙɺݩαΠζʹ෮ؼ (0.1ඵɺeaseOut) ʲwithAnimationͷಛʳ ✅ ஈ֊తͳΞχϝʔγϣϯ੍ޚ ✅ completionػೳͰ࿈ଓ࣮ߦ ✅ λΠϛϯάͱॱংΛࡉ͔͘ࢦఆՄೳ
දతͳΞχϝʔγϣϯ Ξχϝʔγϣϯ ͳ͠ Ξχϝʔγϣϯ ͋Γ
දతͳΞχϝʔγϣϯ SwiftUIͰΑ͘ΘΕΔجຊతͳΞχϝʔγϣϯख๏ɿ 1. ҉తΞχϝʔγϣϯ (.animation) • Ϗϡʔͷঢ়ଶมԽΛࣗಈͰΞχϝʔγϣϯ • ༻ྫɿϘλϯͷ৭มߋɺαΠζมߋ 2.
໌ࣔతΞχϝʔγϣϯ (withAnimation) • ಛఆͷλΠϛϯάͰΞχϝʔγϣϯ࣮ߦ • ༻ྫɿෳཁૉͷಉظΞχϝʔγϣϯ 3. τϥϯδγϣϯ (.transition) • Ϗϡʔͷදࣔ/ඇදࣔ࣌ͷΞχϝʔγϣϯ • ༻ྫɿը໘ભҠɺཁૉͷग़ݱ/ফࣦ
දతͳΞχϝʔγϣϯ
දతͳΞχϝʔγϣϯ 3. τϥϯδγϣϯ(transition) .transitionΛͬͨϏϡʔͷදࣔɾඇදࣔ ϘλϯΛλοϓ͢Δͱ੨͍ԁ͕ εέʔϧΞχϝʔγϣϯͰొɾୀ͠·͢ɻ ʲಈ࡞༰ʳ 1. ݅ذ (if
showCircle) ʹΑΔදࣔ/ඇදࣔΓସ͑ 2. .transition(.scale)ͰαΠζมԽΞχϝʔγϣϯ 3. withAnimationͰ0.5ඵͷΠʔζΠϯΞτ ʲ.transitionͷಛʳ ✅ Ϗϡʔͷग़ݱɾফࣦʹ͑ΔΞχϝʔγϣϯ ✅ ݅ذʹΑΔදࣔΓସ͑Ͱࣗಈద༻
࣮ࡍʹ࡞ͬͯΈͨʂσϞΞϓϦհ
࣮ࡍʹ࡞ͬͯΈͨʂσϞΞϓϦհ
࣮ࡍʹ࡞ͬͯΈͨʂσϞΞϓϦհ ʮը໘දࣔ࣌ͷ࿈ଓεϥΠυΠϯʯ ɾvisibleItemsͰ֤ΞΠςϜͷදࣔঢ়ଶΛཧ ɾoffsetͰҐஔΛ੍ޚʢը໘֎ → ը໘ʣ ɾdelayͰ0.1ඵͣͭͣΒͯ͠ॱ൪ʹදࣔ ɾSwiftUI͕ࣗಈͰΒ͔ͳΞχϝʔγϣϯΛੜ
࣮ࡍʹ࡞ͬͯΈͨʂσϞΞϓϦհ ʮλοϓ࣌ͷεϜʔζͳঢ়ଶมԽʯ ɾwithAnimationͰғΉ͚ͩͰࣗಈΞχϝʔγϣϯ ɾΞΠίϯมԽɺ৭มԽɺςΩετ০͕࿈ಈ ɾεϓϦϯάΞχϝʔγϣϯͰࣗવͳಈ͖
࣮ࡍʹ࡞ͬͯΈͨʂσϞΞϓϦհ ʮঢ়ଶมԽʹԠͨ͡ݟͨͷࣗಈߋ৽ʯ ɾ݅ذͰݟͨΛΓସ͑ ɾSwiftUI͕ࠩΛݕͯࣗ͠ಈΞχϝʔγϣϯ
·ͱΊ
·ͱΊ ɾSwiftUIͰ؆୯ʹΞχϝʔγϣϯΛಋೖ͢Δ͜ͱ͕Ͱ͖Δ ɾঢ়ଶมԽViewͷΓସ͑ʹԠͨࣗ͡વͳಈ͖Λ࣮ݱ ɾ҉తɾ໌ࣔతΞχϝʔγϣϯɺτϥϯδγϣϯͳͲ͕͋Δ
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ
ࢀߟࢿྉ ɾhttps://developer.apple.com/jp/videos/play/wwdc2023/10156/ ɾhttps://qiita.com/ichikawa7ss/items/164a2dfd3c3ab2b1eae8