Showkase를 이용한 UI 요소 시각화
Jetpack Compose를 활용하여 안드로이드 앱을 개발하면서 적용했던 라이브러리인 airbnb의 Showkase를 소개합니다.
Showkase github
Showkase는 Jetpack Compose의 UI 요소들을 시각화하고, 검색 가능하게 하여 디자인 요소에서 발생할 수 있는 문제를 미리 파악하고 재사용을 도와줄 수 있는 라이브러리입니다.
아래와 같은 순서로 소개해 볼까 합니다.
- 좋은말 같은데 무슨 소리인가요?
- 실제로 어떻게 적용하고 사용하나요?
1. 좋은말 같은데 무슨 소리인가요?
Jetpack Compose에서는 @Preview를 이용하여 UI 요소를 미리 볼 수 있습니다.
아래와 같은 Composable 함수를 정의해 봅니다.
@Composable
fun DotsIndicator(
totalDots : Int,
selectedIndex : Int,
selectedColor: Color,
unSelectedColor: Color,
){
...
}
그리고 다음과 같이 Preview를 만들었습니다.
@Preview(widthDp = 100, heightDp = 20, showBackground = true, name = "선택 1")
@Composable
fun DotsIndicatorPreview() {
DotsIndicator(3, 0, md_theme_light_primary, colorToneDown)
}
@Preview(widthDp = 100, heightDp = 20, showBackground = true, name = "선택 2")
@Composable
fun DotsIndicatorSelectedPreview1() {
DotsIndicator(3, 1, md_theme_light_primary, colorToneDown)
}
@Preview(widthDp = 100, heightDp = 20, showBackground = true, name = "선택 3")
@Composable
fun DotsIndicatorSelectedPreview2() {
DotsIndicator(3, 2, md_theme_light_primary, colorToneDown)
}
적용된 디자인 요소를 바로 확인 할 수 있습니다.
만약 적용된 디자인 요소들을 모아서 볼 수 있다면? 검색할 수 있다면?
- 새로운 디자인 요소에 대한 디자인 검수 시
* 디자인 요소를 직접 찾아가는 것이 검색에 비하여 더 높은 비용이 발생한다. - 기존 디자인 요소를 재사용 할 경우
* 확인 후 적용하면 된다.
Showkase를 사용해볼까?
@ShowkaseComposable 이용
Basix Example, Dark Mode, RTL, font scaled x2, display scaled x2 에 대해 미리보기가 자동으로 생성됩니다.
@ShowkaseComposable(name="첫 번째 인디게이터", group="인트로 화면")
@Preview(widthDp = 100, heightDp = 20, showBackground = true, name = "선택 1")
@Composable
fun DotsIndicatorPreview() {
DotsIndicator(3, 0, md_theme_light_primary, colorToneDown)
}
2. 실제로 어떻게 적용하고 사용하나요?
참고 : Showkase github
Step 1. 종속성 추가
def showkase_version = "1.0.0-beta12"
implementation "com.airbnb.android:showkase:$showkase_version"
kapt "com.airbnb.android:showkase-processor:$showkase_version"
gradle command 실행
./gradlew clean build -i -PuseKsp=true
Step 2. UI 요소에 annotation 추가
@Composable에 @Preview 혹은 @ShowkaseComposable 추가
@ShowkaseComposable(name="첫 번째 인디게이터", group="인트로 화면")
Color에 @ShowkaseColor 추가
@ShowkaseColor(name = "LightPrimary", group = Constants.MATERIAL_DESIGN_COLOR)
val md_theme_light_primary = Color(0xFF005ac3)
TextStyle에 @ShowkaseTypography 추가
@ShowkaseTypography(name = "displayLarge", group = "Material Design Style")
val displayLarge = TextStyle(
fontFamily = Roboto,
fontWeight = FontWeight.W400,
fontSize = 57.sp,
lineHeight = 64.sp,
letterSpacing = (-0.25).sp,
color = md_theme_light_secondaryContainer,
)
Step 3. ShowkaseRootModule 추가
@ShowkaseRoot
class RootModule: ShowkaseRootModule
Step 4. 액티비티 시작
startActivity(Showkase.getBrowserIntent(context))
실행화면
- 현재 Jetpack Compose로 개발되는 모든 프로젝트에 적용하고 있습니다.
- 디버깅 메뉴에 startActivity를 넣어서 사용합니다.
- 해당 프로젝트의 기여자입니다.
Author And Source
이 문제에 관하여(Showkase를 이용한 UI 요소 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@larvatus/Showkase를-이용한-UI-요소-시각화저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)