- 위와 같은 형태의 동적 가이드를 Compose 기반으로 구현했다. - 애니메이션을 제공하는 JSON 파일의 경우, 디자이너분으로부터 제공받은 점 참고. - JSON 파일의 경우 res - raw 폴더를 생성하여 넣어주면 된다. (압축하지 않고, 변형 없이 앱에 들어가야 하는 파일들) - 영상을 보면, JSON 애니메이션이 바로 나타나는게 아니라 서서히 페이드인 되면서 나타난다. - 이를 위해 Compose의 AnimatedVisibility를 활용한다.AnimatedVisibility( visible = showGuide, enter = fadeIn(animationSpec = tween(1500)), exit = ExitTransition.None) { ...- 뷰의 가시성을 조정할..
Intent로 화면을 전환할 때, 간혹 기획에 따라 전환 애니메이션이 필요한 경우가 존재합니다.이럴 때에는 anim 리소스를 정의하고, overridePendingTransition() 메서드를 활용해 주면 됩니다.오른쪽에서 나타나 왼쪽으로 사라지는 애니메이션 리소스 파일입니다. 실제 Intent 호출 시에는 아래처럼 정의해줍니다.startActivity(Intent(activity, StoreItemListActivity::class.java))activity?.overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left) 하지만 API 34부터는 해당 메서드가 deprecated 되어서 overrideActivityTra..
리스트나 화면을 구성하는 동안의 Loading 상태에서 자주 사용되는 Shimmer View. 기존 XML 방식에서는 각종 라이브러리를 활용하여 많이 구현되었습니다.하지만 Compose에서는 아직 직접 구현이 필요한 듯하여 다른 분들의 코드를 참고하여 구현을 진행했습니다.먼저 위 이미지와 동일한 형태의 컴포저블을 구현해야합니다.스켈레톤 효과를 입혀줄 틀을 만들어주는 것입니다. @Composable fun PlaceholderItem() { Row( modifier = Modifier .fillMaxWidth() .padding(16.dp) .height(72.dp) ) ..
Compose-Lottie 애니메이션 동작 후, Intent로 Activity 전환하기 저는 평소에 Splash Activity를 별도로 Custom 하게 생성 후, Lottie 애니메이션을 포함시켜 구성하는 형태를 많이 사용했었습니다. 그러다 보니 Compose를 공부하면서 똑같은 형태를 구현해 보게 되었네요. 앱 실행 시 기본 네트워크 및 DB 처리가 완료되는 시간을 5초로 간주하고 Lottie 애니메이션이 그동안 동작하고 MainActivity로 넘어가는 구조를 설명하겠습니다. 먼저 Lottie 홈페이지에서 모션 이미지를 선택하여 JSON 형태의 데이터를 다운로드합니다. 이후, res - raw 폴더를 생성하여 해당 폴더에 다운로드한 Lottie 파일을 삽입합니다. 다음, Custom Splash ..
안드로이드 시스템 환경설정에는 애니메이션 끄기 여부를 선택할 수 있는 기능이 있다. 해당 토글을 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..