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
1
610
SwiftUI,Combine Framework,KeyPath - 堅固な関係からSwiftUI への閾値を下げる
SwiftUI を理解するのに欠かせないCombine framework とKeyPath についてのプレゼンテーション。
notoroid
January 18, 2020
Tweet
Share
More Decks by notoroid
See All by notoroid
GeometryReader - SwiftUI
notoroid
0
55
iOS 26 SDKの新機能 (liquid抜き) - iOS26orLaterUpdateAndSceneForUIKit
notoroid
0
140
UIテスト自動化サポート- Testbed for XCUIAutomation practice
notoroid
0
190
UIViewController - Interactive PopGesture
notoroid
0
59
Xcodeショートカット 2025年版
notoroid
0
82
ZIPでくれ - Apple謹製 geocoding/ reverse geocoding
notoroid
0
120
WeatherKit iOS18 update - お天気の更新
notoroid
0
99
AppIntentsの用途 - AppleのGPT元年
notoroid
1
200
Privacy manifests - Appleと開発コミュニティ
notoroid
1
250
Other Decks in Programming
See All in Programming
Module Harmony
petamoriken
1
190
Snowflake リリースに注意を払いたくなる話
masaaya
0
110
Promise.tryで実現する新しいエラーハンドリング New error handling with Promise try
bicstone
2
410
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
140
Agentに至る道 〜なぜLLMは自動でコードを書けるようになったのか〜
mackee
4
750
モビリティSaaSにおけるデータ利活用の発展
nealle
0
110
複数チーム並行開発下でのコード移行アプローチ ~手動 Codemod から「生成AI 活用」への進化
andpad
0
150
ビルドプロセスをデバッグしよう!
yt8492
0
300
Register is more than clipboard
satorunooshie
1
470
ボトムアップの生成AI活用を推進する社内AIエージェント開発
aku11i
0
1.6k
What’s Fair is FAIR: A Decentralised Future for WordPress Distribution
rmccue
0
160
詳細の決定を遅らせつつ実装を早くする
shimabox
1
1k
Featured
See All Featured
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8k
Docker and Python
trallard
46
3.6k
Designing Experiences People Love
moore
142
24k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
The Invisible Side of Design
smashingmag
302
51k
Balancing Empowerment & Direction
lara
5
740
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
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 ΑΓܰྔͳ ͷͰ͓͢͢Ί