Kotlin Generics 정의

kotlin의 Generics을 정리합니다. Java에서 사용하는 Generics과 동일하게 사용할 수 있지만, Kotlin은 Generics 정의한 클래스를 상속받을 때 명시적으로 지정해야 합니다.

다시 말해 java에서는 제네릭 정의를 하지 않아도 기본 Object로 만들어주지만, 코틀린에서는 명시적으로 꼭 적어주도록 만들었습니다.

Read More

Kotlin Higher-Order Functions 사용방법

Kotlin에는 Higher-Order Functions이 제공됩니다.

Higher-Order Functions은 함수를 변수로 넘겨주거나, 이를 반환하는 것을 말합니다. 아래 코드는 레퍼런스 문서에 나와있는 lock 함수를 그대로 옮겨왔습니다.

fun <T> lock(lock: Lock, body: () -> T): T {
    lock.lock()
    try {
        return body()
    }
    finally {
        lock.unlock()
    }
}

Read More

Android Architecture - MVC에서 MVP에서 MVVM으로 가는 길

Android MVC/MVP/MVVM가 소개되었고, 다양한 방법으로 이러한 Architecture를 적용하게 됩니다.

구글에서는 테스트 가능한 형태를 만들어주기 위해서 Android Architecture Blueprints을 소개해주었습니다. 하지만 모두가 이러한 방법을 따르는 것은 아닙니다.

이번 글에서는 MVC > MVP > MVVM으로 순차적으로 넘어가게 되었던 내용을 정리해보았습니다.

제 생각을 정리한 글입니다. 단순 참고해주세요. RxJava/data-binding 등의 이야기는 별개입니다.

Read More

Android Studio 3.0 코틀린 프로젝트 생성하기

2017년 5월 Google I/O에서는 안드로이드에서 사용할 수 있는 새로운 언어로 Kotlin을 새로이 추가하였습니다.

kotlin-01

Google I/O 2017 행사에서 직접 촬영한 사진입니다. 코틀린 정식 언어 채택 때 엄청난 환호가 함께 하였습니다.

이 글은 2017년 6월 6일에 작성한 글을 수정하였습니다.

JetBrains IntelliJ에서는 이미 포함되어 배포되었는데 이번 Android Studio 3.0부터는 별도의 플러그인을 설치하지 않고도, 플러그인이 포함되게 되었습니다.

Read More

Android Kotlin 시작하기

Google I/O 2017 이후 Kotlin은 안드로이드를 개발할 수 있는 또 하나의 정식 언어가 되었습니다.

기존에 작성하였던(2016. 07. 31) 글을 최신으로 업데이트합니다.

Android Studio 3.0 정식 버전이 나오면 다음 글은 의미가 없어지긴 하지만 플러그인 설치하는 과정을 다시 정리합니다.

Read More