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
Google I/O 2023 - Debugging Jetpack Composeについて
Search
Shun Miyazaki
June 08, 2023
Technology
0
510
Google I/O 2023 - Debugging Jetpack Composeについて
Google I/O 2023 に行われたセッション「Debugging Jetpack Compose」の内容 / 感想をまとめたものです。
Shun Miyazaki
June 08, 2023
Tweet
Share
More Decks by Shun Miyazaki
See All by Shun Miyazaki
Jetpack Compose で SharedElementTransitionっぽい挙動をやってみる
shunm
0
90
Other Decks in Technology
See All in Technology
Grafana x PagerDuty Better Together
jacopen
1
170
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
2.1k
AOAI をきっかけに 社内の Azure 管理を見直した話
recruitengineers
PRO
1
380
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
380
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
0
280
Azure犬駆動開発の記録/GlobalAzureFukuoka2024_20240420
nina01
1
230
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
370
Python と Snowflake はズッ友だょ!~ Snowflake の Python 関連機能をふりかえる ~
__allllllllez__
1
130
開発生産性大幅アップ!Postman VS Code拡張機能
nagix
2
500
LLM開発・活用の舞台裏@2024.04.25
yushin_n
3
930
Google Cloud Next '24でブログを10本書いた方法と勉強会を沸かせた方法
yasumuusan
0
310
VS CodeでAWSを操作しよう
smt7174
8
1.8k
Featured
See All Featured
Building Effective Engineering Teams - LeadDev
addyosmani
28
1.9k
Teambox: Starting and Learning
jrom
128
8.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
2
3.4k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Fireside Chat
paigeccino
21
2.6k
The Cost Of JavaScript in 2023
addyosmani
16
3.9k
Typedesign – Prime Four
hannesfritz
36
2.1k
4 Signs Your Business is Dying
shpigford
175
21k
Raft: Consensus for Rubyists
vanstee
132
6.3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
345
19k
Transcript
Google I/O 2023 Debugging Jetpack Compose について 宮﨑 瞬
本発表について 本発表は以下のセッション内容から、 個人的に気になった点をまとめたものです。 Debugging Jetpack Compose - Youtube h6ps://youtu.be/Kp-aiSU8qCU
セッション内容 Jetpack Composeの開発で、遭遇する問題の解決方法について、 解説してくれている。 Common Issues(⭐が本発表で話すところ) ・ Why is this
composable recomposing? ⭐ ・Problem: Frequent Recomposition ・How do I know what's wrong with my UI on different form factors? ・Why am I seeing Jank? ・Where should I focus on optimising?
Why is this composable recomposing? なぜ、このcomposableで、recomposeが実⾏されるのか?
Recomposeには3種類ある 1.Direct recomposition 変更された変数を参照しているComposeの、Recomposeが⾛る 2.Indirect recomposition 変更された変数を直接参照していないが、 変更された変数を、計算に使⽤している変数を参照しているComposableのRecomposeが⾛る 3.Unskippable recomposition
変更されていないが、 Unstableで、immutable(不変)であることを担保できないため、Recomposeが⾛る
Direct recomposition countが変更されると、TextのRecomposeが⾛る Debugging Jetpack Compose - Youtube https://youtu.be/Kp-aiSU8qCU
Indirect recomposition countが変更されると、 doubledが変更されて、MyTextのRecomposeが⾛る Debugging Jetpack Compose - Youtube h6ps://youtu.be/Kp-aiSU8qCU
Unskippable recomposition countが変更されると、listは値が変わっていないが、 Unstableなので、MyListのRecomposeが⾛る Debugging Jetpack Compose - Youtube h6ps://youtu.be/Kp-aiSU8qCU
Recomposeが 実⾏された理由をどうやって 確かめるか?
Compose state information in debugger Android Studio Hedgehogから、 Compose state
information in debuggerが使える h<ps://developer.android.com/studio/preview/features#compose- state-in-debugger Debugging Jetpack Compose - Youtube https://youtu.be/Kp-aiSU8qCU 検査したいところに、 breakpointを設置して、debugする。 Debuggerで、Recompositon Stateを見ることができる。
Debuggerで検証できるもの Changed State ・Unchanged - 変数は変更されていない ・Changed - 変数は変更された ・Uncertain
- 変数が変更されたかどうか、まだ評価中 ・Static - 変数は絶対に変更されない ・Unstable - 変数はunstable type(不変性が担保できない)
使⽤例1 isFollewedが変更されたので、Recomposeが実⾏ Debugging Jetpack Compose - Youtube https://youtu.be/Kp-aiSU8qCU
使⽤例2 podcastsがUnstableなので、Recomposeが実⾏ Debugging Jetpack Compose - Youtube h6ps://youtu.be/Kp-aiSU8qCU
まとめ ・Recomposeには3種類ある ・Android Studio Hedgehogで追加された、Compose state information in debuggerで、Recomposeの原因を検証できる