목록kotlin (5)
개발자이야기
kotlin coroutine Android 어플리케이션은 Background Thread 를 만들어주지 않으면 Main Thread에서 모든일을 처리 한다는 것을 대부분 알고 계실 것 입니다. Main Thread는 이미 ui를 출력해주는 작업 만으로도 많은 일을 하고있는 셈 입니다. 만약 오랜 시간이 걸리는 작업을 Main Thread에서 처리한다면 ANR(Application Not Responding)을 만나게 될 것 입니다. 그래서 우리는 Main Thread의 부담을 덜어주기 위해 네트워크 작업, 시간이 오래 걸리는 작업 등을 Multi Thread 환경에서 작업합니다. 우리는 이러한 비동기 처리를 위해 android 에서 AsyncTask, RxJava를 사용하곤 했습니다. 코루틴이란? 코루..
kotlin data model 쉽게 만들기 이번엔 android studio에서 플러그인을 이용해 json 정보를 이용하여 data model 을 쉽게 만들 수 있는 방법 한가지를 소개하고자 합니다. 플러그인 설치 우선 위의 JSON To Kotlin Class 플러그인을 설치합니다. android studio 재실행 후 플러그인 실행 JSON data 입력 Advanced -> Annotaion 카테고리 여기서 우리가 흔히 사용하는 Gson 혹은 Jackson 기호에 맞게 선택하여 주면 됩니다. Class Name 작성 후 Generate 위처럼 쉽게 dataModel을 만들 수 있습니다. 평소 직접 손으로 작성하기도 하고 SerializedName 어노테이션도 빼먹고 하다보니 Release apk ..
map, flatMap 유용한 함수 map과 flatMap에 대해 kotlin 코드로 알아보겠습니다. map 코틀린 Collections 에 정의된 함수 먼저 간단하게 살펴보겠습니다. public inline fun Iterable.map(transform: (T) -> R): List { //수신객체인 this 로 mapTo 함수 호출 return mapTo(ArrayList(collectionSizeOrDefault(10)), transform) } public inline fun Iterable.mapTo(destination: C, transform: (T) -> R): C { for (item in this) //수신객체인 this 를 반복 destination.add(transform(item..
High-order functions 고차함수는 함수를 매개변수로 사용하거나 함수를 반환하는 함수이다. 위의 내용을 한번 알아봅시다. fun main(args: Array) { highFunctions { print(it) Unit) { function(20) Unit 은 java의 void와 같습니다. (고차함수의 반환 유형은 생략할 수 없습니다.) 위와 같이 매개변수의 함수(function(20))를 호출 함으로써 코드블럭이 실행됩니다. fun main(args: Array) { val value = highFunctions(30) { 코드블록 "값은 $it*3" R): R { return function(input) } 위와 같이 고차함수를 호출하여 코드블록 결과값을 반환하여 return 시켜주는 ..
kotlin scope functions 코틀린 범위지정 함수 5가지에 대해 알아 보겠습니다. 보통 let ,with, apply 를 많이 써왔지만 명확한 기준을 잡고 싶어 한번 분석해 보려고 이 글을 작성합니다. 해당글은 코틀린 공식 문서의 예제를 기반으로 분석및 작성 합니다. let Kotlin 표준 라이브러리 함수 let은 범위 지정 및 null 검사에 사용할 수 있습니다. 객체에서 호출되면 람다식의 코드 블록을 실행하고 마지막 표현식의 결과를 반환합니다. 객체는 참조 it(기본적으로) 또는 사용자 정의 이름으로 블록 내에서 액세스 할 수 있습니다. 위 내용은 kotlin 공식문서에서 설명해 주는 내용입니다. public inline fun T.let(block: (T) -> R): R { cont..