플랫폼 라이브러리

플랫폼 라이브러리

운영체제의 네이티브 서비스에 접근할 수 있도록, Kotlin/Native 배포판에는 각 타깃에 맞는 사전 빌드된 라이브러리 묶음이 포함돼 있어요. 이걸 **플랫폼 라이브러리(platform libraries)**라고 불러요.

출처: Platform libraries

본문

플랫폼 라이브러리의 패키지는 기본적으로 사용할 수 있어요. 별도의 링크 옵션을 지정할 필요가 없죠. Kotlin/Native 컴파일러가 어떤 플랫폼 라이브러리에 접근하는지 자동으로 감지해서 필요한 것들을 연결해 줘요.

다만 컴파일러 배포판에 들어 있는 플랫폼 라이브러리는 네이티브 라이브러리에 대한 **래퍼 겸 바인딩(binding)**에 불과해요. 다시 말해 네이티브 라이브러리 자체(.so, .a, .dylib, .dll 등)는 여러분 로컬 머신에 직접 설치해 둬야 해요.

POSIX 바인딩

Kotlin은 Android와 iOS를 포함한 모든 UNIX·Windows 기반 타깃에 POSIX 플랫폼 라이브러리를 제공해요. 이 플랫폼 라이브러리들은 POSIX 표준을 따르는 플랫폼 구현에 대한 바인딩을 담고 있어요.

라이브러리를 사용하려면 프로젝트에 임포트하면 돼요.

import platform.posix.*

지원되는 각 플랫폼의 posix.def 파일 내용은 다음에서 살펴볼 수 있어요.

  • iOS
  • macOS
  • tvOS
  • watchOS
  • Linux
  • Windows (MinGW)
  • Android

POSIX 플랫폼 라이브러리는 WebAssembly 타깃에서는 사용할 수 없어요.

널리 쓰이는 네이티브 라이브러리

Kotlin/Native는 OpenGL, zlib, Foundation처럼 여러 플랫폼에서 흔히 쓰이는 다양한 네이티브 라이브러리에 대한 바인딩을 제공해요.

Apple 플랫폼에서는 Objective-C API와의 상호 운용을 가능하게 하는 objc 라이브러리가 포함돼 있어요.

구성에 따라 Kotlin/Native 타깃에 사용할 수 있는 네이티브 라이브러리들은 컴파일러 배포판에서 확인할 수 있어요.

  1. 컴파일러 배포판이 담긴 압축 해제된 아카이브로 이동해요. 예를 들어 kotlin-native-prebuilt-macos-aarch64-2.1.0 같은 디렉터리요.
  2. klib/platform 디렉터리로 이동해요.
  3. 해당 타깃에 맞는 폴더를 골라요.

.konan 폴더로 이동하는 방법은 다음과 같아요.

  • 커맨드라인 도구에서 다음 경로로 이동해요:
    ~/.konan/
    
    %USERPROFILE%\.konan
    

그다음 Kotlin/Native 컴파일러 배포판(예: kotlin-native-prebuilt-macos-aarch64-2.1.0)을 열고, klib/platform 디렉터리로 이동한 뒤 해당 타깃 폴더를 선택하면 돼요.

다음 단계

Swift/Objective-C와의 상호 운용성에 대해 더 알아보세요.

더 알아보기

  • Swift/Objective-C 상호 운용성
  • Kotlin/Native 개요
  • Kotlin Multiplatform 개요