Auto-Value-Gson Tip

요즘 맛들인 라이브러리 중 단연 최고는 Auto-Value 입니다.

단독으로 쓰면 별로 재미없지만 Gson Plugin 과 쓰면 Json 파싱 성능까지 잡을 수 있는 최고의 툴 중에 하나입니다.

참고 링크

Auto-Value 는 그 기능이 매우 좋으나 기존 코드보다 익숙치 않은 부분들이 분명히 있습니다.

실제 object 를 쓰려면 한번 컴파일이 되어 코드가 생성된 뒤에야 쓸 수 있는 불편함이 있습니다.

그중에 Gson 은 자바 코드에서 아래와 같은 팁이 있습니다.

auto-value-type-adapter-live-template (source : http://dubedout.eu/2016/07/11/faster-json-deserialization-autovalue-extension/ )

위의 방식은 Java 상에서 사용하는 방식입니다.

당연히 kotlin 에서는 위의 Live Template 이 동작하지 않기 때문에 별도로 만들어줘야 합니다.

  1. 아래의 코드를 긁어서
@JvmStatic fun typeAdapter(gson: Gson): TypeAdapter<$class$> {
return AutoValue_$class$.GsonTypeAdapter(gson)
}

Live Template 의 코드에 복사/붙여넣기를 합니다.

2. Applicable > Kotlin > Class 를 선택

3. Edit Variable > class 의 Default Value = “Any” 로 선택

Kotlin 에서는 Live Template 이 아직 미약해서 자바에서 했던 것만큼 다양하지 않아 아직은 Custom 으로 해야하는 하는 것이 많습니다.

기회가 되면 하나씩 올려보도록 하겠습니다. :)

2016. 08. 19 추가

@com.google.auto.value.AutoValue
abstract class $class$ {
abstract fun $method$(): $result$
$END$
companion object {
@JvmStatic fun typeAdapter(gson: com.google.gson.Gson): com.google.gson.TypeAdapter<$class$> {
return AutoValue_$class$.GsonTypeAdapter(gson)
}
fun create($method$: $result$): ConnectAuth {
return AutoValue_$class$($method$)
}
}
}

위를 추가하시면 class 부터 자동으로 만들어줍니다.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.