[Android Jetpack Compose] Compose 란?
💡Compose는 뷰를 명령형으로 변형하지 않고도 앱 UI를 렌더링할 수 있게 하는 선언형 API
를 제공하여 앱 UI를 더 쉽게 작성하고 유지관리할 수 있도록 지원한다.
기존의 UI 랜더링 작업은 xml파일로 구조를 정의하고 kotlin 코드에서 xml 파일을 바인딩 시켜 각각 기능을 구현하는 방식이였다. 정리하자면, UI 디자인과 코드가 분리된 형태로 UI 의 구조가 복잡해질 수록 코드량이 증가하고 가독성이 떨어지는 단점이 있었다.
오늘은 이를 개선하기 위해 나온 Android Jetpack의 Compose에 대해 알아보자 :) 👨🏻💻 다음은 Developer에서 말하는 Compose이다.
Jetpack Compose는 네이티브 UI를 빌드하기 위한 Android의 최신 권장 도구 키트이며 Android에서의 UI 개발을 간소화하고 가속화한다.
Compose를 사용하면 코드량이 훨씬 줄어들고 UI적인 요소를 Kotlin 코드로 통합할 수 있다. 또한 애니메이션을 쉽고 빠르고 적용 가능하고 material design을 유연하게 구현 가능하다. 다음은 Developer에서 설명하는 Compose의 특징이다.
선언적 UI : Compose는 선언적인 방식으로 UI를 정의하기 때문에, 어떻게 보일지를 명시적으로 정의하기 쉽다. UI를 kotlin으로 설명만 하면 compose에서 알아서 처리하므로 UI를 직관적이고 빠르게 개발하고 변경할 수 있다.
- 재사용성 : Compose에서는 컴포넌트를 재사용하기 쉽게 만들 수 있다. 작은 컴포넌트를 조합하여 복잡한 UI를 구축할 수 있다.
- 코드 길이 감소 : Compose는 코드의 길이를 줄여주고, 개발자가 더 적은 타이핑을 할 수 있도록 한다.
추가설명
- Kotlin으로 개발할 수 있고
reactive programing
과 결합된 개발 모델이다.reactive : 데이터가 변경되면 framework가 해당 데이터와 연관된 Composable 함수들을 다시 호출하여 view를 업데이트 해주는 작업
- compose는 여러 함수들을 호출하여 데이터를 구조화된 UI로 만들수 있는
선언형 UI
라는 특징을 가진다.
이는 일반 함수 처럼 보이는 함수에 @Composable annotation을 붙임으로 쉽게 Compose용 함수로 지정할수 있으며 Compose는 시간이 경과함에 따라 변경되거나 유지하기 위해 이런 함수들을 특별하게 관리 한다. 따라서 annotation을 붙임으로써 UI를 구성하는 코드를 작은 단위의 함수들로 만들어 서로 호출관계를 가지면서 UI를 구성하도록 한다. (Compose 함수는 다른 Compose 함수를 호출 할 수 있다.)
- Composable function은 줄여서 composable 이라고 부르기도 한다.