Skip to content

Commit 1edb024

Browse files
authored
Merge pull request #17 from leesunghyun/codex/v0.2-lifecycle-state-collection
Add collectAsStateWithLifecycle for app UI state
2 parents 728592e + 7432fdf commit 1edb024

3 files changed

Lines changed: 4 additions & 3 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ Only `app/` is built in the first alpha.
141141
## Next milestones (planned, v0.2)
142142

143143
- [ ] Add UI tests for article edit/delete interactions
144-
- [ ] Add `collectAsStateWithLifecycle` in Compose state collection
144+
- [x] Add `collectAsStateWithLifecycle` in Compose state collection
145145
- [ ] Replace demo placeholder with real screen recording (`docs/images/demo.gif`)
146146
- [ ] Improve Article detail validation UX
147147
- [ ] Prepare v0.2.0 roadmap and release notes

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ android {
3636
dependencies {
3737
implementation("androidx.core:core-ktx:1.13.1")
3838
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.8.3")
39+
implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.3")
3940
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.3")
4041
implementation("androidx.activity:activity-compose:1.9.0")
4142

app/src/main/java/com/example/viewmodelmigration/MainActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import androidx.compose.material3.MaterialTheme
1212
import androidx.compose.material3.Surface
1313
import androidx.compose.material3.Text
1414
import androidx.compose.runtime.Composable
15-
import androidx.compose.runtime.collectAsState
1615
import androidx.compose.runtime.getValue
1716
import androidx.compose.ui.Alignment
1817
import androidx.compose.ui.Modifier
1918
import androidx.compose.ui.tooling.preview.Preview
2019
import androidx.compose.ui.unit.dp
20+
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2121
import androidx.lifecycle.viewmodel.compose.viewModel
2222
import com.example.viewmodelmigration.ui.ArticleDetailScreen
2323
import com.example.viewmodelmigration.ui.ArticleListScreen
@@ -41,7 +41,7 @@ class MainActivity : ComponentActivity() {
4141
private fun AppRoot(
4242
viewModel: ArticleListViewModel = viewModel()
4343
) {
44-
val uiState by viewModel.uiState.collectAsState()
44+
val uiState by viewModel.uiState.collectAsStateWithLifecycle()
4545

4646
val selectedArticle = uiState.articles.firstOrNull {
4747
it.id == uiState.selectedArticleId

0 commit comments

Comments
 (0)