Jetpack Compose란

김동경·2024년 1월 17일
0

Android_Jetpack_Compose

목록 보기
1/7
post-thumbnail
post-custom-banner

Jetpack Compose

Jetpack Compose는 네이티브 UI를 빌드하기 위한 Android의 선언형 UI 최신 툴킷이다.

Compose는 프론트엔드 뷰를 명령형으로 변형하지 않고도 앱 UI를 렌더링 할 수 있게 하는 선언형 API를 제공하여 앱 UI를 더 쉽게 작성하고 유지관리할 수 있도록 지원한다.


선언형 UI?

프로그램이 어떤 방법으로 해야 하는지를 나타내기보다 무엇과 같은지를 설명하는 경우에 "선언형"이라고 한다.

  • 기존 명령형 ui
    findViewById와 같은 함수를 사용하여 트리를 탐색하고 .setText,setbackground..등 메서드를 호출하여 노드를 변경하는 방식
//텍스트 뷰의 텍스트 변경
var text = binding.textView  //findViewById
text.setText = "Change Text"
//chip을 생성한 뒤 뷰에 추가
val chip = Chip()
container.addChild(chip)

이렇게 뷰를 수동으로 조작하면 오류가 발생할 가능성이 커지고 업데이트가 필요한 수의 뷰가 많아질수록 소프트웨어 유지관리 복잡성이 증가한다.

  • 선언형 ui
    처음부터 화면 전체를 개념적으로 재생성한 후 필요한 변경사항만 적용하는 방식으로 작동한다.
fun Greeting(name : String){
	Text(text="Hello $name")
}

화면 전체를 재생성하는 데 있어 한 가지 문제는 시간, 컴퓨팅 성능 및 배터리 사용량 측면에서 잠재적으로 비용이 많이 든다는 것입니다. 이 비용을 줄이기 위해 Compose는 특정 시점에 UI의 어떤 부분을 다시 그려야 하는지를 지능적으로 선택한다.


Compose 장점

  • 코드감소
    위의 명령형에서는 xml코드를 추가하고 TextView를 생성해서 id를 지정해주고 findViewById로 접근하는 반면 선언형ui 에서는 코드가 준 것을 확인할 수 있다.

    코드를 적게 작성할 수록 개발자는 테스트와 디버그 작업과 버그 발생 가능성이 줄어들어 당면 문제에 집중할 수 있게 되며 검토자 또는 유지관리자는 읽고, 이해하고, 검토하고, 유지관리할 코드가 적어진다.

  • 빠른 개발 과정
    코드가 감소하게 되므로 개발 과정이 빨라지고 실시간 미리보기와 같은 기능등을 지원하여 시간이 크게 절약될 수 있다.

  • 강력한 성능
    플랫폼 API에 직접 액세스하고 머티리얼 디자인, 어두운 테마, 애니메이션 등을 기본적으로 지원하여 멋진 Ui를 만들 수 있으며 애니메이션 기능을 쉽게 사용할 수 있어 생동감 있는 앱을 만들 수 있다.

참고자료

안드로이드 공식문서

profile
개발하는 꿈나무
post-custom-banner

0개의 댓글