반응형
https://medium.com/@mortitech/exploring-side-effects-in-compose-f2e8a8da946b
jetpack compose을 이용해 UI을 구성하다 보면 Database에서 데이터를 추출해 화면에 보여주는 작업을 하는 과정에서 만나는 불편(?)함을 해소하기 위해서 필요한 부분일 듯하여 스크랩을 해 두고자 합니다.
이유는 데이터를 읽어 오는 부분의 구현에서 데이터가 소량인 경우는 문제가 없으나, 데이터가 많은 경우 그 처리에서 화면에 표시되는 데이터를 재구성 하려면 listview, adapter 등을 이용하는 xml layout 부분에서는 이미 많은 정보들이 있기 때문에 쉽게 구현을 해 볼 수 있습니다.
compose로 넘어오면 조금 상황이 달라집니다. 위 원본 출처의 summary을 읽어 보고 오겠습니다.
다음은 SideEffect, DisposableEffect및 LaunchedEffect 사이의 차이점에 대한 요약입니다.
- SideEffect상위 컴포저블이 재구성될 때 실행되며 컴포저블의 상태 또는 소품에 의존하지 않는 작업을 실행하는 데 유용합니다.
- DisposableEffect상위 컴포저블이 처음 렌더링될 때 실행되며 컴포저블이 더 이상 사용되지 않을 때 정리해야 하는 리소스를 관리하는 데 유용합니다. 첫 번째 구성 또는 키 변경 시 트리거 되고onDispose 종료 시 메서드를 호출합니다 .
- LaunchedEffect별도의 코루틴 범위에서 부작용을 실행하며 UI 스레드를 차단하지 않고 장기 실행 작업을 실행하는 데 유용합니다. 첫 번째 컴포지션 또는 키 변경 시 트리거 됩니다.
ui와 데이터를 표시가 실시간으로 변해야 하는 부분들이 발생하기 때문에 위 글에서 제시된 효과 및 코드 기술 방법을 익혀둘 필요가 있었습니다. 오늘도 잘 정리해 두고 나중에 써 보도록 하겠습니다.
즐~코딩
반응형
'모바일 앱(안드로이드)' 카테고리의 다른 글
안드로이드 앱 만들기 : 또 하나의 경고성 메일 (ANDROID API 수준 준수 요구사항) (10) | 2023.08.22 |
---|---|
안드로이드 앱 만들기 : 구글에서 보낸 경고 메일 (게시 취소됨) (15) | 2023.08.21 |
안드로이드 앱 만들기 : stack 을 읽어보자 (인터넷 펌) (73) | 2023.08.17 |
안드로이드 앱 만들기 : Compose August ’23 release 읽어보기 (인터넷 펌) (56) | 2023.08.16 |
안드로이드 앱 만들기 : jetpack compose lazy layout 종류 (인터넷 펌) (78) | 2023.08.15 |