리스트나 화면을 구성하는 동안의 Loading 상태에서 자주 사용되는 Shimmer View. 기존 XML 방식에서는 각종 라이브러리를 활용하여 많이 구현되었습니다.하지만 Compose에서는 아직 직접 구현이 필요한 듯하여 다른 분들의 코드를 참고하여 구현을 진행했습니다.먼저 위 이미지와 동일한 형태의 컴포저블을 구현해야합니다.스켈레톤 효과를 입혀줄 틀을 만들어주는 것입니다. @Composable fun PlaceholderItem() { Row( modifier = Modifier .fillMaxWidth() .padding(16.dp) .height(72.dp) ) ..
Animation
Compose-Lottie 애니메이션 동작 후, Intent로 Activity 전환하기 저는 평소에 Splash Activity를 별도로 Custom 하게 생성 후, Lottie 애니메이션을 포함시켜 구성하는 형태를 많이 사용했었습니다. 그러다 보니 Compose를 공부하면서 똑같은 형태를 구현해 보게 되었네요. 앱 실행 시 기본 네트워크 및 DB 처리가 완료되는 시간을 5초로 간주하고 Lottie 애니메이션이 그동안 동작하고 MainActivity로 넘어가는 구조를 설명하겠습니다. 먼저 Lottie 홈페이지에서 모션 이미지를 선택하여 JSON 형태의 데이터를 다운로드합니다. 이후, res - raw 폴더를 생성하여 해당 폴더에 다운로드한 Lottie 파일을 삽입합니다. 다음, Custom Splash ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fvaleo%2FbtrWIPOrgmc%2Fc9OYpNUQypzi90OW2DLs01%2Fimg.png)
안드로이드 시스템 환경설정에는 애니메이션 끄기 여부를 선택할 수 있는 기능이 있다. 해당 토글을 ON 처리하면 디바이스 전반적으로 애니메이션 기능이 제거된다. 하지만 애니메이션이 사용된 앱 같은 경우, 정상적인 View 동작을 위해 분기처리가 필요한 경우가 있다. 이럴 때, 다음 코드를 통해 애니메이션 활성화 여부를 확인할 수 있다. fun isAnimationEnabled(context: Context): Boolean { var isEnable = true try { isEnable = Settings.Global.getFloat(context.contentResolver, Settings.Global.ANIMATOR_DURATION_SCALE) != 0f } catch (e: Settings.Set..