Kotlin(9)
-
Kotlin <-> Java 클래스를 서로 참조 못할 때(Can not find symbol)
gradle에 다음과 같은 설정을 빼먹으면, Java로 선언한 클래스가 빌드 타임에 Kotlin으로 생성한 클래스를 참조하지 못한다. 빌드하기 전 IDE상에서는 잘 참조하고 있는 것처럼 표시하며, app의 build.gradle에서 선언해줬다 하더라도 하위 모듈에서는 해당 플러그인을 적용하도록 다시 선언해줘야 한다. 일반적으로 프로젝트 생성 시점에 언어를 Kotlin으로 선택하면 자동으로 적용되는 항목이기에 몰라도 크게 문제가 될 상황은 없지만, 레거시 코드를 부분적으로 참조한다거나 리펙토링할 때 헤멜 수 있는 문제이다. apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions'
2019.11.03 -
[Android] Parcelable in Kotlin
[스마이트]일단 뼈대는 완성했다.를 만들면서 Activity간에 Data Class를 전달해야 할 일이 발생했다. 사실 아이템과 관련된 내용들을 전체 Activity에서 사용하기 때문에, 굳이 Data Class를 전달하지 않고도 사용할 방법을 찾으려면 찾을 수는 있었겠지만… 예전에는 Serializable을 사용했던 걸로 기억하지만, Serializable은 내부적으로 많은 리플렉션과 다량의 오브젝트를 생성하기 때문에, 안드로이드 앱의 전체적인 성능을 낮추며 배터리를 소모하는 원인이 된다고 한다. (Parcelable과 Serializable 비교, Charles 님) 물론 Kotlin이 Java Wrapper는 아니지만, Serializable을 사용하더라도 크게 다르지는 않을 듯 싶다. - (Kot..
2019.03.06 -
When Expression
Udacity 강의를 보던 중, 내가 영어를 이렇게 못했나 싶을정도로 놓치는 내용이 많은 것 같아서, 내용과는 별개로 Kotlinlang.org의 내용을 정리하기로 했다. When Expression When은 C와같은 언어에서 Switch와 비슷한 동작을 수행한다. when (x) { 1 -> print("x == 1") //x가 1이면 x == 1을 출력한다. 2 -> print("x == 2") //x가 2이면 x == 2를 출력한다. 3, 4 -> print("x == 3 or x == 4") //x가 3 혹은 4이면, x == 3 or x == 4를 출력한다. in 5..10 -> print("x is in the range (5~10)") //x가 5~10 범위 내에 있을 때, x is in ..
2019.02.03