
효과적으로 Kotlin을 사용하고, 적용하려면 어떻게 하는 게 좋을까? Kotlin Reference 문서 확인 Effective 관련 서적을 함께 본다(Effective Java, Effective Kotlin - 원서 링크) 더 많은 샘플 코드와 사례들을 살펴본다. 많은 사례들이 모든 좋은 결과물을 만들진 않지만, 다양하게 보다 보면 좀 더 좋은 코드를
효과적인 코틀린 사용하기 2 번째 글로 data class의 equals와 hashCode를 알아보려고 한다. 이 글에서 알아볼 내용 data class는 왜 사용하는지, Equals, hashCode를 왜 재정의 해야 하는지 살펴본다. 값 비교할 때 사용하는 ==(equals)와 메모리 비교를 위한 ===를 알아본다. 드로이드 나이츠 2020 발표에 포함
코틀린 data class에서 자동으로 처리하는 equals와 hashCode를 알아보자.을 알아보았다. 이전 글에서 알아본 data class의 equals와 hashCode를 사용하여 RecyclerView DiffUtil에서 활용하는 방법을 알아보자. 여기에서 사용한 샘플 코드는 2020-09-22-Android-RecyclerView-DiffUtil
이 글에서는 kotlin inline을 좀 더 살펴보려고 한다. inline은 말 그대로 inline 키워드를 사용한 함수나 클래스의 내부 코드를 inline 해 컴파일한다는 것이다. 예를 들어 inline functions에 10줄의 코드를 담고 있고, inline을 붙인다면 이 10줄의 코드를 그대로 함수 호출한 부분에 함수 호출한 부분을 제외하고 in
Kotlin collections을 사용할 때 주로 사용하는 map, filter 등을 사용한다. 이러한 함수의 동작 방법을 알아보고, 지연 처리의 장/단점을 알아보려고 한다. 이 글에서는 이전 글의 inline 관련 내용을 포함한다. 이미 알고 있다면 넘어가고, 이전 글이 궁금하다면 한 번 더 살펴보고 오면 좋을 듯하다. 이 글에서 알아볼 내용 colle
Kotlin inline class는 Kotlin 1.3 버전에 추가되었다. 사용법은 매우 간단하다. 하지만 이와 유사한 kotlin Type aliases도 있다. 이번 글에서는 이 2가지 사용법과 좀 더 좋은 사용법을 함께 알아본다. 이 글에서 알아볼 내용 kotlin Type aliases의 사용방법을 알아본다. Kotlin inline class의
이번 글은 매우 기초적인 내용을 다루는 글이다. Type casting을 다루고, Type casting을 잘 못 활용한 케이스를 안드로이드 코드에서 찾아보았다. Type casting에서 작성한 코드를 기반으로 짧게 코드 가독성을 올리는 방법을 정리했다. 이 글에서 알아볼 내용 Kotlin type casting 기법을 알아본다. Kotlin type c
Kotlin에서는 extensions의 사용은 매우 자유롭다. 기존 클래스에 포함되어 있지 않은 Member를 새롭게 구성해 원하는 형태를 사용할 수 있다. 이번 글은 extensions 정의 시 알아두면 좋을 부분을 소개한다. 이 글에서 알아볼 내용 Kotlin Extensions 정의를 알아본다. Kotlin extensions 활용 시 알아야 할 점을
Kotlin의 extensions 중 use가 있다. 이 use의 알맞은 사용 방법을 알아보려면 Java의 Closeable을 간단하게 알고 넘어가면 좋을 것 같다. 이 글에서는 kotlin에서의 Closeable 처리를 알아보고, use를 간단하게 소개한다. 이 글에서 알아볼 내용 AutoCloseable과 Closeable을 알아본다. kotlin의 e
Kotlin의 interface에서는 상수를 정의할 수 없다. 상수를 허용하지 않는 이유는 Java에서 이유를 찾는 게 빠르다. 이 글에서는 Java의 interface에서 왜 상수를 정의하지 않는 게 좋은지에 대해 알아본다. 수정. java 7이 아닌 java 8에서 interface의 default/static이 추가되어 수정합니다. 이 글에서 알아볼
Kotlin은 class 안에 class(중첩 클래스)를 정의할 때 기본 Nested classes 룰을 사용한다. inner classes가 아닌 이유를 찾기엔 자바를 이해하는 편이 가장 좋다. 이 글에서는 Java의 inner classes와 Nested classes를 통해 코틀린의 Nested classes 이유를 알아본다. 이 글에서 알아볼 내용
Java 변수는 언제나 null을 허용하고, Kotlin 변수는 null을 허용치 않는다. 그래서 타입 정의에서 항상 null을 허용할지 말지를 직접 정의해야 한다. Kotlin은 null을 허용하려면 ?을 추가해 null 임을 알려야 한다. 코틀린 만 사용한다면 별다른 문제는 없다. 하지만 Kotlin은 언제나 Java를 활용할 수 있고, 안드로이드 개발
Java에서 설계할 때 매우 익숙하게 하는 게 있다. 바로 Base를 상속 구조로 만드는 것. 상속은 매우 쉽게 생각할 수 있고, 공통 작업을 분리할 때 매우 유용하게 사용할 수 있다. Kotlin에서는 상속보다는 Delegation을 사용하라고 하는데, 상속 대신 Delegation을 사용할 때의 장점을 알아본다. Kotlin Delegation을 알아보
Java에서 상속은 매우 익숙하다. 앞에서 적은 상속! 악마의 속삭임, 그 속에 숨겨진 문제점, Kotlin에서는 Delegation을 활용해 보자. 글을 보면 알겠지만 상속에는 숨겨진 문제점이 있다. 상속을 지키리 면 open을 통해 열고 닫고를 잘해야 하고, 설계를 잘 해야 하고 주석도 잘 달아주는 게 좋다. 처음의 의도와 달라질 수 있는 환경이라면 상
코루틴을 활용하다 보면 문서에 나오는 것 외에도 다양하게 활용될 수 있다. 하지만 모든 Scope이 정답은 아니고, 상황에 맞는 게 있다. 안드로이드에서는 당연하게도 CoroutineScope을 사용해 lifecycle을 따르도록 개발하는 걸 권장하는데 onDestroy 시점에 cancel() 할 수 있는 형태로 만들어져있다. Lifecycle을 따르는 건