이전에 Java 8 기능을 Android 에서 써보는 것에 관한 포스팅을 했었는데요.
Java 8 기능을 Android 에서 써봅시다.
지난 주말에 하던 일의 1차 마무리가 되어서 간만에 시간이 난 김에 평소 궁금하던 내용을 조사해보았습니다.....
medium.com
최근 Android Studio 2.4.0 Preview 5 부터 Jack 툴체인이 아닌 기존 툴체인에서 Java 8 을 지원하기 시작했습니다. (지원발표상으로는 Preview 4 부터이지만 버그때문에 제대로 쓸 수 없었고, Preview 5 부터 잘 동작했습니다.)
안그래도 Jack 툴체인의 성능문제에 대한 포스팅도 썼었는데요.
기왕 Android Studio 2.4 자체적으로 지원이 되기 시작했으니 기존 작성했던 내용도 정리를 해볼 필요가 생겼습니다.
기존과 달라진 점은 Jack enabled 를 제거하는 것 뿐입니다.
그리고, Android SDK 25 버전 이상을 쓰는 것이고요.
이 점을 반영해서 기존 예제코드를 수정해두었습니다.
(현재 기준으로 최신 버전인 Android Studio 2.4.0 Preview 6 로 작성되었습니다.)
며칠 써보면서 느낀 점은 기존 Jack 툴체인의 복잡함을 없애면서 기존 구현내용을 자연스럽게 기존 툴체인에 녹여낸 것 같다는 점입니다. (Syntactic Sugar 를 걷어내는 과정으로 desugaring 과정이 추가되었습니다.)
성능상 무리도 없어보이고, 다른 플러그인과의 연동에도 무리가 없습니다.
이제 모든 개발자들이 원하던 모습으로 정리된 것 같네요.
(그리고, 당연하게도 Retrolambda 는 쓸 필요가 없어졌습니다. 안녕, 레트로람다~)
하지만, 저는 Agera 와의 연동을 고려할때에나 Java 8 을 쓸까 이젠 모든 코드베이스가 Kotlin 으로 작성되었기 때문에 Java 8 API 를 꼭 써야만 하는 경우가 아니라면 큰 의미가 없군요. (오늘도 기승전코틀린~)