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
VIPERアプリにSwiftUIを導入してみた
Search
おしん
July 18, 2023
Programming
1
360
VIPERアプリにSwiftUIを導入してみた
おしん
July 18, 2023
Tweet
Share
More Decks by おしん
See All by おしん
よりアプリらしさを出すために
shincarpediem
1
35
Concurrency Warningが 沢山出たから聞いてほしい ~Xcode 16.1 Beta 編~
shincarpediem
1
140
iOSのPhoto Libraryアクセス権限を見直してみよう
shincarpediem
1
170
SwiftUI登場前のVIPERアプリでもSwiftUIをスムーズに導入できた話
shincarpediem
2
1.4k
Other Decks in Programming
See All in Programming
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
190
週次リリースを実現するための グローバルアプリ開発
tera_ny
1
1.1k
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
400
Androidアプリのモジュール分割における:x:commonを考える
okuzawats
1
270
Amazon Nova Reelの可能性
hideg
0
190
テストコード書いてみませんか?
onopon
2
330
混沌とした例外処理とエラー監視に秩序をもたらす
morihirok
13
2.1k
ecspresso, ecschedule, lambroll を PipeCDプラグインとして動かしてみた (プロトタイプ) / Running ecspresso, ecschedule, and lambroll as PipeCD Plugins (prototype)
tkikuc
2
1.7k
サーバーゆる勉強会 DBMS の仕組み編
kj455
1
300
非ブラウザランタイムとWeb標準 / Non-Browser Runtimes and Web Standards
petamoriken
0
430
DevinとCursorから学ぶAIエージェントメモリーの設計とMoatの考え方
itarutomy
0
110
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
770
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Into the Great Unknown - MozCon
thekraken
34
1.6k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
The Cult of Friendly URLs
andyhume
78
6.1k
Adopting Sorbet at Scale
ufuk
74
9.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Making the Leap to Tech Lead
cromwellryan
133
9k
Statistics for Hackers
jakevdp
797
220k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
Transcript
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE $PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 7*1&3ΞϓϦʹ4XJGU6*Λ ಋೖͯ͠Έͨ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 2 ࣗݾհ ੨ৼҰ झຯ ♨εύͰອըΛಡΈͳ͕Βμ ϥμϥ͢Δ͜ͱ 🥊CNPOTUFSͰ҉ҋϘΫγϯ άʹ໌͚ΕΔ͜ͱ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 3 4XJGU6*ͱ 4XJGU6*Ұൠతʹ.77.ΞʔΩςΫνϟͰ ಋೖ͞Ε͍ͯΔ͜ͱ͕ଟ͍ͱࢥ͍·͢
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 4 7*1&3ͱ J04ΞϓϦέʔγϣϯʹ ΫϦʔϯΞʔΩςΫνϟΛద༻ͨ͠ͷ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 5 7*1&3ʹ4XJGU6*Λ࣮ࡍʹಋೖ͢Δํ๏
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 6 7*1&3ʹ4XJGU6*Λ࣮ࡍʹಋೖ͢Δํ๏ 7JFX$POUSPMMFS͕7JFXͷ͜ͱΛ Βͳͯ͘ྑ͘ͳΓ·ͨ͠
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 7 7JFX.PEFMΛ࡞Γɺ7JFX$POUSPMMFSͱ4XJGU6*ͷ7JFXʹࢀরͤ͞Δ 0CTFSWBCMF0CKFDUΛܧঝͨ͠ 7JFX.PEFMΛ࡞͠·͢ɻ 6*7JFX$POUSPMMFSͱɺ4XJGU6*ͷ 7JFXͦΕͧΕ͕ɺ7JFX.PEFMΛ ࢀরͰ͖ΔΑ͏ʹ͠·͢ɻ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 8 4XJGU6*ͷ7JFXΛ6*7JFX$POUSPMMFSʹଓ͢Δ४උ 6*)PTUJOH$POUSPMMFSΛ ͬͯ4XJGU6*ͷ7JFXΛ ΊࠐΉॴΛ༻ҙ ͠·͢ɻ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 9 ࣮ࡍʹ4XJGU6*ͷ7JFXΛΊࠐΜͰɺར༻ 4XJGU6*ͷ7JFX 6*7JFX$POUSPMMFSΛ ҙࣝͤͣʹ ࣮Ͱ͖Δʂ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 10 ͏·͍ͬͨ͘͜ͱᶃʙ4XJGU6*ͷԸܙɿ6*ͷमਖ਼͕രʹͳͬͨʙ "VUP-BZPVUΛΉͨΊͷ ੍पΓͷίʔυ͕ෆཁʹͳΓɺ 7JFXͷमਖ਼͕ମײഒ͘Β͍͘ͳΓ·ͨ͠ɻ ɹ6*,JU ɹ4XJGU6*
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 11 ͏·͍ͬͨ͘͜ͱᶄʙ.77.ͷԸܙɿ7JFXͷߋ৽ॲཧΛॻ͘ඞཁ͕ͳ͘ͳͬͨʙ ɹ#JOEJOH ɹᶃ ɹᶄ ɹᶅ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 12 ͏·͍͔͘ͳ͔ͬͨ͜ͱᶃʙ7JFX.PEFMͷΛ7JFX͔ΒมߋͰ͖ͯ͠·͏ʙ 7JFX.PEFMͷϓϩύςΟ͕ɺ 4XJGU6*ͷ7JFX͔ΒมߋՄೳ ʹͳ͍ͬͯΔ👁
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 13 ͏·͍͔͘ͳ͔ͬͨ͜ͱᶃͷղܾࡦ 7JFX$POUSPMMFS͕7JFX.PEFMͷ Λมߋ͍͕ͯͨ͠ɺ ͷมߋ7JFX.PEFM͔Β͔͠ Ͱ͖ͳ͍Α͏ʹ͢Δɻ 7JFXΛόΠϯυ͢Δׂͷ7JFX.PEFM ͱɺ7JFXɾ*OUFSBDUPSɾ3PVUFSͱͷϋϒ
Ͱ͋Δ1SFTFOUFSͷׂ͕߹Θ͞Δɻ🙃
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 14 ͏·͍͔͘ͳ͔ͬͨ͜ͱᶄʙ04WFSຖʹ͑ΔNPEJ fi FS͕݁ߏ͋Δʙ J04ͰɺτάϧϘλϯͷ৭Λม͑ΔϞ σΟϑΝΠΞ UJOU$PMPS ͕͑ͳ͍ɻ
ଞʹɺɺ ςΩετϑΟʔϧυ5FYU7JFXɻ ೖྗ༰ͷมߋΛݕ͢ΔPO$IBOHFϞσΟ ϑΝΠΞɺJ04͔Β͔͑͠ͳ͍ɻ ΩʔϘʔυͷΤϯλʔΩʔΛݕ͢Δ PO4VCNJUϞσΟϑΝΠΞ J04͔Β͔͑͠ͳ͍ɻ
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 15 ͏·͍͔͘ͳ͔ͬͨ͜ͱᶄͷղܾࡦ 04όʔδϣϯຖʹ ۪ʹذͤ͞·ͨ͠ɻস
$PQZSJHIUTUNO JOD"MMSJHIUTSFTFSWFE 16 ·ͱΊ ɾ 6*,JUͰ7JFX͕ߏங͞Εͨ 7*1&3ʹ4XJGU6*ΛΈࠐΉ͜ͱͰ ʮ7JFX༩͑ΒΕͨσʔλΛͱʹ6*Λͨͩදࣔ͢Δ͚ͩʯ ɹΛపఈ͘͢͠ͳͬͨɻ ˠ.77.ͷԸܙΛड͚ΒΕΔΑ͏ʹͳͬͨ🎉
ɾ4XJGU6*ࣗମʹ͍ͭͯɺ04ͷαϙʔτԼݶΛ্͛Ε্͛Δ΄Ͳɺ ɹ͑ΔϞσΟϑΝΠΞͷछྨ͕૿͑ͯɺ7JFXͷ։ൃੜ࢈ੑ্͕͕Δͱײͨ͡ɻ ˠ4XJGU6*ͦͷͷͷਐԽʹظʂʂ🥳