일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클린아키텍처
- ListAdapter
- Jetpack
- Android
- 코틀린
- NavController
- 안드로이드
- MVVM
- 알고리즘
- XML
- 컴포즈
- 뷰
- NavHost
- 회원가입
- 리사이클러뷰
- 커스텀뷰
- 코딩테스트
- cleanarchitecture
- Compose
- Kotlin
- Authentication
- UiState
- coroutine
- 파이어베이스
- 플레이스토어
- sharedFlow
- DiffUtil
- 로그인
- Build variants
- Flow
- Today
- Total
목록안드로이드 개발/코틀린 (3)
Grusie 안드로이드 개발 기술 블로그
병렬처리를 진행하며, UiState를 활용해 화면을 구상하고 있었던 중 고민이 생겼다.userInfo가 필요할 때도 있고, userAddInfo가 필요할 때도 있고, 둘 다 필요할 때도 있다.기존의 방식대로 각각을 UiState로 구분해서 넣는다면, 둘 다 필요할 때 어떻게 처리하는 게 좋은가?에 대한 고찰이다.기존에 사용했던 방식이다. userItemVo를 가져오게되면, _userItemVo stateFlow에 넣고, UiState를 SuccessGetUserInfo로 변경해주는 방식이다. 이렇게 했을 경우, 데이터를 하나씩 가져와서 화면에 뿌려줄 때에는 도움이 되겠지만, 여러 통신 결과를 가지고 처리하기에는 무리가 있다고 생각하였다. 그렇다고 파라미터로 필요한 것도 아닌데 동기로 처리하는 것은 말이 ..
안드로이드 상태를 관리하는 것은 Ui와 Event로 나눌 수 있다.필자는 기존에 UiState로만 상태 관리를 하였으나, StateFlow나 LiveData 같은 경우 동일한 State를 방출했을 때, 변화를 감지하지 않기 때문에 문제가 발생하게 되었다.(같은 이벤트 처리)어떻게 해결하면 좋을지 찾아보던 중, Shared Flow를 사용해 EventState를 분리하여 관리하게 되면 문제가 해결 된다는 것을 알게 되었다. 기존 처리 방식- LiveData 혹은 SateFlow사용하여 데이터가 변경되는 값을 감지하고 그에 맞게 뷰를 변경해준다. LiveData를 사용하지 않는 이유- LiveData는 안드로이드 라이프사이클에 맞게 상태를 관찰 할 수 있다는 장점이 있으나, 클린아키텍처 구조와 같이 라이프사..
회사 프로젝트를 개편하려던 중 화면을 불러오는 것이 너무나도 느리기에, 코드를 들여다 보니, 전부 다 동기처리로 되어있었다. 그냥 콜백을 보내고, 다음 함수를 호출하고의 문제가 아니라, 아예 콜백을 보내고? 콜백을 받아와서, 성공했을 때 그 다음 콜백을 요청하는 형태로 구현이 되어있어서.. 경악을 금치 못했다.또한 OkHttp로 구현이 되어있었기에 Retrofit으로 변경하며, 클린아키텍처로 변경하면서 비동기, 병렬 처리에 대해 고민을 하였다. 예전에 suspend 함수의 통신 결과를 받아오기 위해 await()함수를 사용하였던 적이 있다.그 땐 await()가 값을 가져오기 위해 쓰는 것이기에 동기라고만 생각 하고 넘어 갔었다. 여러 개의 서버통신을 비동기로 변경하면서 생긴 고민"비동기로 처리하면, 서..