KOTLIN
-
[KOTLIN] data classKOTLIN 2022. 9. 20. 19:13
data class를 사용하지 않을 때의 불편함 코틀린에서 Class를 생성할 때 Java language 스펙에 따라서 아래와 같은 메서드를 재정의해야 한다. toString() class Dog(var name: String, var age: Int, var sex: String) { override fun toString(): String { return "Dog(name=$name, age=$age, sex=$sex" } } equals() class Dog(var name: String, var age: Int, var sex: String) { override fun toString(): String { return "Dog(name=$name, age=$age, sex=$sex" } over..
-
[KOTLIN] SimpleDateFormat Date->String, String->DateKOTLIN 2022. 7. 9. 13:45
https://developer.android.com/reference/kotlin/java/text/SimpleDateFormat SimpleDateFormat | Android Developers android.net.wifi.hotspot2.omadm developer.android.com {포맷} Date and Time Pattern Result "yyyy.MM.dd G 'at' HH:mm:ss z" 2022.07.04 AD at 12:08:56 PDT "EEE, MMM d, ''yy" Wed, Jul 4, '22 "h:mm a" 12:08 PM "hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time "K:mm a, z" 0:08 PM, PD..
-
[KOTLIN] Sealed classKOTLIN 2022. 6. 9. 16:11
코루틴으로 프로젝트를 만드는 중 best practice 예제인 https://github.com/google/iosched 를 참고하던 중 seald class가 등장하여 블로그에 글을 적게 되었습니다. SeladClass란? Sealed class는 Super class를 상속받는 Child 클래스의 종류 제한하는 특성을 갖고 있는 클래스입니다. 어떤 클래스를 상속받는 하위 클래스는 여러 파일에 존재할 수 있기 때문에 컴파일러는 얼마나 많은 하위 클래스들이 있는지 알지 못합니다. 하지만 Sealed class는 동일 파일에 정의된 하위 클래스 외에 다른 하위 클래스는 존재하지 않는다는 것을 컴파일러에게 알려주는 것과 같습니다. -퍼옴- 즉, A class가 다른 B, C ,D 등의 class들에 상속..
-
[KOTLIN] @JvmOverloads 어노테이션KOTLIN 2022. 6. 1. 14:12
CustomView를 최근 많이 만들다 보니 @JvmOverloads 어노테이션을 많이 붙이게 되었다. kotlin 함수에 default 파라미터가 있는 경우 Java에서 사용이 용이하도록 기본 인자들이 overload 된 메서드 들을 생성한다. 예를들어 아래와 같은 Java 함수가 있다고 하자. class Exmaple { fun test(name: String, age: Int, married: Boolean, gender: String) { // ... } } 자바에서는 default 인자 개념이 없기 때문에 모든 인자를 다 입력해야 한다. Example example = new Example(); example.test("hardy"); // error example.test("kim", 26);..
-
[ANDROID ERROR] API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'KOTLIN/ERRO 2022. 1. 15. 13:54
경고 내용 API 'BaseVariant.getApplicationIdTextResource' is obsolete and has been replaced with 'VariantProperties.applicationId'. It will be removed in version 7.0 of the Android Gradle plugin. For more information, see TBD. To determine what is calling BaseVariant.getApplicationIdTextResource, use -Pandroid.debug.obsoleteApi=true on the command line to display more information. 경고 원인 경고를 해석해보면 'AP..
-
[ANDROID ERROR] string too large to encode using UTF-8 written instead as 'STRING_TOO_LARGE'.KOTLIN/ERRO 2022. 1. 12. 17:24
내용 string too large to encode using UTF-8 written instead as 'STRING_TOO_LARGE'. 해결 방법 저의 경우 ViewDataBinding의 Variable을 설정 할 때 Variable의 이름을 잘 못 입력해서 오류가 발생했습니다. viewDataBinding.setVariable(BR.output, viewModel.output)
-
[ANDROID] Recycler View의 absoluteAdapterPosition vs getBindingAdapterPositionKOTLIN 2022. 1. 12. 16:40
ConcatAdapter ConcatAdapter를 사용할 경우 여러 어댑터를 합쳐서 사용할 수 있다. val adapter1: AdapterOne = AdapterOne() val adatper2: AdapterTwo = AdapterTwo() val concatAdapter: ConcatAdapter = ConcatAdapter(adapter1, adapter2) recycelrView.setAdapter(concatAdapter) getBindingAdapterPosition() vs. getAbsoluteAdapterPostion() getAdapterPosition()은 이런 경우 이름이 혼동 되기 때문에 더이상 사용하지 않게 되었다. getBindingAdapterPostion은 특정 어댑터 ..
-
[KOTLIN IN ACTION] 코틀린이란 무엇이며, 왜 필요한가?KOTLIN/KOTLIN IN ACTION 2021. 12. 4. 00:09
코틀린 특징 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어. 간결하고 실용적이며, 자바 코드와의 상호 운용성을 중시한다. 자바가 사용 중인 곳이라면 거의 대부분 코틀린을 활용할 수 있다. 기존 자바 라이브러리나 프레임워크와 함께 잘 작동하며, 성능도 자바와 같은 수준이다. 주요 특성 코트린의 대상 플랫폼 서버, 안드로이드 등 자바가 실행되는 모든 곳을 대상으로 하는 언어이다. 자바보다 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 목적을 가지고 있다. 현재 자바는 세계적으로 다양한 환경에서 사용되고 있다. 그런 환경에서 코틀린을 도입한다면 더 적은 코드로 더 편하게 프로그래머의 목표를 달성할 수 있다. ex ) 서버상의 코드 (웹 백엔드, 안드로이드 어플리케이션 등) 코틀린은 이런 환경뿐 아니라 ..