[Android] Compose Glance 로 위젯 개발하기_0탄

JJAE WON·2024년 6월 3일
post-thumbnail

( Glance... 훔쳐보는.. 갱얼쥐.. )

작년 2023 안드로이드 드로이드 나이츠에서 Compose의 위젯 전용 라이브러리 Glance 강연을 보고 호시탐탐 나도 써봐야지라는 생각을 가지고 있었다 !

회사에서 위젯을 개편한다는 소식에 지금이다! 라고 생각하여 Glance를 적용하여 개발을 진행하였다.

정말 우당탕탕이었던 Glance 적용기 연재됩니다....

🤔 Compose Glance란 ?!

💙 Jetpack Glance is a framework built on top of the Jetpack Compose runtime that lets you develop and design app widgets using Kotlin APIs. App widgets are miniature application views that can be embedded in other applications and receive periodic updates.

→ 위젯을 디자인하고 개발하기 위해 등장한 컴포즈 기반의 프레임워크이다 !!

Glance를 적용하기 전에 알아두어야할 중요한 사실

  • Glance는 현재도 열심히 개발중에 있다 → (중요) 버그가 있을 수 있다.
  • Compose이긴 한데 ,, ~ Glance랑 Compose는 별개다 !!
    • Modifire 를 사용하긴 우리가 알고있는 Compose에서 사용하는 것과 다르다.
    • GalcneModifire 사용함으로써 실제로 코드를 까보면 아예 다른 것으로 확인가능
  • 완성도가 높긴하지만 안되는 컴포넌트들이 꽤 많기 때문에, 구현하려는 기능의 기술검토를 꼼꼼히 진행해야 한다.

버전 꼼꼼하게 확인하기

2024년 2월 기준 1.1.0-alpha01이 개발되어있는 상태이지만

위젯은 기존의 프로젝트에 플러스되어 개발된다고 생각해서.. 현재 진행하고 있는 프로젝트에 적용할 수 있는 Glance 버전을 체크해야하고 해당 버전에 대한 릴리즈 노트를 꼼꼼히 읽는 것이 중요하다고 생각한다.

추가로 얘네도 끊임없이 업데이트가 되고있어서 구글링에 대한 자료들이 일치하지 않는 경우가 많다.
버전별로 지원하는 기능들이 천차만별처럼 느껴질 수 있다는 점 참고하길..

Version Requirement

  • AGP ≥ 7.0.0
  • Compose ≥ 1.1.0
  • compileSDK ≥ 31
  • minSDK ≥ 21

glance는 Kotlin API를 사용하고 있어서 버전별로 Kotlin의 버전을 요구하는 것이 다르다.

*1.0.0-beta01 버전부터는 kotlin 1.8.0 이상의 버전이 필요하다.
( kotlin 1.8.0 미만 쓰는 사람들 없죠,,,? ㅠ..🥲 )



시작하기

종속성 추가하기

dependencies {
   // For AppWidgets support
   implementation( "androidx.glance:glance-appwidget:1.0.0" )

   // For interop APIs with Material 2
   implementation( "androidx.glance:glance-material:1.0.0" )

   // For interop APIs with Material 3
   implementation( "androidx.glance:glance-material3:1.0.0" )
}

- compose 컴파일러 활성화하기

android {
   buildFeatures {
      compose true
   }

   composeOptions {
      kotlinCompilerExtensionVersion = "1.5.11"
   }

   kotlinOptions {
      jvmTarget = "1.8"
   }
}

상기 설정만 완료하면 Glance를 바로 사용해볼 수 있다 !! 😀

실제로 구현한 내용들은 앞으로 차차 연재하겠읍니다..

화이팅… 👊🏻

profile
앱개발왕 찐천재가 되고싶다.

0개의 댓글