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
480
SwiftUI,Combine Framework,KeyPath - 堅固な関係からSwiftUI への閾値を下げる
SwiftUI を理解するのに欠かせないCombine framework とKeyPath についてのプレゼンテーション。
notoroid
January 18, 2020
Tweet
Share
More Decks by notoroid
See All by notoroid
AppIntentsの用途 - AppleのGPT元年
notoroid
1
97
Privacy manifests - Appleと開発コミュニティ
notoroid
1
150
とっさのAutoLayout - Rewind autolayout
notoroid
0
47
UVC(USB video class)と マルチプラットフォーム - UVC support by Apple multiplatform
notoroid
0
240
SwiftUIむけに 整理された状態監視 Observation
notoroid
0
580
よせあつめSwift - Swift5.9
notoroid
1
590
Transferable - SwiftUI ドキュメントアプリ
notoroid
2
360
整理されたSwift言語仕様 - Swift 5.7 any/some
notoroid
1
910
Swift Concurrencyの 尻尾を掴め ~ 並行処理を受け入れる取っ掛かり
notoroid
1
410
Other Decks in Programming
See All in Programming
Rechartsで楽にゴリゴリにカスタマイズする!
10tera
1
170
Modernisation Progressive d’Applications PHP
hhamon
0
110
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
530
Google Sign-inの移行から始めるCredential Manager活用
clockvoid
0
420
From Idea to IDE: Developing Plugins for Android Studio
thisaay
1
230
LangChainの現在とv0.3にむけて
os1ma
4
940
状態管理ライブラリZustandの導入から運用まで
k1tikurisu
3
470
Perl 5 OOP機構30年史 - Perl 5's OOP Mechanism over the past 30 years
moznion
0
410
2024 컴포즈 정원사
jisungbin
0
150
エンジニア1年目で複雑なコードの改善に取り組んだ話
mtnmr
3
2k
いまから追い上げる、Jetpack Compose トレーニング
nyafunta9858
0
620
Featured
See All Featured
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
How to Ace a Technical Interview
jacobian
274
23k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
123
18k
The Invisible Side of Design
smashingmag
296
50k
In The Pink: A Labor of Love
frogandcode
139
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
47
48k
VelocityConf: Rendering Performance Case Studies
addyosmani
322
23k
Web Components: a chance to create the future
zenorocha
309
42k
How GitHub Uses GitHub to Build GitHub
holman
472
290k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Typedesign – Prime Four
hannesfritz
39
2.3k
A designer walks into a library…
pauljervisheath
201
24k
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 ΑΓܰྔͳ ͷͰ͓͢͢Ί