Skip to content

안드로이드 전용 구성 요소

Compose Multiplatform은 Jetpack Compose를 기반으로 합니다. Compose Multiplatform의 대부분 기능은 모든 플랫폼에서 사용할 수 있습니다. 하지만 안드로이드 타겟에서만 사용할 수 있는 일부 API와 라이브러리가 있습니다. 이는 안드로이드 전용이거나, 아직 다른 플랫폼으로 포팅되지 않았기 때문입니다. 이 페이지에서는 Compose Multiplatform API의 이러한 부분을 요약하여 설명합니다.

가끔 Jetpack Compose 문서나 커뮤니티에서 작성한 글에서 안드로이드 타겟에서만 사용할 수 있는 API를 발견할 수 있습니다. 이를 commonMain 코드에서 사용하려고 하면 IDE에서 해당 API를 사용할 수 없다고 알려줄 것입니다.

안드로이드 전용 API

안드로이드 전용 API는 안드로이드에 특화되어 있으며 다른 플랫폼에서는 사용할 수 없습니다. 이는 다른 플랫폼이 안드로이드에서 사용하는 특정 개념을 필요로 하지 않기 때문입니다. 해당 API는 일반적으로 android.* 패키지의 클래스를 사용하거나 안드로이드 전용 동작을 구성합니다. 다음은 안드로이드 전용 API의 일부 예시입니다:

일반적으로 이러한 API 부분을 공통화할 강력한 이유가 없으므로 androidMain에서만 유지하는 것이 가장 좋습니다.

시그니처에 안드로이드 클래스가 포함된 API

Compose Multiplatform API 중 시그니처에 android.* 또는 androidx.* (단, androidx.compose.* 제외)를 사용하지만, 해당 동작이 다른 플랫폼에도 적용 가능한 부분이 있습니다:

복잡성과 수요에 따라 향후 commonMain으로 포팅될 수 있습니다.

권한, 장치(블루투스, GPS, 카메라) 및 IO(네트워크, 파일, 데이터베이스)와 같이 애플리케이션 개발 시 자주 사용되는 API는 Compose Multiplatform의 범위를 벗어납니다.

시그니처에 안드로이드 클래스가 없는 API

일부 API 부분은 시그니처에 android.* 또는 androidx.* 클래스가 포함되어 있지 않고 다른 플랫폼에도 적용 가능하더라도, 안드로이드 타겟에서만 사용할 수 있습니다. 그 이유는 대개 구현에 많은 플랫폼별 특성이 사용되어 다른 플랫폼을 위한 다른 구현을 작성하는 데 시간이 걸리기 때문입니다.

일반적으로 이러한 API 부분은 안드로이드 타겟용 Jetpack Compose에 도입된 후 Compose Multiplatform으로 포팅됩니다.

Compose Multiplatform 1.8.2에서 다음 API 부분은 commonMain에서 사용할 수 없습니다:

안드로이드 API 포팅 요청

안드로이드에서 포팅할 수 있는 각 API에 대해 Compose Multiplatform YouTrack에 열린 이슈가 있습니다. API를 안드로이드에서 포팅하고 공통화할 수 있다고 판단되지만, 기존 이슈가 없다면 하나 생성하세요.