Side-Effect 는 컴포즈 함수내부에서 실행되는 외부 로직 또는 외부의 변수 상태변경으로 볼수 있다.
Side Effect 예시:
@AndroidEntryPoint
class MainActivity : ComponentActivity() {
private var i = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Button(onClick = { Log.d("TEST", "i: $i") }) {
// Side Effect
// 1. State가 아니여서 Compose 함수에서 관리되지 않음
// 2. Compose 함수 외부의 값의 상태변화
i++
Text(text = "i plus")
}
}
}
}
Compose의 Side Effect 는 다음과 같이 Effect API 를 사용해서 다루어져야 한다.