Skip to content

Commit ae063d2

Browse files
committed
[BOOK-381] chore: @TraceRecomposition 어노테이션 컴포저블 함수에 적용
정적인 컴포저블 외에 동적인(리컴포지션이 런타임에 발생할 수 있는) 컴포저블에 @TraceRecomposition 어노테이션 추가
1 parent fb44827 commit ae063d2

File tree

36 files changed

+97
-4
lines changed

36 files changed

+97
-4
lines changed

core/ui/src/main/kotlin/com/ninecraft/booket/core/ui/component/InfinityLazyColumn.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,12 @@ import androidx.compose.ui.tooling.preview.Preview
3535
import androidx.compose.ui.unit.dp
3636
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
3737
import com.skydoves.compose.effects.RememberedEffect
38+
import com.skydoves.compose.stability.runtime.TraceRecomposition
3839

3940
// 기기에서 평균적으로 한 화면에 보이는 아이템 개수
4041
private const val LIMIT_COUNT = 6
4142

43+
@TraceRecomposition
4244
@Composable
4345
fun InfinityLazyColumn(
4446
modifier: Modifier = Modifier,

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/BookDetailUi.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,14 @@ import com.ninecraft.booket.feature.detail.book.component.RecordItem
5454
import com.ninecraft.booket.feature.detail.book.component.RecordSortBottomSheet
5555
import com.ninecraft.booket.feature.detail.record.component.RecordMenuBottomSheet
5656
import com.ninecraft.booket.feature.screens.BookDetailScreen
57+
import com.skydoves.compose.stability.runtime.TraceRecomposition
5758
import com.slack.circuit.codegen.annotations.CircuitInject
5859
import dagger.hilt.android.components.ActivityRetainedComponent
5960
import kotlinx.collections.immutable.toImmutableList
6061
import kotlinx.coroutines.launch
6162
import com.ninecraft.booket.core.designsystem.R as designR
6263

64+
@TraceRecomposition
6365
@OptIn(ExperimentalMaterial3Api::class)
6466
@CircuitInject(BookDetailScreen::class, ActivityRetainedComponent::class)
6567
@Composable
@@ -195,6 +197,7 @@ internal fun BookDetailUi(
195197
}
196198
}
197199

200+
@TraceRecomposition
198201
@Composable
199202
internal fun BookDetailContent(
200203
state: BookDetailUiState,

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/BookUpdateBottomSheet.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ import com.ninecraft.booket.core.designsystem.component.button.largeButtonStyle
3737
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
3838
import com.ninecraft.booket.core.ui.component.ReedBottomSheet
3939
import com.ninecraft.booket.feature.detail.R
40+
import com.skydoves.compose.stability.runtime.TraceRecomposition
4041
import kotlinx.collections.immutable.ImmutableList
4142
import kotlinx.collections.immutable.toImmutableList
4243
import com.ninecraft.booket.core.designsystem.R as designR
4344

45+
@TraceRecomposition
4446
@OptIn(ExperimentalMaterial3Api::class)
4547
@Composable
4648
internal fun BookUpdateBottomSheet(

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/book/component/ReadingRecordsHeader.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,14 @@ import androidx.compose.ui.Modifier
1414
import androidx.compose.ui.graphics.vector.ImageVector
1515
import androidx.compose.ui.res.stringResource
1616
import androidx.compose.ui.res.vectorResource
17+
import com.ninecraft.booket.core.designsystem.ComponentPreview
1718
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
1819
import com.ninecraft.booket.feature.detail.R
1920
import com.ninecraft.booket.feature.detail.book.RecordSort
21+
import com.skydoves.compose.stability.runtime.TraceRecomposition
2022
import com.ninecraft.booket.core.designsystem.R as designR
2123

24+
@TraceRecomposition
2225
@Composable
2326
internal fun ReadingRecordsHeader(
2427
totalCount: Int,
@@ -62,3 +65,15 @@ internal fun ReadingRecordsHeader(
6265
}
6366
}
6467
}
68+
69+
@ComponentPreview
70+
@Composable
71+
private fun ReadingRecordsHeaderPreview() {
72+
ReedTheme {
73+
ReadingRecordsHeader(
74+
totalCount = 4,
75+
currentRecordSort = RecordSort.PAGE_NUMBER_ASC,
76+
onReadingRecordClick = {},
77+
)
78+
}
79+
}

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/card/RecordCardUi.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ import com.ninecraft.booket.core.ui.component.ReedTopAppBar
3636
import com.ninecraft.booket.feature.detail.R
3737
import com.ninecraft.booket.feature.detail.card.component.RecordCard
3838
import com.ninecraft.booket.feature.screens.RecordCardScreen
39+
import com.skydoves.compose.stability.runtime.TraceRecomposition
3940
import com.slack.circuit.codegen.annotations.CircuitInject
4041
import dagger.hilt.android.components.ActivityRetainedComponent
4142
import com.ninecraft.booket.core.designsystem.R as designR
4243

44+
@TraceRecomposition
4345
@CircuitInject(RecordCardScreen::class, ActivityRetainedComponent::class)
4446
@Composable
4547
internal fun RecordCardUi(

feature/detail/src/main/kotlin/com/ninecraft/booket/feature/detail/record/RecordDetailUi.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ import com.ninecraft.booket.feature.detail.record.component.QuoteItem
3131
import com.ninecraft.booket.feature.detail.record.component.RecordMenuBottomSheet
3232
import com.ninecraft.booket.feature.detail.record.component.ReviewItem
3333
import com.ninecraft.booket.feature.screens.RecordDetailScreen
34+
import com.skydoves.compose.stability.runtime.TraceRecomposition
3435
import com.slack.circuit.codegen.annotations.CircuitInject
3536
import dagger.hilt.android.components.ActivityRetainedComponent
3637
import kotlinx.coroutines.launch
3738
import com.ninecraft.booket.core.designsystem.R as designR
3839

40+
@TraceRecomposition
3941
@OptIn(ExperimentalMaterial3Api::class)
4042
@CircuitInject(RecordDetailScreen::class, ActivityRetainedComponent::class)
4143
@Composable
@@ -116,6 +118,7 @@ internal fun RecordDetailUi(
116118
}
117119
}
118120

121+
@TraceRecomposition
119122
@Composable
120123
private fun RecordDetailContent(
121124
state: RecordDetailUiState,

feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/emotion/EmotionEditUi.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ import com.ninecraft.booket.core.ui.ReedScaffold
3636
import com.ninecraft.booket.core.ui.component.ReedBackTopAppBar
3737
import com.ninecraft.booket.feature.edit.R
3838
import com.ninecraft.booket.feature.screens.EmotionEditScreen
39+
import com.skydoves.compose.stability.runtime.TraceRecomposition
3940
import com.slack.circuit.codegen.annotations.CircuitInject
4041
import dagger.hilt.android.components.ActivityRetainedComponent
4142
import kotlinx.collections.immutable.toPersistentList
4243

44+
@TraceRecomposition
4345
@CircuitInject(EmotionEditScreen::class, ActivityRetainedComponent::class)
4446
@Composable
4547
internal fun EmotionEditUi(
@@ -65,6 +67,7 @@ internal fun EmotionEditUi(
6567
}
6668
}
6769

70+
@TraceRecomposition
6871
@Composable
6972
private fun EmotionEditContent(
7073
state: EmotionEditUiState,

feature/edit/src/main/kotlin/com/ninecraft/booket/feature/edit/record/RecordEditUi.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@ import androidx.compose.foundation.layout.Column
55
import androidx.compose.foundation.layout.ColumnScope
66
import androidx.compose.foundation.layout.Row
77
import androidx.compose.foundation.layout.Spacer
8+
import androidx.compose.foundation.layout.WindowInsets
9+
import androidx.compose.foundation.layout.exclude
810
import androidx.compose.foundation.layout.fillMaxSize
911
import androidx.compose.foundation.layout.fillMaxWidth
1012
import androidx.compose.foundation.layout.height
11-
import androidx.compose.foundation.layout.WindowInsets
12-
import androidx.compose.foundation.layout.exclude
1313
import androidx.compose.foundation.layout.ime
1414
import androidx.compose.foundation.layout.imePadding
15-
import androidx.compose.material3.ScaffoldDefaults
1615
import androidx.compose.foundation.layout.padding
1716
import androidx.compose.foundation.layout.width
1817
import androidx.compose.foundation.rememberScrollState
@@ -21,6 +20,7 @@ import androidx.compose.foundation.text.input.TextFieldLineLimits
2120
import androidx.compose.foundation.verticalScroll
2221
import androidx.compose.material3.HorizontalDivider
2322
import androidx.compose.material3.Icon
23+
import androidx.compose.material3.ScaffoldDefaults
2424
import androidx.compose.material3.Text
2525
import androidx.compose.runtime.Composable
2626
import androidx.compose.ui.Alignment
@@ -45,10 +45,12 @@ import com.ninecraft.booket.feature.edit.R
4545
import com.ninecraft.booket.feature.edit.record.component.BookItem
4646
import com.ninecraft.booket.feature.screens.RecordEditScreen
4747
import com.ninecraft.booket.feature.screens.arguments.RecordEditArgs
48+
import com.skydoves.compose.stability.runtime.TraceRecomposition
4849
import com.slack.circuit.codegen.annotations.CircuitInject
4950
import dagger.hilt.android.components.ActivityRetainedComponent
5051
import com.ninecraft.booket.core.designsystem.R as designR
5152

53+
@TraceRecomposition
5254
@CircuitInject(RecordEditScreen::class, ActivityRetainedComponent::class)
5355
@Composable
5456
internal fun RecordEditUi(
@@ -83,6 +85,7 @@ internal fun RecordEditUi(
8385
}
8486
}
8587

88+
@TraceRecomposition
8689
@Composable
8790
private fun ColumnScope.RecordEditContent(state: RecordEditUiState) {
8891
Column(

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/HomeUi.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,12 @@ import com.ninecraft.booket.feature.home.component.HomeHeader
4444
import com.ninecraft.booket.feature.screens.HomeScreen
4545
import com.ninecraft.booket.feature.screens.component.MainBottomBar
4646
import com.ninecraft.booket.feature.screens.component.MainTab
47+
import com.skydoves.compose.stability.runtime.TraceRecomposition
4748
import com.slack.circuit.codegen.annotations.CircuitInject
4849
import dagger.hilt.android.components.ActivityRetainedComponent
4950
import kotlinx.collections.immutable.toImmutableList
5051

52+
@TraceRecomposition
5153
@CircuitInject(HomeScreen::class, ActivityRetainedComponent::class)
5254
@Composable
5355
internal fun HomeUi(

feature/home/src/main/kotlin/com/ninecraft/booket/feature/home/component/HomeBanner.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ import com.ninecraft.booket.core.designsystem.ComponentPreview
2929
import com.ninecraft.booket.core.designsystem.theme.HomeBg
3030
import com.ninecraft.booket.core.designsystem.theme.ReedTheme
3131
import com.ninecraft.booket.feature.home.R
32+
import com.skydoves.compose.stability.runtime.TraceRecomposition
3233
import com.ninecraft.booket.core.designsystem.R as designR
3334

35+
@TraceRecomposition
3436
@Composable
3537
fun HomeBanner(
3638
onBookRegisterClick: () -> Unit,

0 commit comments

Comments
 (0)