Kotlin expect, actual 키워드

멀티 플랫폼 개발(expect, actual)

expectactual 키워드는 Kotlin Multiplatform 프로젝트에서 사용되는 특별한 키워드이다. 이는 Kotlin이 여러 플랫폼에서 사용되도록 설계된 특징을 활용한다.

일반적으로 Kotlin Multiplatform 프로젝트에서는 코드를 여러 플랫폼(예: JVM, Android, iOS, JavaScript)에 공유한다. 그러나 각 플랫폼마다 특정한 구현이 필요한 경우가 있다. 이런 경우를 위해 expectactual 키워드를 사용하여 플랫폼별로 다른 구현을 제공할 수 있다.

  • expect
    • expect 키워드는 특정 인터페이스, 클래스, 또는 함수가 플랫폼에서 어떻게 구현되어야 하는지를 선언하는 데 사용된다.
    • 즉, 예상되는 구현을 정의한다. 이는 일반적으로 공유 코드에서 사용되며, 특정 플랫폼에서 제공되어야 하는 API를 정의하는 데 사용된다.
  • actual
    • actual 키워드는 expect 키워드와 매핑되어 실제로 해당 인터페이스, 클래스, 또는 함수의 구체적인 구현을 제공한다.
    • 이는 플랫폼별로 제공되는 특정 구현입니다. 따라서 각 플랫폼에 대해 특정한 코드를 작성할 수 있다.

다음은 expectactual 키워드를 사용하여 플랫폼별로 다른 구현을 제공하는 간단한 예제이다.

// common module
expect fun platformSpecificFunction(): String

// JVM module
actual fun platformSpecificFunction(): String {
    return "This is the JVM implementation"
}

// iOS module
actual fun platformSpecificFunction(): String {
    return "This is the iOS implementation"
}

// Usage
fun main() {
    println(platformSpecificFunction()) // Output depends on the platform
}

위의 예제에서 platformSpecificFunction은 공유(common) 모듈에서 expect로 선언되어 있다. 그리고 각 플랫폼에 따라 실제 구현은 actual 키워드를 사용하여 제공된다. 이로 인해 각 플랫폼에서 실행할 때마다 적절한 구현이 사용된다.




최종 수정 : 2021-09-26