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

Kotlin - 회사에서는 어떻게 도입하고? 학습해볼 수 있을까?

2017년 Google I/O 이후 Kotlin에 대한 관심도가 증가하였고, 샘플 코드와 각종 블로그 포스팅에서 Java보다 Kotlin에 대한 이야기가 많이 나오고 있다, 특히 Jake Wharton은 내부 Android 코드의 Kotlin 적용 적용 프로젝트에 참여로 구글에 입사하였고, 최근에는 자신이 가지고 있던 Retrofit2 모듈에 coroutines을 적용하기도 하였다.

다양한 사례들이 많이 나오고 있지만, 아직은 진행 중인 단계이다. 1.0 정식 버전이 나온 이후로부터 벌써 2년이라는 시간이 거의 끝나가고 있지만 실제 어떻게 적용할 수 있으며, 안정성은 어떤지에 대한 의문이 들 수밖에 없다.

이 글은 주관적으로 작성한 글이며, 일부는 회사에 적용한 사례를 바탕으로 적었다.

Read More