Jetpack Compose Snapshot 버전 사용하기

alpha 릴리즈를 넘어 개발 중인 버전을 사용 해보고 싶을 때가 있는데, 이런 상황에서 Jetpack Compose의 Snapshot 버전을 프로젝트에 적용하는 법에 대해 소개한다.

Jetpack Compose Snapshot 버전 사용하기
Figure 1. @https://source.android.com/setup/build/dashboard

얼마 전 Jetpack Compose 1.2.0 stable 릴리즈가 있었다. 그와 함께 1.3.0 alpha 릴리즈도 시작되었다. 간혹 alpha 릴리즈를 넘어 개발 중인 버전을 사용 해보고 싶을 때가 있는데, 이런 상황에서 Jetpack Compose의 Snapshot 버전을 프로젝트에 적용하는 법에 대해 소개한다.


언제 사용하게 되는가?

대부분 아래 2가지 경우에 해당한다.

  • 새로운 인터페이스나 기능을 미리 써보고 싶을 때
  • Issue tracker를 통해 제보한 버그를 포함해 특정 이슈가 해결되었는지 미리 확인하고 싶을 때

그에 따라 최신 Snapshot build id 또는, 확인 하고자하는 변경사항이 포함된 Snapshot build id를 찾아야한다.


Snapshot 이란?

안드로이드 오픈 소스 프로젝트 내 설명에 따르면 AndroidX 프로젝트에 생기는 변경사항 각각에 대해 빌드가 이뤄진다. 이렇듯 아직 개발 중인 중간 결과물에 대한 빌드를 ‘Snapshot’ build라 부른다.


사용 하고자 하는 Snapshot Build ID 알아내기

빌드 결과물은 Android CI 페이지에서 확인할 수 있다.

아래의 값으로 Branch name을 변경하고, 해당하는 Build target 열을 찾는다.

  • Branch name : aosp-androidx-main
  • Build target : androidx_snapshot

최신의 Snapshot build id를 얻고 싶다면 완료된 빌드(초록색) 중 가장 최신의 것을 사용하면 된다.

최신 Snapshot build id는 8906557 입니다.

특정 변경사항에 대한 Snapshot Build를 사용하고자 한다면, View Change 버튼을 눌러 변경사항을 확인한 후 해당 build id를 사용한다.

‘Add Arabic and Hebrew to Lorem lpsum generator’ subject에 대한 build id는 8906461입니다.

그리고 다운로드 아이콘 모양을 누르면 아래와 같이 Snapshot build의 artifact를 확인할 수 있다.

compose-foundation 1.3.0-SNAPSHOT

프로젝트에 적용하기

Snapshot Build를 적용하는 방법은 androidx.dev 홈페이지에 잘 설명이 되어있다. Snapshot의 Build ID가 필요한데 위에서 찾은 8906461 이라는 buildId를 예시로 사용하겠다.

  • project의 build.gradle(방법 1) 또는 setting.gradle(방법 2)에 아래와 같이 Snapshot repository 경로를 추가한다.
방법 1. allProjects — repositories에 추가
방법 2. dependencyResolutionManagement — repositories에 추가
  • compose 버전을 1.3.0-SNAPSHOT 으로 바꾼다. (buildSrc, Version catalog등에서)

그 후 Sync 를 누르면 아래와 같이 1.3.0-SNAPSHOT 버전이 다운로드 되는 것을 확인할 수 있다! 🚀

1.3.0-SNAPSHOT 빌드 결과물이 다운로드 되는 모습

마치며

Snapshot Build 적용 방법에 대해 알아봤는데, Snapshot build까지 사용해보게 된 이유는 아래와 같다.

  • Jetpack Compose는 현재 진행형으로 발전하고 있기 때문이다. 새로운 것이 추가되고 발전하는 것을 가장 처음으로 목격하는 일은 흥미롭다.
  • 1.0 beta부터 본격적으로 Compose를 사용했다. 그동안 다양한 이슈들을 겪었는데 Issue Tracker를 통해 업데이트를 받아보고 있다. 어떤 이슈가 해결이 되었다고 하면 샘플을 통해 실제 해결이 되었나 확인한다. 그리고 공식 릴리즈를 통한 사용 가능 시점을 예상하여 개발 계획에 반영할 수 있었다.

나와 같은 상황에서 개발 중인 최신 버전(dev)의 Compose를 사용해보고 싶다면 이 글이 도움이 되었길 바란다🙌

Jetpack Compose 사용자 모임 | 홀릭스(HOLIX)
이미 Production에서 사용중인 개발자와 새로 공부하는 뉴비까지, 안드로이드의 새로운 UI 프레임워크에 대한 최신 정보를 얻으세요!

필자가 운영하는 Jetpack Compose 커뮤니티