2018 Google IO - Developer Keynote

2018 Google IO - Developer Keynote

2017년에 이어 2018년에도 Google I/O 참여 기회가 생겨 참여 중에 있다.

작년보다 2주 이른 5월 초에 진행하고 있는 Google I/O는 머신 러닝의 AI for everyone!이다. 이미 모든 것에 머신 러닝이 적용되었고, 개발자는 사용할 수 있다.

필자는 안드로이드 개발자이니 안드로이드 관련 퓨처를 소개하는 Android Developer Keynote을 추가해보았다.

Read More

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