컴포즈

    [Compose Canvas] Jetpack Compose에서 Canvas 사용하는 방법 한 번에 정리하기

    Android에서 Canvas가 필요한 이유 Canvas는 Android에서 Custom UI를 간편하게 그리기 위한 다양한 API를 제공해준다. Canvas에서 제공해주는 API를 사용하면 도형, 텍스트를 그릴 수 있고, 애니메이션 또한 만들 수 있다. 또한 Canvas는 그려야 할 도형들이 많을 때, Composable 여러개를 사용해 그리는 것에 비해 자원을 효율적으로 사용한다. 이 때문에 만약 화면이 여러 도형으로 구성되어있고, 도형의 상태(크기, 색상 등)을 계속해서 변경시켜야 하는 작업에서는 Canvas를 사용하는 것이 훨씬 리소스를 적게 사용한다. 이번 글에서는 Jetpack Compose에서 Canvas를 사용하는 간단한 방법에 대해 살펴볼 것이다. Jetpack Compose에서 Canv..

    [Compose State] remember과 rememberUpdatedState를 사용한 상태 관리

    remember의 사용과 한계점 Composable에서 remember은 Recomposition이 일어날 때 상태를 관리하기 위해 사용된다.remember의 상태는 remember의 value를 직접 수정해주는 것으로만 가능하다. *by 키워드는 value에 직접 접근하도록 도와주는 delegation이다. 헷갈리지 말자. @Composable private fun TextFieldExample() { val text = remember { mutableStateOf("Kotlin World") } Column(modifier = Modifier.padding(16.dp)) { OutlinedTextField( value = text.value, onValueChange = { text.value = ..

    [Jetpack Compose] Compose 란?

    Jetpack Compose Jetpack Compose는 안드로이드 앱의 UI를 쉽게 디자인하고 빌드하기 위한 라이브러리이다. Compose가 만들어진 목표는 다음과 같다. 맞춤 레이아웃을 쉽게 작성 고성능을 발휘 맞춤 레이아웃을 쉽게 작성 기존 안드로이드에서 xml로 View를 그리고 코드 상에서 setContentView나 inflate 메서드를 이용해 해당 View 을 로드해야 했다. Jetpack Compose를 이용하면 이전과 달리 compose에서는 코드 상에서 UI에 대한 모든 관리를 하게 된다. 이로 인해 View가 작성되기 쉬워지게 된다. 기존 방식 예를 들어 textView에 동적으로 "Kotlin World Blog" 라는 텍스트를 출력하고 싶다고 해보자. 기존에는 다음과 같은 방식..