본문 바로가기
C++ 200제/코딩 IT 정보

안드로이드 코틀린 장점, 쉬운 도입과 자바 연계성

by vicddory 2019. 7. 6.

안드로이드 코틀린 도입을 주저할 이유는 없습니다. 많은 이유가 있지만 그중 딱 2가지만 소개합니다.


◆ 안드로이드 코틀린 장점1. 도입이 간단함

새로운 언어를 사용(도입)하는 경우, 개발 환경 구축에 문제가 생깁니다. 여러 오류가 발생하여 시간 소모가 많아지며, 개발환경 안정화까지 걸리는 시간을 가늠하기 힘듭니다. 그래서 언어 자체의 생산성을 개발 환경 구축 시간이 상쇄할 우려가 생깁니다.


Kotlin은 이 점에서 상당히 편리합니다. 먼저 IDE 연계할 수 있도록 Android Studio(IntelliJ)용 플러그인이 Jetbrains에서 제공됩니다.


안드로이드 코틀린 장점Android Kotlin 장점 1. 도입 간단

IDE 본래 언어가 같으므로 각종 연계 기능이 좋습니다. Swift + Xcode는 Refactor rename 등도 제대로 활용할 수 있습니다.


안드로이드 코틀린 플러그인은 아래처럼 설치 후 사용할 수 있습니다.


1
Android Studio > Preferences > Plugins > Install Jetbrains Plugin > Kotlin
cs



새로운 버전의 플러그인이 나오면, Android Studio에서 먼저 인지하여 사용자에게 알림을 띄워 쉽게 업데이트할 수 있습니다.


프로젝트의 빌드 방법도 간단합니다.


1
Android Studio > Tools > Kotlin > Configure Kotlin in Project 클릭
cs


대화창에서 OK를 눌러 설정하면 됩니다.


그러면 애플리케이션 모듈의 gradle 스크립트가 아래와 같이 변경됩니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 코틀린 KOTLIN 도입 전
 
apply plugin: 'com.android.application'
 
android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
 
    defaultConfig {
        applicationId "jp.co.qoncept.apptest"
        minSdkVersion 18
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
 
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
}
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// 코틀린 KOTLIN 
 
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
 
android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"
 
    defaultConfig {
        applicationId "jp.co.qoncept.apptest"
        minSdkVersion 18
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }
}
 
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
 
buildscript {
    ext.kotlin_version = '0.13.1514'
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}
 
repositories {
    mavenCentral()
}
cs



나머지는 보통으로 하게 되면, gradle 스크립트가 Kotlin 컴파일러와 연동하여 완료합니다. 새로운 버전의 Kotlin이 나오면 ext.kotlin_version을 수정 후 다시 사용하면 됩니다.



안드로이드 코틀린 장점, 쉬운 도입과 자바 연계성Android와 Kotlin은 사이 좋아요

◆ 안드로이드 코틀린 장점2. Java와의 연계성 좋음

개발 언어를 변경할 경우, 그동안 사용하던 언어와 함께 사용하는 것이 곤란합니다. 완벽하게 병행할 수 없다면, 기존 프로젝트에도 추가 도입할 수 없습니다. 이로 인해, 과거의 자산(소스 코드)을 버리게 되는 등 여러 문제점에 직면합니다.


그런 면에서 Kotlin <-> Java 연계성은 꽤 높습니다.


Scala, Groovy 언어처럼 Kotlin은 Java 바이트 코드로 컴파일되어 JVM 위에서 작동하는 건 안드로이드 코틀린의 매력 중 하나죠.


새로운 언어로서 Java 연계성이 매우 중요했는데, 기존 Java 소스 프로젝트에 Kotlin 소스를 추가하여 작업할 수 있습니다.


또한 Kotlin에서는 자연스럽게 Java 클래스나 메소드를 호출합니다. 공식 사이트에도 "100% interoperable with Java"라고 적혀 있습니다. 만약 Kotlin에서 작업할 수 없는 부분은 기존 Java로 쓸 수 있습니다.


코틀린과 자바 사이는 Swift와 Objective-C의 관계와 비슷합니다.


이런 점 때문에 코틀린을 계속 사용할 수밖에 없다고 생각합니다. 결국은 Kotlin 장점 때문에 기존 Java 구현 부분을 Kotlin 소스로 교체하는 경우도 많습니다.



안드로이드 코틀린 추천 버전




관련 글

2018/07/16 - 구글 안드로이드 OS 구조란, 안드로이드 리눅스 차이까지

2017/06/09 - 안드로이드 포팅 공부 - AT91CAP9-STK (part 1)

2017/02/21 - 안드로이드 AVD 오류, Unable to resolve target 'Google Inc.:Google APIs:x‘



ⓒ written by vicddory

댓글