• 목록 (128)
    • Android (62)
    • Back-End (2)
    • Java (3)
    • Kotlin (16)
    • CS (7)
    • 개발 서적 (12)
    • 문제 풀이 (26)

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
MJ_94

한 우물만 파는 기술 블로그

Android

[Android] Compose 컴파일러 - (3)

2024. 11. 15. 20:41

Compose Compiler 확장 등록

Compose Compiler Plugin이 수행하는 첫 번째 작업은 Kotlin Compiler에서 제공하는 메커니즘은 ComponentRegistrar를 사용하여 Kotlin Compiler 파이프라인에 자신을 등록하는 것이다.

ComponentRegistrar는 다양한 목적을 위해 일련의 컴파일러 익스텐션을 등록하여 라이브러리 사용을 보다 쉽게 하고 Runtime에 필요한 코드들을 생성하는 역할을 한다.

Compose Compiler는 활성화된 컴파일러 플래그(on/off 값)에 따라 몇 가지 익스텐션도 등록한다.

Jetpack Compose를 사용하는 개발자들은 앱을 다시 컴파일하거나 재시작할 필요 없이 현재 타이핑 중인 코드를 실시간으로 UI에 반영하는 기능을 활성화하고, 생성된 코드에 소스 정보를 포함시킨다. 이를 라이브 리터럴이라고 부른다.

 

Kotlin Compiler 버전

Compose Compiler는 Kotlin 버전에 민감하므로 Compiler 버전이 요구하는 Kotlin 버전인지 확인해 한다. 이를 충족시켜 주지 않으면 큰 방해요소로 이어질 수 있다.

suppressKotlinVersionCompatibilityCheck라는 컴파일러 매개변수 를 사용하여 Kotlin 버전 검사를 우회할 수 있는 방법이 있지만, 이 방법은 컴파일 오류로 쉽게 이어질 수 있다.

 

정적 분석

정적분석은 소스 코드를 스캔하여 라이브러리 어노테이션을 찾고, 그것들이 올바르게 사용되고 있는지 몇 가지 중요 사항들을 지키고 있는지 검사한다.

정적 코드 분석을 통해 경고나 오류는 컴파일러 플러그인이 접근할 수 있는 컨텍스트 추적(context trace)을 통해 보고된다. 이는 IDEA 플러그인과 잘 통합되어 개발자가 입력 중인 순간에 때 경고나 오류를 인라인으로 표시된다. 따라서 Compose가 개발자에게 가능한 빠른 피드백을 제공한다.

저작자표시 비영리 변경금지 (새창열림)

'Android' 카테고리의 다른 글

[Android] Compose 컴파일러 - (5)  (0) 2024.11.19
[Android] Compose 컴파일러 - (4)  (0) 2024.11.18
[Android] Compose 컴파일러 - (2)  (0) 2024.11.14
[Android] Compose 컴파일러 - (1)  (0) 2024.11.13
[Android] Compose Composable 함수들 - (3)  (0) 2024.11.12
    'Android' 카테고리의 다른 글
    • [Android] Compose 컴파일러 - (5)
    • [Android] Compose 컴파일러 - (4)
    • [Android] Compose 컴파일러 - (2)
    • [Android] Compose 컴파일러 - (1)
    MJ_94
    MJ_94
    안드로이드, 개발 관련 기술 블로그

    티스토리툴바