Sitemap

Effective Kotlin 글 정리 내역

6 min readNov 1, 2020

Droid Knights 2020에서 발표하기 위해 정리하기 시작한 글과 영상을 포함해 지금까지 작성했던 Effective Kotlin 관련 글 정리 내역이다. 글 추가 시 업데이트 예정

다음 책을 참고하세요.

이 글들은 다음의 책을 함께 참고해 작성하는 글들입니다.

드로이드 나이츠 2020에서 발표한 발표 자료

드로이드 나이츠 2020에서 발표한 영상

블로그에서 정리한 글

이 목록은 순서로 다시 정리했다. 추후 글 추가 시 중간중간에 포함될 수 있다.

읽기 좋은 Kotlin 코드! Property와 Scope Functions!

  • 읽기 좋은 코드를 위한 코드 컨벤션과 Android Studio의 코드 정리 설정을 살펴본다.
  • 코틀린의 Property 사용 시 주의할 점을 알아본다.
  • Scope functions의 활용도를 어디까지 허용하는 게 좋을지 알아본다.

Java value는 언제나 null이다. 이를 Kotlin에서 활용 시 주의할 점을 알아본다.

  • Java는 항상 null 임을 알아본다.
  • Android SDK 사용 시에는 Nullable로 처리해야 할까?
  • Java에서 Kotlin의 값을 호출 시에는 null에 주의해야 하는데 알아본다.

Kotlin 안전한 Type casting을 알아보고, 코드 가독성도 올려보자.

  • Kotlin type casting 기법을 알아본다.
  • Kotlin type casting의 잘 못 사용한 케이스를 알아보고, 개선점을 정리했다.
  • Type casting을 통해 코드 가독성을 올리는 방법을 짧게 정리했다.
  • 간단한 scope을 활용하는 형태를 알아본다.

Kotlin interface에는 왜 상수를 정의할 수 없을까?

  • Java interface의 상수를 알아보고, 문제점을 알아본다.
  • kotlin interface의 상수 정의가 왜 없는지를 Java를 통해 알아본다.
  • Java 8의 interface에 추가된 default/static 사용에 대해 알아보고, 코틀린의 default 함수도 알아본다.

Kotlin과 Java의 Nested and Inner Classes를 알아보고, Nested classes를 왜 사용해야 하는지 알아본다.

  • Java Inner classes와 Nested classes를 알아본다.
  • Kotlin의 Inner classes와 Nested classes를 알아본다.
  • Java의 어떤 문제로 코틀린은 Nested classes가 기본인지를 살펴본다.

코틀린 data class에서 자동으로 처리하는 equals와 hashCode를 알아보자.

  • data class는 왜 사용하는지, Equals, hashCode를 왜 재정의 해야 하는지 살펴본다.
  • 값 비교할 때 사용하는 ==(equals)와 메모리 비교를 위한 ===를 알아본다.

data class를 활용하여 RecyclerView.DiffUtil을 잘 활용하는 방법

  • RecyclerView.DiffUtil을 간단하게 알아본다
  • data class 활용한 DiffUtil 사용 시 알아두면 좋을 부분을 알아본다.

Kotlin typealias와 inline class를 알아보고 적절한 사용법을 알아보자.

  • kotlin Type aliases의 사용방법을 알아본다.
  • Kotlin inline class의 사용방법을 알아본다.

Kotlin inline class와 inline functions을 알아보고, 적절하게 사용하는 방법을 살펴보자.

  • inline class를 간단하게 살펴본다.
  • inline functions을 간단하게 살펴본다.
  • inline functions 활용성을 높이기 위한 부분을 좀 더 살펴본다.

상속! 악마의 속삭임, 그 속에 숨겨진 문제점, Kotlin에서는 Delegation을 활용해 보자.

  • 상속을 알아보고, 상속의 단점을 알아보다.
  • Composition을 알아본다.
  • Kotlin의 Delegation을 알아본다.

안드로이드의 익숙한 BaseXXX class를 알아보고, 설계의 중요성을 알아보자.

  • 안드로이드에서 Lifecycle을 따를 수 있는 상속을 계획할 수 있도록 글을 작성
  • 몇 가지 Base를 살펴보고 좀 더 좋은 방향을 알아보자.

Kotlin extensions 정의를 알아보고, 활용 시 주의할 부분을 알아보자.

  • Kotlin Extensions 정의를 알아본다.
  • Kotlin extensions 활용 시 알아야 할 점을 알아본다.
  • Kotlin extensions을 특정 클래스 내에 정의할 때 주의할 점을 알아본다.

Kotlin extensions use를 알아보고, 사용법을 알아보자.

  • AutoCloseable과 Closeable을 알아본다.
  • kotlin의 exception 처리를 알아본다.
  • kotlin의 use를 이용하자.

Kotlin Collections에서 지연 계산(lazy)의 이점을 알아보자.

  • collection 사용에 map, filter 등의 api를 알아본다.
  • Collection에도 지연 계산이 가능한데, 지연 처리를 알아본다.
  • inline을 활용하는 collection 확장 함수들이 성능이 더 좋을지, 지연 처리가 더 좋을지 살펴본다.

Kotlin Coroutines의 runBlocking은 언제 써야 할까? 잘 알고 활용하자!

  • runBlocking을 UI에서 사용해도 괜찮을까?
  • runBlocking의 내부 코드를 알아보자.
  • 그럼 runBlocking은 언제 쓰는 게 좋을까?

Kotlin Coroutines의 GlobalScope을 어떻게 사용할 수 있을까? — 사실 추천하지 않는다.

  • GlobalScope의 내부 코드를 살펴본다.
  • GlobalScope을 이용한 Android UI 코드를 살펴본다.
  • GlobalScope을 사용할 때 그나마 할 수 있는 예외를 살펴본다.

Kotlin CoroutineScope을 알아보고, cancel 처리에 대해서 알아보자.

  • CoroutineScope 사용 방법을 알아본다.
  • CoroutineScope 안에서 동작하는 무한 루프에서의 cancel의 동작을 알아본다.
  • AAC-ViewModel의 viewModelScop을 알아본다.

--

--

No responses yet