0. 개요
구글에서 Jetpack Compose를 활용하여 UI 디자인하기를 적극 권장하고 있다고 한다.
Android 개발자 꿈꾼다면, 성장하기 바란다면 알아보는 것이 좋겠다.
1. Jetpack Compose란?
- Jetpack Compose는 안드로이드 앱의 UI를 쉽게 디자인하고 빌드하기 위한 라이브러리
- 기존의 xml을 통해 레이아웃을 구성해서 Activity에서 xml을 참조해 쓰는 방식에서 Activity에서 바로 선언하는 방식으로 개발의 편의성을 늘린 것
- 선언형 UI 모델
1) 기존의 명령형 UI, XML 방식
- 안드로이드 앱 개발에서 오랫동안 사용되어온 전통적인 방식
- 레이아웃 파일으로 화면 설계, 필요한 구성요소 정의
- 유지보수 여려움, 계층 구조 복잡
2) 선언형 UI, Jetpack Compose
- 성능적 측면: 렌더링 속도와 메모리 사용 측면에서 XMl 방식은 최적화 필요, Jetpack Compose는 내부적으로 렌더링 최적화 진행 -> 성능 개선 용이
- 생산성 측면: XML파일 작성 시 화면의 구성요소들을 코드에서 참조, JetPack Compose는 직관적인 DSL을 사용하므로 더욱 간편, 생산적인 화면 개발 가능
- 유지보수성 측면: 코드가 단순하고 가독성이 좋아 유지보수가 유리
1) Compose의 목표
2) 맞춤 레이아웃을 쉽게 작성
- 기존 안드로이드에서 xml로 View를 그리고 코드 상에서 setContentView나 inflate메서드를 이용해 해당 View를 로드. Jetpack Compose를 이용하면 이전과 달리 Compose에서는 코드 상에서 UI에 대한 모든 관리를 하게된다. 이로 인해 View가 작성되기 쉬워지게된다.
기존의 xml로 작성한 layout을 리뷰해보며 Compose로 수정하는 것이 학습하기에 좋은 방법 일 것이다.
3) 예시
-
기존방식
layout 파일을 작성 -> layout파일을 inflate, TextView를 찾는다. TextView에 "Kotlin World Blog" 출력
Binding Library를 사용한다면 View를 찾는 과정 없이 바로 자식 View에 대한 접근이 가능하지만, 큰 틀 자체는 바뀌지 않는다.
-
jetpack Compose를 사용한다면?
Activity에서 TextView를 코드 상에서 그려주고 바로 텍스트 출력
Reference
https://dev-high.com/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%ED%99%94%EB%A9%B4-%EA%B0%9C%EB%B0%9C-xml-vs-jetpack-compose/