[Android] Compose Effect 비교

kk_jang93·2024년 10월 13일
0

DisposableEffect

사용 케이스

  • 이벤트 리스너를 등록하고 제거할 때
  • 애니메이션을 시작하고 정지 할 때
  • 카메라와 LocationManager와 같이 센서 리소스를 바인딩 또는 언바인딩 할 때
  • DB 연결을 관리 할 때

LaunchedEffect

사용 케이스

  • 네트워크로부터 데이터를 가져 올 때
  • 이미지 프로세싱을 수행 할 때
  • DB를 업데이트 할 때

SideEffect

사용 케이스

  • 로깅 및 분석을 위한 코드를 사용 할 때
  • 블루투스 장치에 연결을 하기 위하여 한번 초기화를 진행 할 때
  • 파일로부터 데이터를 최초 한번 로딩 할 때
  • 라이브러리를 초기화 할 때

결론

SideEffect, DisposableEffect , LaunchedEffect 의 주요 차이점 요약

  • SideEffect 은 상위 컴포저블이 재구성 될 때 실행되며 컴포저블의 상태나 속성에 의존하지 않는 작업을 실행하는데 유용
  • DisposableEffect 는 상위 컴포저블이 처음 렌더링 될 때 실행되며 컴포저블이 더 이상 사용되지 않을 때 정리가 필요한 리소스를 관리하는 데 유용합니다. 첫 번째 컴포지션 또는 키가 변경 될 때 트리거 되며 종료 시 onDispose() 메소드를 호출합니다.
  • LaunchedEffect 는 별도의 코루틴 스코프에서 부수효과를 실행하며 UI 쓰레드를 차단하지 않고 시간이 오래 걸리는 작업을 실행하는 데 유용합니다. 첫 번째 컴포지션이나 키가 변경 시 트리거 됩니다.
profile
앱개발을 사랑하는 개발자

2개의 댓글

comment-user-thumbnail
2024년 10월 17일

아 이건 좀 ...

1개의 답글