일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- XML
- Android
- cleanarchitecture
- 코틀린
- 커스텀뷰
- coroutine
- 코딩테스트
- sharedFlow
- 플레이스토어
- 회원가입
- Kotlin
- Authentication
- 로그인
- 클린아키텍처
- 컴포즈
- Build variants
- MVVM
- 알고리즘
- Flow
- 뷰
- UiState
- 안드로이드
- NavHost
- Compose
- ListAdapter
- NavController
- DiffUtil
- Jetpack
- 리사이클러뷰
- 파이어베이스
- Today
- Total
목록Stateflow (2)
Grusie 안드로이드 개발 기술 블로그
병렬처리를 진행하며, UiState를 활용해 화면을 구상하고 있었던 중 고민이 생겼다.userInfo가 필요할 때도 있고, userAddInfo가 필요할 때도 있고, 둘 다 필요할 때도 있다.기존의 방식대로 각각을 UiState로 구분해서 넣는다면, 둘 다 필요할 때 어떻게 처리하는 게 좋은가?에 대한 고찰이다.기존에 사용했던 방식이다. userItemVo를 가져오게되면, _userItemVo stateFlow에 넣고, UiState를 SuccessGetUserInfo로 변경해주는 방식이다. 이렇게 했을 경우, 데이터를 하나씩 가져와서 화면에 뿌려줄 때에는 도움이 되겠지만, 여러 통신 결과를 가지고 처리하기에는 무리가 있다고 생각하였다. 그렇다고 파라미터로 필요한 것도 아닌데 동기로 처리하는 것은 말이 ..
안드로이드 상태를 관리하는 것은 Ui와 Event로 나눌 수 있다.필자는 기존에 UiState로만 상태 관리를 하였으나, StateFlow나 LiveData 같은 경우 동일한 State를 방출했을 때, 변화를 감지하지 않기 때문에 문제가 발생하게 되었다.(같은 이벤트 처리)어떻게 해결하면 좋을지 찾아보던 중, Shared Flow를 사용해 EventState를 분리하여 관리하게 되면 문제가 해결 된다는 것을 알게 되었다. 기존 처리 방식- LiveData 혹은 SateFlow사용하여 데이터가 변경되는 값을 감지하고 그에 맞게 뷰를 변경해준다. LiveData를 사용하지 않는 이유- LiveData는 안드로이드 라이프사이클에 맞게 상태를 관찰 할 수 있다는 장점이 있으나, 클린아키텍처 구조와 같이 라이프사..