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
フィードやチャットのスクロールを全力でなめらかにする/iOSDC2019-LT
Search
dotrikun
September 06, 2019
Programming
3
1.9k
フィードやチャットのスクロールを全力でなめらかにする/iOSDC2019-LT
dotrikun
September 06, 2019
Tweet
Share
More Decks by dotrikun
See All by dotrikun
iOSDC2023LT
dotrikun
0
300
鉄道アプリを支えるテクノロジー
dotrikun
1
1.4k
ゼロイチフェーズからのCleanArchitecture/ios_ca
dotrikun
2
860
不摂生で救急搬送されたiOSアプリ開発者が iPhoneとAppleWatchをフル活用して健康を取り戻した話 / iosdc2018
dotrikun
2
11k
アプリ開発のアンチパターンを踏み抜きながら アプリをフルリニューアルした話
dotrikun
17
11k
個人情報を扱うアプリと暗号化について
dotrikun
1
780
スマート山ごもりでアプリを高速開発する
dotrikun
0
920
Other Decks in Programming
See All in Programming
現場で役立つモデリング 超入門
masuda220
PRO
15
3.2k
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
170
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
610
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
ActiveSupport::Notifications supporting instrumentation of Rails apps with OpenTelemetry
ymtdzzz
1
230
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
100
Amazon Qを使ってIaCを触ろう!
maruto
0
400
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
220
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
2
660
광고 소재 심사 과정에 AI를 도입하여 광고 서비스 생산성 향상시키기
kakao
PRO
0
170
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
2
1.1k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Visualization
eitanlees
145
15k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
Being A Developer After 40
akosma
86
590k
Building Your Own Lightsaber
phodgson
103
6.1k
KATA
mclloyd
29
14k
4 Signs Your Business is Dying
shpigford
180
21k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Transcript
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Copyright (C)
2018 DeNA Co.,Ltd. All Rights Reserved. ϑΟʔυνϟοτͷ εΫϩʔϧΛશྗͰͳΊΒ͔ʹ͢Δ iOSDC 2019 Lightning Talks September 7, 2019 Hiroshi Shikata Healthcare DeNA Co., Ltd. 1
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ηϧͷߴ͞ՄมͷTableViewCollectionViewΛ࡞Δͱ͖ 2
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Α͋͘Δߴ͕͞มΘΔηϧͷྫ 3
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ςΩετͷจࣈʹΑͬͯߴ͕͞มΘΔ 4
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. UITableViewͰηϧͷߴ͞Λࣗಈʹઃఆ 5
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. දࣔͯ͠ 6
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ҰؾʹεΫϩʔϧ͍ͯ͘͠ͱ 7
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. Ҿ͔͔ͬΔͱ͖͕͋Δ 8
Ψο
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ͳʹ͕ى͍ͬͯ͜Δͷ͔ Cell
Cell Cell දࣔதͷηϧ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ͳʹ͕ى͍ͬͯ͜Δͷ͔ Cell
Cell Cell Cell දࣔதͷηϧ εΫϩʔϧ Cell Prefetchରʹͳͬͨηϧ ࣍ʹදࣔ͞ΕΔηϧ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ͳʹ͕ى͍ͬͯ͜Δͷ͔ Cell
Cell Cell Cell දࣔதͷηϧ 1.Cellͷੜ tableView(_:cellForRowAt:) Cell Prefetchରʹͳͬͨηϧ ࣍ʹදࣔ͞ΕΔηϧ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ͳʹ͕ى͍ͬͯ͜Δͷ͔ Cell
Cell Cell Cell දࣔதͷηϧ ࣍ʹදࣔ͞ΕΔηϧ 1.Cellͷੜ tableView(_:cellForRowAt:) 2.Cellͷඳը tableView(_:willDisplay:) 3. CellͷϨΠΞτ Cell Prefetchରʹͳͬͨηϧ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ͳʹ͕ى͍ͬͯ͜Δͷ͔ Cell
Cell Cell Cell දࣔதͷηϧ ࣍ʹදࣔ͞ΕΔηϧ 1.Cellͷੜ tableView(_:cellForRowAt:) 2.Cellͷඳը tableView(_:willDisplay:) 3. CellͷϨΠΞτ Cell Prefetchରʹͳͬͨηϧ ߴࣗ͞ಈܭࢉͷ߹ ͜ͷؒʹηϧͷߴ͕͞ܭࢉ͞ΕΔ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. FacebookͷதͷਓʹΑΔFacebookλΠϜϥΠϯͷٕज़ղઆ(2012) Ҿ༻:
https://www.facebook.com/notes/facebook-engineering/under-the-hood-mobile-timeline/10150500366118920/
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. FacebookͷதͷਓʹΑΔFacebookλΠϜϥΠϯͷٕज़ղઆ(2012) ▪
ϋʔυΣΞΞΫηϥϨʔγϣϯͷ࠷దԽ ▪ σβΠϯͷ ͳͲ ʢը૾දࣔʹؔ͢Δ෦͔Βൈਮʣ ௨৴ϦΫΤετͷϢʔβΤʔδΣϯτ͔ΒσόΠ εͷཧతͳԣ෯Λܾఆ͠ɺͦͷԣ෯Λ༻ͯ͠ ϖʔδ্ͷͯ͢ͷը૾ͷදࣔαΠζΛܾఆ͢Δ Ҿ༻: https://www.facebook.com/notes/facebook-engineering/under-the-hood-mobile-timeline/10150500366118920/
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. FacebookͷதͷਓʹΑΔFacebookλΠϜϥΠϯͷٕज़ղઆ(2012) ▪
ϋʔυΣΞΞΫηϥϨʔγϣϯͷ࠷దԽ ▪ σβΠϯͷ ͳͲ ʢը૾දࣔʹؔ͢Δ෦͔Βൈਮʣ ௨৴ϦΫΤετͷϢʔβΤʔδΣϯτ͔ΒσόΠ εͷཧతͳԣ෯Λܾఆ͠ɺͦͷԣ෯Λ༻ͯ͠ ϖʔδ্ͷͯ͢ͷը૾ͷදࣔαΠζΛܾఆ͢Δ →ίϯςϯπͷදࣔαΠζαʔόͰܭࢉࡁΈ Ҿ༻: https://www.facebook.com/notes/facebook-engineering/under-the-hood-mobile-timeline/10150500366118920/
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ࣄલʹίϯςϯπͷαΠζΛܭࢉ͓ͯ͘͠ 17
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ࣄલʹίϯςϯπͷදࣔαΠζΛܭࢉ͓ͯ͘͠ Cell
Cell Cell TableView σʔλऔಘ & දࣔαΠζܭࢉ දࣔσʔλ&CellSize εΫϩʔϧલʹߴܾͯ͢͞·͍ͬͯΔ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ෯ͱදࣔ͢ΔςΩετ͕ܾ·Εߴ͞ࢉग़Ͱ͖Δ 19
ςΩετͷจࣈʹΑͬͯߴ͕͞มԽ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ෯ͱςΩετ͕ܾ·Εߴ͞ࢉग़Ͱ͖Δ 20
▪ UILabel/UITextField / UITextViewͳͲUIViewΛܧঝͨ͠Class ▪ NSAttributedString
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. TableViewCellͱUILabelͷྫ 21
1.UILabelͷԣ෯ΛܾΊΔ TableViewͷԣ෯ - ࠨӈϚʔδϯ TableViewͷԣ෯
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. TableViewCellͱUILabelͷྫ 22
1. UILabelͷԣ෯ΛܾΊΔ TableViewͷԣ෯ - ࠨӈϚʔδϯ 2. UILabelͷαΠζΛࢉग़͢Δ 1ͷԣ෯Λࢦఆͯ͠ func sizeThatFits(_ size: CGSize) -> CGSize
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. ෯ͱදࣔ͢ΔςΩετ͕ܾ·Εߴ͞ࢉग़Ͱ͖Δ 23
1. UILabelͷԣ෯ΛܾΊΔ TableViewͷԣ෯ - ࠨӈϚʔδϯ 2. UILabelͷαΠζΛࢉग़͢Δ 1ͷԣ෯Λࢦఆͯ͠ func sizeThatFits(_ size: CGSize) -> CGSize 3. Cellͷߴ͞Λࢉग़͢Δ 2Ͱܭࢉͨ͠ߴ͞ + ্ԼϚʔδϯ
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. tableView(_:cellForRowAt:) →
ϨΠΞτߋ৽ྃ·Ͱͷੑೳൺֱ 24 ߴࣗ͞ಈܭࢉͷ߹ ߴ͞Λࣄલʹܭࢉ ฏۉ (ϨΠΞτߋ৽ྃ·Ͱ) ࠷େ (ϨΠΞτߋ৽ྃ·Ͱ)
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. tableView(_:cellForRowAt:) →
ϨΠΞτߋ৽ྃ·Ͱͷੑೳൺֱ 25 ߴࣗ͞ಈܭࢉͷ߹ ߴ͞Λࣄલʹܭࢉ ฏۉ (ϨΠΞτߋ৽ྃ·Ͱ) 14ms ࠷େ (ϨΠΞτߋ৽ྃ·Ͱ) 95ms
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. tableView(_:cellForRowAt:) →
ϨΠΞτߋ৽ྃ·Ͱͷੑೳൺֱ 26 ߴࣗ͞ಈܭࢉͷ߹ ߴ͞Λࣄલʹܭࢉ ฏۉ (ϨΠΞτߋ৽ྃ·Ͱ) 14ms 2ms ࠷େ (ϨΠΞτߋ৽ྃ·Ͱ) 95ms 3ms
Copyright (C) 2018 DeNA Co.,Ltd. All Rights Reserved. tableView(_:cellForRowAt:) →
ϨΠΞτߋ৽ྃ·Ͱͷੑೳൺֱ 27 ߴࣗ͞ಈܭࢉͷ߹ ߴ͞Λࣄલʹܭࢉ ฏۉ (ϨΠΞτߋ৽ྃ·Ͱ) 14ms 2ms ࠷େ (ϨΠΞτߋ৽ྃ·Ͱ) 95ms 3ms λΠϜϥΠϯνϟοτ͕ΞϓϦͷίΞػೳͳΒؤுΔՁ͋Δʂ