Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Render Loop
USAMI Kosuke
August 12, 2021
Programming
2
790
Render Loop
UIレンダリングの仕組みを知る
potatotips #75 iOS/Android開発Tips共有会
https://potatotips.connpass.com/event/218185/
USAMI Kosuke
August 12, 2021
Tweet
Share
More Decks by USAMI Kosuke
See All by USAMI Kosuke
SwiftPM BuildTool Plugins
usamik26
1
630
try swift-docc-plugin
usamik26
2
280
AppDocumentation
usamik26
0
260
20220217-geekcamp-slides-usami
usamik26
0
98
Quaternion Rotation
usamik26
0
340
Swift-DocC
usamik26
0
300
Octonion
usamik26
0
110
Combine Operator Guide
usamik26
1
270
iOSDC Writing Article
usamik26
3
320
Other Decks in Programming
See All in Programming
職場にPythonistaを増やす方法
soogie
0
320
脱オブジェクト指向講座(5分LT資料)
kishida
8
11k
Jetpack Compose 頑張らないPreviewParameterProvider
horie23
0
110
Modern Web Apps with Spring Boot, Angular & TypeScript
toedter
12
14k
クリエイティブ系のウェブサイト制作で役立つCSS技法 / CSS for develop creative website
clockmaker
2
1.6k
Let's make a contract: the art of designing a Java API
mariofusco
0
160
Reactでアプリケーションを構築する多様化
sakito
4
3.4k
Swift Concurrencyによる安全で快適な非同期処理
tattn
2
330
Hapticをカスタマイズしてみよう / ZOZO Tech Talk #6 Customize Haptic
endoumari
0
350
roadmap to rust 2024
matsu7874
1
870
Kotlin 最新動向2022 #tfcon #techfeed
ntaro
1
1.1k
tfcon2022_Web3Dひとめぐり.pdf
emadurandal
0
1k
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
655
120k
From Idea to $5000 a Month in 5 Months
shpigford
372
44k
Bash Introduction
62gerente
596
210k
The Power of CSS Pseudo Elements
geoffreycrofte
46
3.9k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
Why Our Code Smells
bkeepers
PRO
324
54k
Web Components: a chance to create the future
zenorocha
303
40k
Unsuck your backbone
ammeep
659
55k
Scaling GitHub
holman
451
140k
BBQ
matthewcrist
74
7.9k
Teambox: Starting and Learning
jrom
121
7.6k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
350
21k
Transcript
6*ϨϯμϦϯάͷΈ ΛΔ Ӊࠤݟެี 1/19
Ӊࠤݟެีʢ!VTBNJLʣ w J04"QQ։ൃ鲠鳫鲰鳃鲚ٕज़ಉਓࢽ鲗ॻ鱉鱫鲃鱞 2/19
5FDI5BMLTͱ w 88%$鲳鲻鲯鳟鳫Ҏ֎鱰鲇"QQMF鱑ެ։鱜鱫鱉鲐ಈը鱑鱇鲐 w "QQMF%FWFMPQFS"QQ鲉鲭鲜鳀鱬ݟ鲑鲐 w 鱢鱳த鱳5FDI5BMLT鱑鱏鲇鱜鲒鱉 3/19
ࠓհ͢Δ5FDI5BMLT w 6*鲚鳃鳙鱅鲯鳟鳫鱳鲏鱏鲍鱸鳤鳫鲸鱅鳣鱅鳏鱰ର鱞鲐ݕ౼ ʢ&YQMPSF6*"OJNBUJPO)JUDIFTBOE5IF3FOEFS-PPQʣ w ݄鱰ެ։鱚鲑鱤 w J04"QQ鱳鲱鲧鳥鱅鳣࣌鱳දࣔ鱳鲇鱤鱩鱒鲗վળ鱞鲐ํ๏ 4/19
)JUDIʢΓʣ w 鳍鳤鱅鳘鱑༧ఆ鲍鲏鱔දࣔ鱚鲑鲐鱘鱭 w ӈ鱳ྫ鱴'SBNF鱳දࣔ鱑鲑鱤 w 'SBNF鱳දࣔ鱬Ұॠࢭ鲃鱨鱫ݟ鱍鲐 5/19
3FOEFS-PPQ w 鲷鲻鲹鲜鳑鳫鳀鱑"QQ鱰鱚鲑鱫鱐鲎 ඳը鱑ऴ鲔鲐鲃鱬鱳鳏鳥鲳鲱鱳鱘鱭 w ஈ֊鱰鱐鲑鲐 w 74:/$鱰߹鲔鱠࣌ؒ鱰ॲཧ鱑ඞཁ w J1IPOFJ1BENTʢ)[ʣ
w J1BE1SPNTʢ)[ʣ 6/19
$PNNJUϑΣʔζ w 3FOEFS-PPQ鱳ஈ֊ w 鳤鲜鲚鲞鳀 w 7JFX鱳ੜ鲉ஔ w layoutSubviews w
දࣔ w 7JFX鱳drawRect w 7JFX鱳֊ߏ鱴อ࣋鱚鲑鲐 7/19
3FOEFSϑΣʔζ w 3FOEFS-PPQ鱳ஈ֊ w $PNNJU鱚鲑鱤7JFXߏ鲗ɺදࣔը໘ 鱭鱜鱫ඳը鱞鲐 w 7JFX鱳ॏ鱲߹鲔鱠ɺ鲯鳛鳁鲞ɺ鲚鳃 鳙鱅鲯鳟鳫鱯鱮 w
3FOEFSTFSWFS鱴"QQ鱭鱴ผ鳏鳥鲳鲱 鱥鱑ɺ։ൃऀ鱳 8/19
දࣔ w 3FOEFS-PPQ鱳ஈ֊ w 鳤鳫鲸鳢鳫鲨鱚鲑鱤鲇鱳鲗දࣔ 9/19
ฒྻ࣮ߦ w 3FOEFS-PPQ鱴ฒྻ࣮ߦ鱚鲑鲐 w 鲸鳎鳣鳈鲻鳍鲙鳢鳫鲨 w දࣔ鱳ཪ鱬3FOEFS鳍鲟鱅鲲 w 3FOEFS鱳ཪ鱬$PNNJU鳍鲟鱅鲲 w
֤鳍鲟鱅鲲鱬੍࣌ؒݶ鲗क鲐ඞཁ鱑鱇鲐 w क鲎鱯鱉鱭)JUDI鱑ൃੜ鱞鲐 10/19
ڐ༰͞ΕΔൣғ w )JUDIUJNFSBUJP w ඵ鱇鱤鲏ԿNT鱳IJUDI鱑鱇鲐鱐 w NTT鱑ཧ w NTTҎԼ鱯鲎(PPE w
鱩鲃鲏ඵ鱰ճఔ鱯鲎େৎ w 鱢鲑鲗鱍鲐鱭ཁௐࠪ 11/19
)JUDIͷௐࠪ w *OTUSVNFOUT鲗鱨鱫ௐࠪ鱬鱒鲐 w ӈ鱳ྫ鱬鱴ɺ$PNNJU鳍鲟鱅鲲鱰࣌ؒ鱑 鱐鱐鱨鱫鱉鲐 w ۩ମత鱰ԿNT鱐鱐鱨鱫鱉鲐鱐鲇ݟ鲑鲐 12/19
ͷॲཧΛ୳͢ w 鱚鲎鱰5JNF1SPpMFS鱬鱮鱳ؔ鱬࣌ؒ 鱑鱐鱐鱨鱫鱉鲐鱐ݟ鲑鲐 13/19
ͷॲཧΛվળ͢Δ w $PMMFDUJPO7JFX$FMM鱬鱑鱇鱨鱤 w prepareForReuse鱬ɺ$FMM鱳 7JFX鲗আ鱜鱫ੜ鱜鱯鱏鱜鱫鱉鱤 w 7JFX鲗࠶ར༻鱞鲐鲍鱋มߋ鱞鲑鱵鲍鱉 14/19
$PNNJU)JUDIͷճආ w લड़鱳)JUDI鱴$PNNJU鳍鲟鱅鲲鱬ൃ ੜ鱜鱤 w $PNNJU鳍鲟鱅鲲鱬ؾ鲗鱩鱖鲐鱾鱒鱘鱭 鱴ଞ鱰鲇鱇鲐 w ྫ鳤鲜鲚鲞鳀ߋ৽鱳鱭鱒ɺ layoutIfNeeded鱳༻鲗ආ鱖鱫
setNeedsLayout鱳༻鱑鱏鱞鱞鲆 15/19
0⒎TDSFFO1BTT w 3FOEFS鳍鲟鱅鲲鱬࣌ؒ鱑鱐鱐鲐ࣄྫ w ӈ鱳ྫ鱬鱴ɺӨ鱳ܗ鲗ௐ鱾鲐鱤鲆鱰ผ鱳 ॴ鱰ਤܗ鲗ඳը鱜鱫鱉鲐 16/19
3FOEFSͷΛൃݟ w 9DPEF鱳7JFX%FCVHHFS鱬Օॴ鱭 վળํ๏鲗ࢦఠ鱜鱫鱔鲑鲐 w ӈ鱳ྫ鱬鱴ɺӨ鱳ඳը鱬鱑ࢦఠ鱚鲑 鱫鱉鲐 w վળํ๏鱭鱜鱫shadowPath鱳ࢦఆ鱑 ఏҊ鱚鲑鱫鱉鲐
17/19
ࢦఠՕॴͷվળ w ఏҊ鱚鲑鱤鱭鱏鲏shadowPath鲗໌ࣔ త鱰ࢦఆ鱞鲐 w 鱘鲑鱬0GGTDSFFO1BTT鲗ݮ鲎鱜鱫 3FOEFS鳍鲟鱅鲲鱳ॲཧ࣌ؒ鱑վળ鱜鱤 18/19
ࢀߟʢ5FDI5BMLTʣ w 6*鲚鳃鳙鱅鲯鳟鳫鱳鲏鱏鲍鱸鳤鳫鲸鱅鳣鱅鳏鱰ର鱞鲐ݕ౼ ʢ&YQMPSF6*"OJNBUJPO)JUDIFTBOE5IF3FOEFS-PPQʣ w 鲫鳗鲻鳀鳍鲟鱅鲲鱬鱳鲏鲗ݟ鱩鱖मਖ਼鱞鲐ʢ'JOEBOE'JY )JUDIFTJOUIF$PNNJU1IBTFʣ w 鳤鳫鲸鳢鳫鲨鳍鲟鱅鲲鱬鱳鲏鲗ඥղ鱒ഉআ鱞鲐ʢ%FNZTUJGZ BOE&MJNJOBUF)JUDIFTJOUIF3FOEFS
19/19