mobile developer

[Kotlin] Android Convert Java to Kotlin 본문

ANDROID

[Kotlin] Android Convert Java to Kotlin

keyman4949 2021. 5. 31. 16:52

구글에서 Kotlin 언어를 먼저 보여주고 있고 확실히 밀고 있는 언어인데 

회사에서는 돌아만 가면 되는 거 아냐? 하며 생각할 수 있습니다.

 

개발자에 있어서 개발언어는 도구일뿐~!

그러나 안드로이드 개발자로서 kotlin를 모른다는 건 안드로이드 개발자가 맞는지 의문이 들었습니다.

정말 써보면 편함을 느낄 수 있었고 대기업에서 기존 프로젝트를 전환하고 새로운 프로젝트를 코틀린으로 진행하는지 알 수 있습니다.

 

그래서 회사에 안드로이드 자바 프로젝트를 코틀린 언어로 전환을 강행하였습니다.

회사에서 같이 일하는 안드로이드 일부 개발자들은 조금 부담을 느끼긴 했지만, 조금 익숙해지니 다들 코틀린의 매력에 빠져들었습니다.(흐뭇)

 

사실 운영하고 있는 앱들을 잘 모르는 코틀린 언어로 바꾸려고 처음 시도했을 때만 해도 저도 솔직히 부담을 느꼈습니다.

왜냐하면 잘 안되었을 때 책임이 진행을 시도한 사람에게 돌아올 가능성이 있기 때문이었습니다.

그러나 결론은 전환을 하며 느낀 점은 바꾸길 잘했다는 생각이 들었습니다.

 

필요 없는 findViewById를 사용을 안 해도 됬으며 변수로 지정을 안해도 되었습니다. 끝에 필요 없는 ;(세미콜론)도 필요 없습니다! 

코틀린으로 변환하며 생산성이 향상된 것을 느낄 수 있었던 것이 저 위 소스들이 대부분 이었어서 소스를 줄이는 재미도  있었습니다.

위에 단편적인 예시로 든 것이지만 코틀린의 매력은 더 많습니다. 

그건 추후에 차근차근 풀어 보도록 하고 사설이 너무 길었네요.

 

이제 코틀린과 자바를 동시에 쓰면서 변환하기 위한 기본 설정들을 알아보도록 하겠습니다.

 

코틀린과 자바 혼용하기 위한 기본 설정

 

1. 프로젝트에 lombok 라이브러리를 쓰고 있는지 체크~!

 본인이 lombok라이브러리를 쓰고 있다면 get/set이 충돌을 일으키므로 자바와 코틀린을 혼용하고 싶다면 해당 라이브러리를 제거하는 것이 좋습니다.

 

제거방법

lombok을 사용한 디렉토리에서 오른쪽 클릭 > Refector > Delombok 클릭
build.gradle(:app)
dependencies에서 lombok implementation 제거

 

2. 코틀린 플로그인 추가

Preferences > Plugins > Kotlin 최신버전 설치
build.gradle(:project)
 buildscript {
    ext.kotlin_version = '1.4.32'
    ...
    dependencies {
        ...
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // Realm 내부디비 위에 있어야함!!
        ...
    }
}

* Realm 라이브러리를 사용하고 있다면 Realm 위에 있어야 하는 것을 명심하세요.

build.gradle(:app)
 apply plugin: 'kotlin-android'
 apply plugin: 'kotlin-kapt'

 android {
    buildFeatures { viewBinding = true } // 사용법: https://thdev.tech/android/2020/10/07/Remove-kotlinx-synthetic/ 
 }

* viewBinding을 왜 해줘야 하는 이유는 위 주석에 잘 설명되어있습니다. 

 

3.  Kotlin 폴더 생성

build.gradle(:app)
 android { 
    sourceSets {
       main.java.srcDirs += 'src/main/kotlin'
    }
 }
main > 디렉터리 추가 > kotlin 폴더 생성 > 패키지명 기존 패키지명 생성

코틀린 폴더 생성 화면

 

자 이제 자바에서 코틀린으로 옮길 준비가 되었습니다.

이제 기존 자바 언어를 코틀린 언어로 바꾸는 데에 안드로이드 스튜디오에서 잘 지원해 줍니다.

 

해당 자바 파일을 kotlin폴더로 옮긴 후에

해당 파일 오른쪽 클릭 후

convert java file to Kotlin file

을 해보시면 짜잔 하고 코틀린 언어로 변환이 됩니다.

 

물론!! 처음 익숙해질 때까지만 사용하시고 어느 정도 익숙해지셨다면 직접 변환을 해보시길 추천드립니다!!!!

 

4. 코틀린 변환 순서

운영 중인 앱에 있어서 변환 순서는 View 단 부터 수정해 나가는 거였습니다.

이유! 코틀린에서 자바 메서드를 불러올땐 볼도로 수정할 필요가 없지만 자바에서 코틀린 메소드를 호출할 때나 상위 변수를 호출할 때 등으로 필요한 어노테이션(@JvmField, @JvmStatic 등)이 필요해서 최상단인 뷰 단부터 수정해 나갔습니다.

activity > fragment > dialog > service > utils등 공용

 

운영 중인 안드로이드 자바 프로젝트를 코틀린 프로젝트로 변환하기 위한 사전 준비를 하셨으면 차근차근 코틀린으로 변환해 보시기 바랍니다. 

코틀린과 자바를 혼용하다 보면 자꾸 자바 소스에 ;(세미콜론)을 빠트려서 오류를 내는 것을 볼 수 있으실 겁니다 ㅋㅋ나중엔 세미콜론이 거추장 스럽습니다. 인간은 적응하는 동물이기 때문에 금방 익숙해지며 코틀린의 매력에 점점 빠져들 것입니다.

만약 변환하다 문제가 생겼다~! 우리에겐 git 이 있다는 걸 잊지 말도록 하죠~!

Comments