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,Combine Framework,KeyPath - 堅固な関係からSwif...
Search
notoroid
January 18, 2020
Programming
660
1
Share
SwiftUI,Combine Framework,KeyPath - 堅固な関係からSwiftUI への閾値を下げる
SwiftUI を理解するのに欠かせないCombine framework とKeyPath についてのプレゼンテーション。
notoroid
January 18, 2020
More Decks by notoroid
See All by notoroid
New_features_in_Xcode26.3_to_Xcode26.4.pdf
notoroid
0
80
iOS26 オーディオ録音新機能 - iOS26 AVInputPickerInteraction
notoroid
0
98
Info.plist - after Xcode26.
notoroid
0
68
GeometryReader - SwiftUI
notoroid
0
100
iOS 26 SDKの新機能 (liquid抜き) - iOS26orLaterUpdateAndSceneForUIKit
notoroid
0
230
UIテスト自動化サポート- Testbed for XCUIAutomation practice
notoroid
0
230
UIViewController - Interactive PopGesture
notoroid
0
100
Xcodeショートカット 2025年版
notoroid
0
130
ZIPでくれ - Apple謹製 geocoding/ reverse geocoding
notoroid
0
180
Other Decks in Programming
See All in Programming
1人1案件のプロダクトエンジニア時代に、"プロセス監督"としてチャレンジしたこと
non0113
0
340
開発とはなにか、Essenceカーネルで見えるもの
ukin0k0
0
220
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
3
1.4k
Inside Stream API
skrb
1
240
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
120
Talking to terminals (and how they talk back) (KotlinConf 2026)
jakewharton
PRO
1
140
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
710
関係性から理解する"同一性"の型用語たち
pvcresin
2
590
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
290
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.1k
iOS26時代の新規アプリ開発
yuukiw00w
0
210
Oxlintのカスタムルールの現況
syumai
5
750
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Making Projects Easy
brettharned
120
6.6k
The Cult of Friendly URLs
andyhume
79
6.9k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.5k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
Joys of Absence: A Defence of Solitary Play
codingconduct
1
380
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
310
A better future with KSS
kneath
240
18k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
200
Transcript
4XJGU6* $PNCJOF 'SBNFXPSL ,FZ1BUI ݎݻͳ͔ؔΒ4XJGU6*ͷᮢΛԼ͛Δ
ࣗݾհ
ೳొཁ !OPUPSPJE w J04ΞϓϦ։ൃऀ w ߸͍Γ·͢ిࢉاը w !OPUPSPJE w !JSJNBTV
w Fεϙʔπ
ॆిใࠂ͞Μ #BUUFSFDFJWFS w όοςϦʔϞχλʔ ϢʔςΟϦςΟʔ w ࠷େ ࣮ػ ϦϞʔτ
w ख࣋ͪͷJ1IPOF͔Βଞʹ͍࣋ͬͯΔ J1IPOF J1BEͳͲͷػثͷόοςϦʔঢ়ଶ֬ ೝՄೳ w ࣗʹ͋ΔJ1IPOFͷόοςϦʔঢ়ଶ֬ೝՄ ೳ
ॆిใࠂ͞Μ #BUUFSFDFJWFS w </FX>ॆిྃ௨ w ॆిྃΛ͑ͯ͘ΕΔ௨ΛՃɻ w ҎԼʹࢦఆ͢Δ͜ͱͰόοςϦʔ ΛέΞ͢Δ͜ͱ͕Մೳ w
Կ͔ͱߴ͍J1IPOFΛ࣋ͪͤ͞Δͷʹ༗ ༻
w ։ൃͨ͠ΞϓϦͷۙگ w ։ൃελΠϧసͷલ৮Ε w ,FZ1BUI w $PNCJOFGSBNFXPSL
։ൃͨ͠ΞϓϦͷۙگ
0CKFDUJWF$͔Β4XJGUͷҠ২ͨ͠ΞϓϦ
ಈ͘ϦϦʔε͢Δ͜ͱΛ༏ઌ
ݱࡏ෦ߏΛཧͭͭ͠ ৽ػೳରԠத
։ൃελΠϧసͷલ৮Ε
4XJGU6*ΞϓϦ։ൃͰ ໘ͨ͜͠ͱ
ଞ4XJGUͷςΫϊϩδʔΛ Βͳ͍ͱ࡞ۀ͕ετοϓ͢Δ
"QQMFఏڙ4XJGUಛԽͷ ༗໊ϑϨʔϜϫʔΫͭ $PNCJOFGSBNFXPSL 4XJGU6*
։ൃऀ͕ 0CKFDUJWF$ΑΓ ް͍ 4XJGUʹಛԽͨ͠ϑϨʔϜϫʔΫ ૿͑ͯ͘Δ͔
4XJGU6*ͰΘΕ͍ͯΔ 4XJGUͷςΫϊϩδʔΛઆ໌ͯ͠ΈΔ
ຖ೦ͱͯ͠Εͳ͍Α͏ʹ এ͑ͯΑ͍͙Β͍Λબͼ·ͨ͠
,FZ1BUI
ΩʔΛͯ͠ʹ ΞΫηεͰ͖Δػೳ
4XJGU͔Βݱࡏͷ,FZ1BUIͷܗʹ 0CKFDUJWF$͔Β͋Δػೳͱผ
,FZQBUI 4XJGUʙ w ܕΛݫີʹѻ͏จࣈྻͰͷΩʔΞΫηεΛલఏͱ͠ͳ͍ w /40CKFDUඇґଘ 4XJGUͰͷར༻ಛԽ w ఆٛؒͷύε࿈͕݁Մೳ
w ྻͷΞΫηε͕Մೳ
͍ํ ɾࣗࣗΛ໌ࣔ͢Δ߹ a<Ϋϥε໊>Ωʔ໊\Ωʔ໊^ ɾࣗݾݴٴ͢Δ߹4FMGΛ༻Ͱ͖Δ a4FMGΩʔ໊ ɾলུܗ͕ڐՄ͞Ε͍ͯΔ aΩʔ໊ ɾྻࢦఆͰ͖Δ a<Ϋϥε໊>ྻΩʔ໊<ΠϯσοΫε>
Ωʔͷ࿈݁ a<Ϋϥε໊>Ωʔ໊BQQFOEJOH a<Ϋϥε໊>Ωʔ໊ BQQFOEJOHΛΘͳͯ͘࿈݁ͯ͠هड़Մೳ
4XJGUͷࠒͷ༻్ w ,70 ,FZ7BMVF0CTFSWJOH ͱͯ͠༻ <ΦϒδΣΫτ໊>PCTFSWF <Ωʔύε> PQUJPOT<Φϓγϣϯ> \ <ΦϒδΣ
Ϋτ> <มߋ> JO ^
4XJGUҎ߱ͷ,FZ1BUIͷ༻్ w ,70 ,FZ7BMVF0CTFSWJOH w $PNCJOFGSBNFXPSL w NBQ
w BTTJHO w 4XJGU6* w 'PS&BDI -JTU 'PSN w FOWJSPONFOU
ॆిใࠂ͞ΜͰͷ,FZ1BUI༻ճ ໊ؔ ༻ ϑϨʔϜϫʔΫ ༻్ NBQ $PNCJOFGSBNFXPSL 'PS&BDI 4FMGTVQQPSUF
E-PDBMFT 4XJGU6* 1SFWJFX FOWJSPONFOU aMPDBMF MPDBMF 4XJGU6* 1SFWJFX BTTJHO UP PO $PNCJOFGSBNFXPSL 'PS&BDI JEaTFMG 4XJGU6* FOWJSPONFOU aJT&OBCM FE 4XJGU6*
ॆిใࠂ͞ΜͰͷ,FZ1BUI༻ճ ໊ؔ ༻ ϑϨʔϜϫʔΫ ༻్ NBQ $PNCJOFGSBNFXPSL 'PS&BDI 4FMGTVQQPSUF
E-PDBMFT 4XJGU6* 1SFWJFX FOWJSPONFOU aMPDBMF MPDBMF 4XJGU6* 1SFWJFX BTTJHO UP PO $PNCJOFGSBNFXPSL 'PS&BDI JEaTFMG 4XJGU6* FOWJSPONFOU aJT&OBCM FE 4XJGU6*
,FZ1BUIͷ༻్4XJGU6*ΞϓϦ w $PNCJOFGSBNFXPSL༻࣌ʹͷऔΓग़͠खஈͱͯ͠ར༻͕࠷ଟ w ҙ֎ʹ1SFWJFXͰͷ༻్͕ଟ͍ ϩέʔϧΛมߋͯ͠ͷ֬ೝ w 'PS&BDIͰͷ༻్άϥϑද͚ࣔͩ༻
$PNCJOFGSBNFXPSL
$PNCJOFGSBNFXPSL w σʔλͷྲྀྔɺྲྀΛ੍ޚ͢ΔͨΊͷϑϨʔϜϫʔΫ w ඇಉظʹରԠ w σʔλجຊܕɺߏܕɺྻڍܕɺΦϒδΣΫτΛࢦఆͰ͖Δ w 4XJGUͷػೳΛଟ༻ (FOFSJD
,FZ1BUI w ϑϨʔϜϫʔΫ͕ඞཁ JNQPSU$PNCJOF J04ʙ
Πϝʔδਤ
σʔλ σʔλ σʔλ σʔλͷೖΓޱ
σʔλͷมܗ σʔλC σʔλC σʔλC σʔλC σʔλB σʔλB
σʔλC σʔλC σʔλC σʔλC σʔλB σʔλB 1VCMJTIFST 4VCTDSJCFST 0QFSBUPST σʔλͷมܗ
σʔλͷมܗɺσʔλͷྲྀɺσʔλͷྲྀྔͷՃ σʔλͷൃߦऀ σʔλͷߪಡऀ
JNQPSU6*,JU JNQPSU$PNCJOF WBSBOZ$BODFMBCMF4FU"OZ$BODFMMBCMF MFUQBTTUISPVHI4VCKFDU1BTTUISPVHI4VCKFDU*OU /FWFS MFUQBTTUISPVHI4VCKFDU1BTTUISPVHI4VCKFDU4USJOH /FWFS
QBTTUISPVHI4VCKFDU NBQ\WBMVFJO 4USJOHa WBMVF ^ TVCTDSJCF QBTTUISPVHI4VCKFDU QBTTUISPVHI4VCKFDUTJOL\ WBMVF JO QSJOU QBTTUISPVHI4VCKFDUTJOLWBMVFa WBMVF ^TUPSF JOBOZ$BODFMBCMF 1VCMJTIFS୲ 4VCTDSJCFS୲ 0QFSBUPS୲
σʔλͷൃߦݩछྨ
1VCMJTIFS݉4VCTDSJCFS 1VCMJTIFSͷछྨᶃᶄ w1BTTUISPVHI4VCKFDU w$VSSFOU7BMVF4VCKFDU 1VCMJTIFS σʔλͷൃߦݩ ͱ4VCKFDU σʔλ ͷߪಡଆ Λ݉ͶΔɺσʔλܕͷมʹదͳ
0QFSBUPSTΛ͏ NBQͳͲ
ඇಉظॲཧ 1VCMJTIFSͷछྨᶅ w'VUVSF ϦΫΤετޙɺඇಉظͰσʔλ͕खʹೖΔॲཧ ωοτϫʔΫϦΫΤε τͳͲ ͷσʔλΛड͚औΔͷʹར༻͢ΔɻΤϥʔΛऔಘͰ͖ͣΤϥʔ ͕ฦͬͯ͘Δ͜ͱ͋Δ
$PNCJOFGSBNFXPSLͷಛ
ΤϥʔϨʔϯͷ༗ແ͕બΔ
σʔλͷೖΓޱ
σʔλͷೖΓޱ
σʔλͷೖΓޱ
MFUQBTTUISPVHI4VCKFDU1BTTUISPVHI4VCKFDU*OU /FWFS QBTTUISPVHI4VCKFDUTFOE QBTTUISPVHI4VCKFDUTJOL\ WBMVF JO QSJOU
QBTTUISPVHI4VCKFDUTJOLWBMVFa WBMVF ^TUPSF JOBOZ$BODFMBCMF QBTTUISPVHI4VCKFDUTFOE MFUDVSSFOU7BMVF4VCKFDU$VSSFOU7BMVF4VCKFDU*OU /FWFS DVSSFOU7BMVF4VCKFDUTJOL\ WBMVF JO QSJOU DVSSFOU7BMVF4VCKFDUTJOLWBMVFa WBMVF ^TUPSF JOBOZ$BODFMBCMF 'VUVSF*OU /FWFS\QSPNJTFJO 5ISFBETMFFQ GPS5JNF*OUFSWBM %JTQBUDI2VFVFHMPCBM BTZOD\ %JTQBUDI2VFVFNBJOBTZOD\ QSPNJTF TVDDFTT ^ ^ ^ TJOL\ WBMVF JOQSJOU 'VUVSFTJOLWBMVFa WBMVF ^TUPSF JOBOZ$BODFMBCMF TVCTDSJCF QBTTUISPVHI4VCKFDU TUPSF JOBOZ$BODFMBCMF ΤϥʔϨʔϯͳ͠
MFUQBTTUISPVHI4VCKFDU1BTTUISPVHI4VCKFDU*OU &SSPS QBTTUISPVHI4VCKFDUTFOE QBTTUISPVHI4VCKFDUTJOL SFDFJWF$PNQMFUJPO\ DPNQMFUJPO JO
TXJUDIDPNQMFUJPO\ DBTFGBJMVSF MFUFSSPS QSJOU QBTTUISPVHI4VCKFDUMPDBMJ[FE%FTDSJQUJPOa FSSPSMPDBMJ[FE%FTDSJQUJPO DBTFpOJTIFE CSFBL ^ ^ \ WBMVF JO QSJOU QBTTUISPVHI4VCKFDUTJOLWBMVFa WBMVF ^TUPSF JOBOZ$BODFMBCMF QBTTUISPVHI4VCKFDUTFOE MFUDVSSFOU7BMVF4VCKFDU$VSSFOU7BMVF4VCKFDU*OU &SSPS DVSSFOU7BMVF4VCKFDUTJOL SFDFJWF$PNQMFUJPO\ DPNQMFUJPO JO TXJUDIDPNQMFUJPO\ DBTFGBJMVSF MFUFSSPS QSJOU DVSSFOU7BMVF4VCKFDUMPDBMJ[FE%FTDSJQUJPOa FSSPSMPDBMJ[FE%FTDSJQUJPO DBTFpOJTIFE CSFBL ^ ^ SFDFJWF7BMVF\ WBMVF JO QSJOU DVSSFOU7BMVF4VCKFDUTJOLWBMVFa WBMVF ^ TUPSF JOBOZ$BODFMBCMF 'VUVSF*OU &SSPS\QSPNJTFJO 5ISFBETMFFQ GPS5JNF*OUFSWBM %JTQBUDI2VFVFHMPCBM BTZOD\ %JTQBUDI2VFVFNBJOBTZOD\ QSPNJTF TVDDFTT ^ ^ ^ TJOL SFDFJWF$PNQMFUJPO\ DPNQMFUJPO JO TXJUDIDPNQMFUJPO\ DBTFGBJMVSF MFUFSSPS QSJOU 'VUVSFMPDBMJ[FE%FTDSJQUJPOa FSSPSMPDBMJ[FE%FTDSJQUJPO DBTFpOJTIFE CSFBL ^ ^ SFDFJWF7BMVF\ WBMVF JO QSJOU 'VUVSFTJOLWBMVFa WBMVF ^ TUPSF JOBOZ$BODFMBCMF ΤϥʔϨʔϯ͋Γ
$PNCJOF$PNNVOJUZ SYTXJGUUPDPNCJOFDIFBUTIFFU HJUIVCDPN$PNCJOF$PNNVOJUZSYTXJGUUPDPNCJOFDIFBUTIFFU 3Y4XJGUͱͷػೳൺֱ
6TJOH$PNCJOF IFDLKHJUIVCJPTXJGUVJOPUFT $PNCJOFGSBNFXPSLͷ͍ํ
ϥΠόϧ 3Y4XJGU ΑΓܰྔͳ ͷͰ͓͢͢Ί