본문 바로가기

Language/Kotlin

(19)
[Kotlin] 코루틴 #3 - suspend Function (중단함수) 코루틴 #3 - suspend Function (중단함수) 중단 함수(Suspending Function) 와 일반 함수(Sequential function) Coroutine 이전 글 코루틴 #1 - 기본 코루틴 #2 - CoroutineContext와 CoroutineScope란? 기본 순차 실행 (Sequential by Default) 기본적으로 Code & Function은 순차적(Sequential)으로 수행 이런 개념은 Coroutine 내부에서도 동일하게 적용됩니다 일정시간 delay 후 Integer 값을 반환하는 두개의 suspend(중단) 함수 생성 suspend fun testOne(): Int { delay(1000)// 1초 대기 return 20// 20 반환 } suspend..
[Kotlin] 코루틴 #2 - CoroutineContext와 CoroutineScope란? 코루틴 #2 - CoroutineContext와 CoroutineScope란? CoroutineContext와 CoroutineScope란 무엇인가? Coroutine 이전 글 코루틴 #1 - 기본 CoroutineContext Coroutine(코루틴)을 어떻게 처리할 것인지에 대한 여러가지 정보(Element)를 포함 -> Element의 집합 CoroutineContext는 Interface로, 코루틴에 대한 설정 요소(Element)를 등록하고 Scope의 속성이 된다 CoroutineContext는 interface인데, 그 구성을 한번 살펴보기 위해 CoroutineContext.kt파일에서 가져왔습니다. public interface CoroutineContext { /** * Returns..
[Kotlin] 코루틴 #1 - 기본 코루틴 #1 - 기본 Kotlin Coroutine 공식문서 바로가기 Coroutines Overview - Kotlin Programming Language kotlinlang.org 코루틴 Coroutine? Coroutine은 Thread / AsyncTask / Rx Background 작업을 대신할 수 있는 Asynchronous/Non-Blocking Programming 제공하는 경량스레드(Light-Weight Threads) Background Task가 필요한 대표적인 경우 1. 네트워크 Request (Retrofit, OkHttp3, UrlConnection 등) 2. 내부 DB 접근 (Room, SQLite 등) Coroutine - Thread 차이점 둘 모두 Background..
[Kotlin] 기본 스톱워치 - 'timer / runOnUiThread()' Kotlin, 스톱워치 구현하기 timer 와 runOnUiThread()를 사용해서 스톱워치 구현 둥근모양의 버튼은 FloatingActionButton 사용 [ Github, 깃허브 전체소스 ] posth2071/StopWatch_Kotlin Contribute to posth2071/StopWatch_Kotlin development by creating an account on GitHub. github.com timer 코틀린에서 기본으로 제공하는 타이머(timer) 기능 timer는 UI스레드(메인)가 아닌 백그라운드 스레드(워커 스레드)에서 동작하는 기능이므로 기본적으로 UI 조작이 불가능 백그라운드 스레드에서 UI조작을 위한 방법에는 Handler를 호출 및 runOnUiThread() 함..
[Kotlin] Anko 라이브러리 사용하기 Kotlin, Anko(앤코) 라이브러리 Anko 라이브러리 코틀린 개발한 JetBrains에서 만든 라이브러리(Library), 기본 코드작성을 편리하게 도와주는 기능 4가지의 라이브러리로 구성 Anko Commons : 인텐트, 다이얼로그, 로그 등을 편리하게 사용하는 라이브러리 Anko Layouts : 안드로이드 레이아f9f2f4웃을 코드로 쉽게 작성하는 라이브러리 Anko SQLite : SQLite를 쉽게 사용하는 라이브러리 Anko Coroutines : 코루틴을 쉽게 사용하는 라이브러리 Anko 라이브러리의 설정 방법 등 사용 방법 참고 Gradle '의존성 추가' build.gradle(Module: app) 파일에서 dependencies (의존성 추가) : implementation ..
[Kotlin] Scope 함수 - 'run, with, apply, let, also' Kotlin - Scope(스코프)함수 정리 코틀린에서 제공하는 여러 함수 중에서 기본적인 Scope(스코프) 함수 5종에 대한 정리 종합 정리 먼저보기 apply / also 두 함수 모두, 인스턴스(객체)를 리시버 객체로 전달, 반환 값으로 인스턴스(객체)를 반환 apply()는 참조연산자(it) 사용x, 직접적인 접근 name="", age=1 등 also()는 참조연산자(it) 사용, 사용하지 않으면 접근불가 it.name"", it.age=1 등 run / let 두 함수 모두, 인스턴스(객체)를 리시버 객체로 전달, 반환 값으로 결과 값(마지막 라인) 반환 run()는 참조연산자(it) 사용x, 직접적인 접근 name="", age=1 등 let()는 참조연산자(it) 사용, 사용하지 않으면 ..
[Kotlin] 기본 - Null 처리 '? / ?. / !! / ?: / lateinit / lazy' Kotlin, Null 처리 Null 허용 (? 연산자) 코틀린(Kotlin)에서는 기본적으로 Null값을 허용하지 않으므로, 기본적으로는 모든 객체가 생성과 동시에 값을 초기화 필요 초기화하지 않아 에러가 발생하는 예시 val a :String// Error, 초기화 필요 Null 값으로 초기화해서 에러 발생하는 예시 val a :String = null// Error, 기본적으로 Null값 허용 x ? 키워드 - @Nullable 변수의 자료형 오른쪽에 ? 연산자를 명시적으로 사용하면, 해당 변수는 Null값을 허용하는 의미로 에러 미발생 val a :String? = null// OK, ? 키워드로 @Nullable 의미 안전한 호출 (?. 연산자) ?. 연산자는 Null Safe operator의..
[Kotlin] 코틀린 기본 - 클래스 'constructor / init / default' Kotlin, 코틀린 기본, 클래스 Kotlin 코틀린 클래스의 생성자(Constructor) / init (초기화) / 기본값 (Default) 클래스 클래스와 인스턴스의 개념 : 클래스 - 붕어빵 틀 인스턴스(객체) - 붕어빵 실체 자바에 비해 훨씬 간결한 클래스 문법 : 자바(Java)는 Model의 경우 멤버변수의 Getter/Setter, toString(), equals() 많은 수의 메서드를 선언 Kotlin에서는 '프로퍼티' 라는 속성의 개념이 멤버변수 + Getter/Setter를 자동으로 만들어줌 (보이지않게) 클래스 선언 : Kotlin에서 클래스는 기본적으로 public 접근지정자로 선언 (생략가능) // 기본 클래스 선언, public 생략 class Person { } // 인스..