다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다. 이어보기 : https://thdev.tech/kotlin/2018/03/25/Kotlin-lateinit-lazy Kotlin에는 늦은 초기화를 위한 방법 2개를 제공한다.class의 전역에 아래와 같이 값을 생성하면, 클래스가 만들어지는 시점에 변수를 함께 초기화한다.class 생성과 동시에 변수가 초기화되면, 재 접근시 빠르게 접근이 가능하여 이득을 볼 수 있다.class SampleActivity { private val sampleAdapter: SampleAdapter = SampleAdapter(ImageLoaderAdapterViewModel(this@SampleMainActivity, 3)) } 하지만 위 ..
다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.이어보기 : http://thdev.tech/kotlin/android/2018/01/02/Kotlin-Learning-and-Introduction 2017년 Google I/O 이후 Kotlin에 대한 관심도가 증가하였고, 샘플 코드와 각종 블로그 포스팅에서 Java보다 Kotlin에 대한 이야기가 많이 나오고 있다, 특히 Jake Wharton은 내부 Android 코드의 Kotlin 적용 적용 프로젝트에 참여로 구글에 입사하였고, 최근에는 자신이 가지고 있던 Retrofit2 모듈에 coroutines을 적용하기도 하였다.다양한 사례들이 많이 나오고 있지만, 아직은 진행 중인 단계이다. 1.0 정식 버전이 나온 이후로..
다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.이어보기 : http://thdev.tech/kotlin/androiddev/2017/10/07/Kotlin-SAM Kotlin에는 SAM Conversions이 제공됩니다. Single Abstract Methods의 약자로 SAM이라고 합니다.이름에서 알 수 있듯 SAM은 하나의 추상 메서드에 대해서 lambdas 식을 제공합니다. 단, Java에서 작성한 Interface 정의와 이를 활용하는 setOnClickListener를 kotlin에서 부르는 경우에만 이에 해당합니다.코틀린에서 유용해야 하는데 실제로는 kotlin에서 작성한 interface와 setOnClickListener 구현체가 있을 경우에는 SAM이 ..
다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.이어보기 : http://thdev.tech/kotlin/android/2017/10/03/Kotlin-Generics kotlin의 Generics을 정리합니다. Java에서 사용하는 Generics과 동일하게 사용할 수 있지만, Kotlin에서는 Generics 정의한 클래스를 상속받을 때 명시적으로 정의해야 합니다.다시 말해 java에서는 제네릭 정의를 하지 않으면, 기본 Object을 따르지만, 코틀린에서는 명시적으로 꼭 적어주도록 만들었습니다.Kotlin Generics 문서 Java Generics 정의하기먼저 Java에서의 Generics 정의를 살펴보죠.interface Generic { void setItem..
다음 글은 전체 내용을 공유하지 않고, 새로운 블로그로 링크를 제공하는 글입니다.이어보기 : http://thdev.tech/kotlin/2017/10/02/Kotlin-Higher-Order-Function Kotlin에는 Higher-Order Functions 사용이 가능합니다.Higher-Order Functions은 함수를 변수로 넘겨주거나, 이를 반환하는 것을 말하는데, 레퍼런스 문서에 정의 내용을 참고하여 설명합니다.fun lock(lock: Lock, body: () -> T): T { lock.lock() try { return body() } finally { lock.unlock() } } lock 함수에 포함된 파라메터 중 body: () -> T Higher-Order Functi..