Skip to content

kotlin 검토

suribada edited this page Aug 16, 2017 · 1 revision

배경

  • 구글에서 안드로이드 공식 언어로 지정하고 이후에 지원이 더 잘 될 것으로 예상
  • 개발하고 이후 몇 년간 유지보수해야 한다면 최신 언어 경향을 적용하는 게 좋지 않을까

사용하는 곳

  • 레진 코믹스
  • 트래블 라인
  • 클로버(코틀린과 자바가 반반) : 자바에서 코틀린 접근은 되지만 조금 번거로워서, 참조 형식을 단방뱡으로 해야 함

장점

  • syntactic sugar
  • 자바 8이 아니어도 nullable type, collection extension method 사용
  • 함수형 언어의 장점(고차 함수를 사용하면 기존 로직을 개선해나갈 수 있음)
  • extension function이 있어서 Utils 클래스가 제거되고, reverse(take(3, drop(2, list))) 를 list.drop(2).take(3).reverse() 식으로 생각의 순서대로 구성할 수 있음
  • 꼬리 재귀(tail recursion)
  • 현재 experimental이지만 coroutine(경량 스레드)이 지원되고 있어서, 이를 적용하면 리소스를 적게 사용하면서도 가독성이 좋은 프로그램을 만들 수 있음
  • DSL(domain specific language) 활용: 마시멜로 권한 체크 등?
  • (인용)apk 용량 추가 1mb이내. 메서드 카운트 6000개: groovy나 scalar로 안드로이드 개발 가능하지만 문제점이 apk 용량이었음

단점

  • 튜토리얼로 일주일이면 기본은 할 수 있지만, 한달은 계속 사용해야 익숙해질 듯 함
  • (인용)빌드 시간은 15% 정도 더 소요된다고 함
  • 함수형 언어에 익숙해져야 함

Android

RxJava

Kotlin

Clone this wiki locally