코린과 함께 - 6. Kotlin/Native

개요 / 설명



Kotlin 1.3 릴리스에는 베타 버전인 Kotlin/Native가 포함되어 있습니다.
간단하게 IntelliJ에서 Kotlin/Native를 사용하고 싶습니다.

Kotlin/Native



Kotlin은 Java 및 Scala와 마찬가지로 JVM 언어로 설계되었습니다. 따라서 실행하려면 가상 머신(JVM)이 필요합니다. 그러나이 Kotolin/Native는 가상 시스템이 필요없이 작동하도록 네이티브 바이너리로 컴파일하는 기술입니다.

전제 / 환경



런타임 버전


  • Kotlin : 1.3.0

  • 개발 환경


  • OS : Mac
  • IDE : IntelliJ IDEA
  • Build : Gradle

  • 절차 / 설명



    1. Kotlin/Native 프로젝트 만들기





    새 프로젝트를 만들 때 선택할 프로젝트 유형으로 Kotlin 범주에 포함 된 Kotlin/Native를 선택합니다.
    프로젝트 구성은 기본값으로 남아 있으며 문제가 없습니다.

    2. 프로젝트 구성





    소스 코드 디렉토리가 자동으로 만들어집니다. 환경의 OS가 MacOS이기 때문에 디렉토리 이름이 macosMain입니다.

    3. 소스 코드



    build.gradle


    plugins {
        id 'kotlin-multiplatform' version '1.3.0'
    }
    repositories {
        mavenCentral()
    }
    kotlin {
        targets {
            fromPreset(presets.macosX64, 'macos')
    
            configure([macos]) {
                compilations.main.outputKinds('EXECUTABLE')
                compilations.main.entryPoint = 'sample.main'
            }
        }
        sourceSets {
            macosMain {
            }
            macosTest {
            }
        }
    }
    
    task runProgram {
        def buildType = 'release'
        dependsOn "link${buildType.capitalize()}ExecutableMacos"
        doLast {
            def programFile = kotlin.targets.macos.compilations.main.getBinary('EXECUTABLE', buildType)
            exec {
                executable programFile
                args ''
            }
        }
    }
    

    신청


    package sample
    
    fun hello(): String = "Hello, Kotlin/Native!\n"
    
    fun main(args: Array<String>) {
        println(hello())
        platform.posix.system("date")
        platform.posix.system("ls -la")
    }
    

    기본에 충실히 HelloWorld의 표준 출력과 외부 명령의 실행을 넣어 보았습니다.

    4. 빌드





    Gradle 태스크의 build를 실행합니다.



    네이티브 바이너리를 생성하는지 조금 시간이 걸리는 것 같습니다.

    5. 실행



    build/bin/macos/main/release/executable 디렉토리 아래에 네이티브 바이너리가 생성됩니다.
    이 바이너리 파일은 MacOS에서 직접 어디서나 실행할 수 있습니다.
    build/bin/macos/main/release/executable $ ./HelloKotlinNative.kexe
    Hello, Kotlin/Native!
    
    2018年 11月18日 日曜日 21時01分51秒 JST
    total 1984
    drwxr-xr-x  3 shinyay  staff       96 11 18 20:36 .
    drwxr-xr-x  3 shinyay  staff       96 11 18 20:35 ..
    -rwxr-xr-x  1 shinyay  staff  1013336 11 18 20:36 HelloKotlinNative.kexe
    

    요약 / 되돌아보기



    Kotlin/Native는 아직 베타 버전의 취급이지만 충분히 즐길 것 같습니다.
    이번에는 외부 커맨드의 호출로서 시험에 만들어 보았습니다만, 다음은 커맨드 라인 툴을 만들어 보자고 생각합니다.

    이번 소스


  • kotlin-native-hello
  • 좋은 웹페이지 즐겨찾기