Jetpack Compose Snapshot 버전 사용하기

Kimin Ryu
5 min readAug 4, 2022

--

얼마 전 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 페이지에서 확인할 수 있습니다.

https://source.android.com/setup/build/dashboard Figure 1
Figure 1. @https://source.android.com/setup/build/dashboard

아래의 값으로 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를 통해 업데이트를 받아보고 있습니다. 어떤 이슈가 해결이 되었다고 하면 샘플을 통해 실제 해결이 되었나 확인합니다. 그리고 공식 릴리즈를 통한 사용 가능 시점을 예상하여 개발 계획에 반영할 수 있었습니다.

저와 같은 상황에서 개발 중인 버전의 Compose를 사용해보고 싶으시다면 이 글이 도움이 되셨으면 합니다🙌

감사합니다.

이곳에서 Jetpack Compose에 대해 더 많은 대화를 나눠보세요.

원문 : 개인 블로그 (kmpedia.dev)

--

--