본문 바로가기

Compose3

[Android-Test] Android Compose Test 도입하기 - 실전 배경 이번 포스팅에선 CodeLab에서 제공하는 Compose Test를 기준으로 정리해보려고 합니다. 테스트를 따라가기에 앞서 컴포저블 함수들이 어떻게 이뤄져있는지 파악해보겠습니다. Rally의 구조 Rally 앱은 RallyTopAppBar와 현재 screen의 content로 구성되어 있으며 AppBar에서 탭을 클릭 시 해당 화면으로 변경됩니다. CodeLab 테스트에선 OverviewBody에 대한 테스트를 진행하므로 Overview 화면을 기준으로 표시했습니다. 간단한 UI 테스트 만들기 CodeLab에선 Account bar가 잘 클릭되는지 테스트를 진행합니다. @Test fun rallyTopAppBarTest() { val allScreens = RallyScreen.values().to.. 2023. 9. 27.
[Android] Compose랑 Hot Stream은 어울릴까? 배경 스낵바나 토스트처럼 매번 노출되어야 하는 컴포넌트들을 위해서 SharedFlow를 사용했었는데 Compose에서 collect되지 않는 문제가 발생했습니다. 그 이유를 하나하나 파악해 보고자 합니다. 원인을 파악하기에 전에 잠깐! 제가 앞으로 테스트하는 환경의 ViewModel은 다음과 같이 통일하겠습니다 class MainViewModel : ViewModel() { private val _testFlow = MutableSharedFlow(replay = 1) val testFlow = _testFlow.asSharedFlow() fun inputTest(value: String) { viewModelScope.launch { _testFlow.emit(value) } } } XML + Shar.. 2023. 9. 19.
[Android] Compose Navigation + Stateflow를 쓰는데 왜 리컴포지션이 계속 발생하지..? (1) 문제 배경 이번에는 제가 경험 했던 Compose Navigation과 Stateflow를 같이 사용했을 때 발생했던 문제에 대해서 작성해보려 합니다. 저는 Android Developer에서 제공되는 Compose Navigation의 NavHost를 참고했습니다. ViewModel의 경우 간단하게 다음과 같이 구성하겠습니다. class MyViewModel : ViewModel() { private val _test = MutableStateFlow(null) val test = _test.asStateFlow() fun update(check: Boolean?) { _test.value = check } } 화면 구성의 경우 StartScreen, A, B 화면을 두고 StartScreen에서 Vi.. 2023. 8. 7.