안드로이드 람다 적용하기

안드로이드 람다 적용하기
안드로이드에서 람다를 적용하는 방법을 정리한다.
현대의 컴파일러는 충분히 똑똑해졌다.

문장의 종결인 세미콜론(;)도 필요 없어 지고 심플한 코드를 작성하여 가독성이 더 좋은 코드를 작성할 수 있게 되었다.

자바는 타 언어에 비해 세련되지 못한듯 하지만 버전 업이 되면서 문법의 빈약함을 차츰 보완해 내는 듯 한다.

자바 8부터 람다라는 코드 규칙을 지원한다. 람다가 무엇인지 또 어떤 장점이 있는지 요약 한 후 안드로이드에 적용하는 방법을 기술하고자 한다.

람다에 대해 잘 설명한 글이 있어 링크를 첨부한다.
http://www.hanbit.co.kr/network/view.html?bi_id=1961

글에서 람다를 사용하는 이유의 핵심은 아래와 같다.

비즈니스 로직 하나를 위해 틀에 박힌 코드와 의미 없는 구현을 하게 만드는 것이다.
코드를 작성하다보면 러시아 인형인 마트료시카같은 느낌이 들 때가 있다.

특정 비즈니스 로직을 한 줄 추가하기 위해 코드 블럭을 작성하고 그 내부 블럭을 다시 작성하여 모든 껍데기가 완성되면 비로서 비즈니스 로직 한 줄을 추가하여 코드를 완성한다.

별 의미도 없는 틀에 박힌 코드를 작성하고 정작 필요한 코드는 1줄로 끝날때 그 허무함을 달래줄 수 있는 대안이 람다이다.

전체적인 코드의 불필요한 분량을 효율적으로 줄여 가독성을 대폭 향상 시켜줄 수 있는 대안 또한 람다이다.

안드로이드에서 사용하기 위해서는 Gradle Plugin을 설정해야 한다.

https://github.com/evant/gradle-retrolambda

build.gradle 파일에 다음과 같이 추가한다.

buildscript {
  repositories {
     mavenCentral()
  }

  dependencies {
     classpath 'me.tatarka:gradle-retrolambda:3.2.5'
  }
}

// Required because retrolambda is on maven central
repositories {
  mavenCentral()
}

apply plugin: 'com.android.application' //or apply plugin: 'java'
apply plugin: 'me.tatarka.retrolambda'
android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

프로가드 설정
-dontwarn java.lang.invoke.*

댓글

이 블로그의 인기 게시물

ViewPager offscreenPageLimit 메모리 상태

ASP에서 C# 언어로 만든 DLL 호출

eskimo esim 사용기 - 일본 / 오사카(23/08/06 ~ 23/08/08)