Kotlin Study 18

Kotlin Coroutine 간단 사용법

* Coroutine Thread - Main : 말 그대로 메인 , UI 작업시 사용해야 하는 스레드 - IO : 백그라운드 작업할때만 사용해야 하는 스레드 (UI 절대 포함 안됨) - Default : 계산을 오래 하거나 for 문 등 오래 계산 되어야 하는 작업들 사용시 쓰는 스레드 ** Coroutine function - launch : - 바로 실행 , 실행결과 반환 안됨(Job 객체만 반환) - join 으로 완료 대기 가능한 특징있음 - async : - 실행결과 Deffered 통해서 반환하며 await 를 사용해서 결과값을 받을 수 있음 - await 는 작업이 완료 될때까지 기다리는 특지있음 예제 : CoroutineScope(Dispatchers.Main).launch { var a..

Kotlin Study 2023.12.28

Kotlin , null 처리 방법

Java 와는 다르게 Kotiln 에서는 null를 애초에 차단시키기 방안을 마련해주었다. 일단 Kotlin 은 테스트 한다고 변수에 null 넣는 행위 자체를 NPE 발생 시켜버리기 때문에 왠만해선 Kotlin 환경에서 null 을 사용하기 어렵다. 그래도 명시적으로 예외처리를 하는부분은 다르기 때문에, null 처리를 위한 방법은 아래와 같이 있다. - 명칭 : null safe operator - 코드 : ?. - 코드예제 : fun getDataSafe(value:String?){ val result:String? = value?.length?() Log.d("testLog","result : ${result}") } - 설명 : value 가 null 일때, Java 같은 경우에는 null에 관..

Kotlin Study 2021.07.05

[각기 다른 google-services.json 설정파일의 FirebasePoject, 한 App 에서 사용하기]

* 목표 : - 각기다른 프로젝트 A,B 에 등록된 a_app에서 CloudStore 데이터 값 가져오기 (!Firebase는 기본적으로 한개의 프로젝트 안에 여러개의 App을 등록하여 사용 할 수있는 구조이다.) * 준비물 : - 안드로이드 스튜디오로 생성한 a_app - Firebase CloudStore를 사용 할 준비가 되어있는 프로젝트 A(A_proj) - a_app 프로젝트 A에 등록 시키기 - Firebase CloudStore를 사용 할 준비가 되어있는 프로젝트 B(B_proj) - a_app 프로젝트 B에 등록 시키기 - A_proj 의 google-services.json 파일의 내용과 B_proj 의 google-services.json 파일을 합친 google-services.jso..

Kotlin Study 2021.05.07

코루틴 간단하게 바로 사용 할 수 있는방법

class MainActivity():Activity(){ override fun onCreate(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) main() } fun main() = runBlocking{ val test = launch{ useFunction_1() useFunction_2() delay(3000L)//위의 함수들이 시간이 걸리다고 가정함; } test.join() useFunction_3() } fun useFunction_1(){ //do 1 } fun useFunction_2(){ //do 2 } fun useFunction_3(){ //do 3 } } 결과값 : useFunction_1 useFunction_2..

Kotlin Study 2021.03.12

CallBack 함수 in Kotlin 사용 예

B class -> A class callback 호출 할때, * A class 준비 : A class { ... var b = B() b.setListener{name, age -> Log.d("log","name : ${name}") Log.d("log","age : ${age}") } ... } * B class 준비 : B class { ... private var listener: ((String, Int) -> Unit)? = null ... fun setListener{listener: (String,Int) -> Unit) { this.listener = listener } ... listener?.invoke("만식이",10)// A class 전달할 곳에서 호출 } 위처럼 A 에서는 호..

Kotlin Study 2021.01.26