Kotlin 연산자 Overloading

Kotlin에서 기본으로 제공하는 산술 연산자 plus, minus 등을 +, -로 접근한다. 이러한 기법을 Kotlin에서는 Convention이라고 한다.

이번 글에서는 이러한 Convention을 확장하여 사용할 수 있는 Kotlin의 기법을 살펴보려고 한다. 대부분 산술 연산자이며, List와 Map에 접근할 때 사용하는 []등에 대해서 살펴본다.

우선 아래의 표를 기준으로 Overloading이 가능한데 산술 연산자와 단항 산술 연산자이다.

Function code
plus a + b
minus a - b
div a / b
rem a % b
times a * b
not !a
unaryPlus +a
unaryMinus -a
inc ++a, a++
dec –a, a–

Read More

Kotlin lazy property - lateinit/lazy 살펴보기

Kotlin에는 늦은 초기화를 위한 방법 2개를 제공한다.

class의 전역에 아래와 같이 값을 생성하면, 클래스가 만들어지는 시점에 변수를 함께 초기화한다.

class 생성과 동시에 변수가 초기화되면, 재 접근시 빠르게 접근이 가능하여 이득을 볼 수 있다.

class SampleActivity {

	private val sampleAdapter: SampleAdapter =
		SampleAdapter(ImageLoaderAdapterViewModel(this@SampleMainActivity, 3))
}

하지만 위 변수를 꼭 사용하는 게 아니라면 오히려 메모리 손해를 볼 수 있다.

Read More

Kotlin Lambdas

Kotlin을 활용하여 개발을 하면 무조건 만나는 Lambdas 식.

기존 Android 개발에서는 Java 7을 주로 사용하다 보니 Lambda 식을 사용할 일은 없었다.

하지만 Backport 활용으로 Lambda을 적용할 수 있었는데 retrolambda이다.

현재는 Android Studio 3.0 이상에서 구글이 직접 Lambda을 제공하여, 간단하게 적용하는 게 가능하다.

오늘은 Kotlin Lambda 식에 대해서 살펴본다.

Read More

RecyclerView.Adapter 어떻게 접근하면 좋을까? - ViewModel

RecyclerView와 ListView을 통해 수많은 형태의 List를 생성할 수 있다. 동일한 형태의 View을 구현하거나, N 개의 서로 다른 View을 만들기도 한다.

리스트를 구성하는데 유용한 RecyclerView. 이런 RecyclerView을 구성하는데 있어 MVP 또는 MVVM에서 적용해볼 수 있는 방법은 무엇일까?

이번 글에서는 필자가 선택한 ViewModel을 소개하려고 하는데 아무래도 다음의 글이 영향을 미쳤기에 작성하는 글이다.

Read More

Git Branch - 릴리즈 플래닝 - 회사에서 하고 있는 걸 정리해본다.

다니고 있는 회사에서 사용하는 Git branch 관리하는 방법을 정리하려고 한다. 회사 블로그에 작성하는 글이 아니므로, 완전하지는 않지만 대략적인 내용을 정리하려고 한다.

RGP Korea 블로그에서 자세한 내용 확인 가능 - 요기요 Android 개발 Git Branch와 Release Planning

회사에서는 아래와 같이 브런치를 가지고 있다.

  • Master : Release 완료한 버전을 merge 하고, Release 시 Tag를 함께 둔다.
  • Developer Branch : Master Branch 기준으로 티켓 단위 개발 작업을 진행한다.
  • Code-Review Branch : 이 Branch는 언제든 제거하고, 다시 생성될 수 있으며, Code review 목적으로 둔다.
  • Release Branch : 릴리즈 플래닝이 끝나면 작업 완료한 티켓을 머지 한다.

Read More