[Android] Jetpack compose 어노테이션 정리

유민국·2024년 3월 18일
0

@Stable

  • Jetpack Compose에서 사용되는 주석 중 하나로, 해당 요소가 불변하고 내부 상태가 변하지 않는다는 것을 나타낸다.
  • Compose는 함수형 프로그래밍의 개념을 채택하고, 불변성을 강조한다.

@SuppressLint

@SuppressLint 어노테이션은 Android Lint라는 도구에서 발생하는 경고를 무시하도록 지시하는 데에 사용

  • 코드의 품질 향상과 잠재적인 버그를 줄이기 위함
  • 앱을 개발하다 보면 때로는 Lint가 발견한 경고 중에서도 특정한 것을 무시하고 싶을 때 사용

예시

// Android Lint는 해당 메서드에서 "NewApi" 경고를 표시하지 않는다
@SuppressLint("NewApi")
private void doSomething() {
    // Android API 레벨 21 이상에서만 사용할 수 있는 기능을 사용하는 코드
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        // ...
    }
}
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")

UnusedMaterial3ScaffoldPaddingParameter는 Scaffold 클래스에 정의된 매개변수 이름으로, Android Lint에서 "Unused Material" 경고를 무시하도록 앱에 지시

  • Scaffold 클래스에서 사용하지 않는 패딩 매개변수가 있을 경우 경고 무시

Opt-In Annotations

// Material Design 라이브러리의 실험적인 API를 사용하겠다는 것을 나타냄
// 파일 맨 위에 선언
@file:OptIn(ExperimentalMaterial3Api::class)

import androidx.compose.material3.Button

fun main() {
    val button = Button(onClick = {}) {
        // 버튼 내용
    }
}

OptIn 어노테이션은 실험적인 기능이나 API를 사용할 때 명시적으로 "Opt-In" 하는 데에 사용

  • 실험적인 API를 사용하기 위해서는 해당 API가 정의된 패키지에서 @OptIn 어노테이션을 사용하여 선언해야 한다
  • 실험적인 API를 사용하는 경우 라이브러리의 변경 사항에 대응하기 위해 이 기능을 사용할 때마다 앱의 코드를 업데이트해야 할 수도 있다
profile
안녕하세요 😊

0개의 댓글