
요즘 오디를 Compose로 마이그레이션하고 있다.오디는 우아한테크코스에서 팀 프로젝트로 개발했던 앱인데,당시에는 Compose를 모르는 상태였기 때문에 모든 UI가 XML로 구현되어 있다.틈틈이 마이그레이션을 하는게 요즘 내 힐링이다. 코드가 간결해지는게 눈에 보여서 재밌다 ㅎ 오디의 주소 검색 화면은 Paging3을 사용해 무한 스크롤을 구현했었다.이 화면을 마이그레이션하며 "Compose에 Paging3를 어떻게 적용할지"에 대해 배운 것들을 정리해 보려고 한다. 이 글은 RecyclerView에서 Compose로 마이그레이션하는 방법을 중점적으로 다룬다.즉, Paging3와 PagingSource, PagingDataAdapter에 대한 내용을 자세히 다루지 않는다. 가장 먼저, Recycle..

Compose Side Effect 이해하기! (1)Side Effect란?컴포즈에서 Side Effect는 컴포저블 함수의 밖에서 발생하는 앱 상태에 대한 변경사항이다.예를 들어 사용자가 버튼을 클릭하면 다른 화면이 열리거나, 앱이 인터넷이 연결되어 있지 않thdbs523.tistory.com 저번 포스팅에서 Side Effect이 어떤 건지 알아보고, Side Effect와 관련된 컴포저블 함수 LaunchedEffect, DisposableEffect, SideEffect에 대해 알아봤다. rememberCoroutineScoperememberUpdatedStatederivedStateOfproduceStatecollectAsStateWithLifecyclesnapshotFlow이번엔 State를 ..
Side Effect란?컴포즈에서 Side Effect는 컴포저블 함수의 밖에서 발생하는 앱 상태에 대한 변경사항이다.예를 들어 사용자가 버튼을 클릭하면 다른 화면이 열리거나, 앱이 인터넷이 연결되어 있지 않을 때의 메시지 등이 될 수 있다. 기본적으로 컴포저블 함수는 Side Effect에 자유로워야 한다. 이때 자유로워야 한다는 말은, 컴포저블 함수를 트리거하기 위해서는 파라미터를 변경하거나 컴포저블을 재호출해야 한다는 뜻이다.컴포저블 내부에서 컴포저블 외부에 있는 변수나 동작에 영향을 주도록 설계해서는 안 된다.하나의 컴포저블에 대해 리컴포지션이 여러번 발생할 수 있고, 여러 스레드에서 호출될 수 있기 때문이다. Side Effect를 이해하고 잘 활용하기 위해, 관련된 컴포저블 함수를 알아보려고 ..