Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

모바일 앱(안드로이드)

안드로이드 앱 만들기 : SideEffect , DisposableEffect , LaunchedEffect 와 jetpack compose 의 연관성 (인터넷 펌)

Billcorea 2023. 8. 18. 18:03
반응형

https://medium.com/@mortitech/exploring-side-effects-in-compose-f2e8a8da946b

 

Jetpack Compose Side Effects in Details

Optimizing UI Performance in Jetpack Compose with SideEffect, LaunchedEffect, and DisposableEffect. Learn how to manage UI effects.

medium.com

jetpack compose을 이용해 UI을 구성하다 보면 Database에서 데이터를 추출해 화면에 보여주는 작업을 하는 과정에서 만나는 불편(?)함을 해소하기 위해서 필요한 부분일 듯하여 스크랩을 해 두고자 합니다.

 

이유는 데이터를 읽어 오는 부분의 구현에서 데이터가 소량인 경우는 문제가 없으나, 데이터가 많은 경우 그 처리에서 화면에 표시되는 데이터를 재구성 하려면 listview, adapter 등을 이용하는 xml layout 부분에서는 이미 많은 정보들이 있기 때문에 쉽게 구현을 해 볼 수 있습니다. 

 

compose로 넘어오면 조금 상황이 달라집니다.  위 원본 출처의 summary을 읽어 보고 오겠습니다. 


다음은 SideEffect, DisposableEffect및 LaunchedEffect 사이의 차이점에 대한 요약입니다.

  • SideEffect상위 컴포저블이 재구성될 때 실행되며 컴포저블의 상태 또는 소품에 의존하지 않는 작업을 실행하는 데 유용합니다.
  • DisposableEffect상위 컴포저블이 처음 렌더링될 때 실행되며 컴포저블이 더 이상 사용되지 않을 때 정리해야 하는 리소스를 관리하는 데 유용합니다. 첫 번째 구성 또는 키 변경 시 트리거 되고onDispose 종료 시 메서드를 호출합니다 .
  • LaunchedEffect별도의 코루틴 범위에서 부작용을 실행하며 UI 스레드를 차단하지 않고 장기 실행 작업을 실행하는 데 유용합니다. 첫 번째 컴포지션 또는 키 변경 시 트리거 됩니다.

대표이미지

ui와 데이터를 표시가 실시간으로 변해야 하는 부분들이 발생하기 때문에 위 글에서 제시된 효과 및 코드 기술 방법을 익혀둘 필요가 있었습니다.  오늘도 잘 정리해 두고 나중에 써 보도록 하겠습니다.

 

즐~코딩

 

반응형