Kotlin
-
Coroutine, Restful Api Ex (HttpUrlConnection사용)Kotlin 2022. 7. 28. 15:55
Coroutine으로 Restful Api, HttpUrlConnection 적용하여 web server접속, 2022.08.07 - HttpURLConnection 2022.08.07 RxJava HttpUrlConnection 2022.07.28 - Kotlin에 Coroutine사용 기반 준비 AndroidManifest.xml 에 추가 인터넷 권한 추가 (AndroidApi23이상에서는 필요 없다?) CleartextTraffic (필수 설정 아님) UserAgent (선택사항) 웹 사이트에서는 앱을 고유하게 식별할 수 있게 하기. httpcon.setRequestProperty("User-Agent", "test-rest-app-v0.1"); 별도Thread 필요 URL.openConnectio..
-
Async, Launch, Cancel, CoroutineScopeKotlin 2022. 7. 28. 14:39
Async, Launch, Cancel, Dispatchers, CoroutineScope, GlobalScope 2022.07.28 - Kotlin에 Coroutine사용 async 상태관리와 실행된 함수의 리턴값을 얻을 수 있다. Deferred로 감싸서 반환된다. CoroutineScope(Dispatchers.Main).launch { val deferredRet: Defrred = async { 1 2 // 마지막 줄 값 반환 } val val1 = deferredRet.await() // await는 일시중단가능한 내부에서 사용가능. println(val1) //출력: 2 } launch 상태관리 가능, 만든 함수의 리턴값을 반환하지 않는다. 반환값 Job val jobmain = Corout..
-
Kotlin에 Coroutine사용Kotlin 2022. 7. 28. 13:41
Kotlin에 Coroutine사용 2020.11.07 - Coroutine 코루틴 2016.06.24 - Unity3d StartCoroutine() 코루틴 코루틴 Kotlin초기 버전에는 코루틴이 없다. 다른 언어에서 확립된 개념을 기반으로 코루틴이 추가되었다. 코루틴은 Kotlin 버전 1.3에 추가되었다 https://kotlinlang.org/docs/coroutines-guide.html Android KTX 사용준비 Android 프로젝트에서 앱의 build.gradle(Module: Xxx.app) 파일에 다음 종속 항목을 추가한다. dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9' }..
-
CoroutineContext, DispatchersKotlin 2022. 7. 28. 10:56
CoroutineContext, Dispatchers 에는 Main, IO, Default의 세 가지가 있다. - Main: 메인 쓰레드에 대한 Context이며 UI와 상호작용에 좋다. Toast 등의 View 작업에 사용. - IO: 네트워크, DB, 디스크 등 작업을 수행할 때 사용된다(View obj 작업을 시도하면 오류). - Default: 안드로이드 기본 Threadpool사용, CPU를 많이 쓰는 작업에 좋다(크기가 큰 리스트 정렬, 복잡한 연산, 필터링을 수행하는 등 무거운 연산이 필요한 작업 좋다) - Unconfined: 호출한 컨텍스트를 기본으로 사용, 중단 후 다시 실행 때 컨텍스트가 바뀌면 따라 간다. 2022.07.28 - CoroutineScope
-
withKotlin 2022. 7. 28. 10:27
with함수 내에서 this를 사용하지 않고도 입력받은 객체(receiver)의 속성을 변경할 수 있다. with(T) 타입으로 class을 받으면 {} 내의 블럭 안에서 곧바로 멤버변수들에 접근할 수 있다. with는 non-null의 객체를 사용하고 블럭의 return 값이 필요하지 않을 때 사용한다. 주로 객체의 함수를 여러 개 호출할 때 그룹화하는 용도로 활용된다. class C1 { var mV1: int = 0 var mV2: int = 1 } val c = C1() with(c) { println(mV0) println(mV1) //자기자신을 반환해야 할 경우 this를 사용. }
-
Kotlin letKotlin 2022. 7. 28. 10:05
let 함수는 스스로의 객체를 인자로 받아 사용한다, 중괄호 내부에서 해당 객체를 it 키워드로 호출 또는 명시적으로 변수명을 지정하여 호출 할 수 있다. var s1 = "str" s1.plus("2") println(it) //출력: str s1 = s1.plus("3") println(it) //출력: str3 s1.plus("4").let { println(it) //출력: str34 } s1.plus("5").let { sx -> println(sx) //출력: str35 } 리턴값 내부의 마지막 줄에 식이 아닌 변수나 객체 단일로 존재할 시, 그 값이 반환값이다. var s1 = "str" var s2 = s1.let { it.plus("k") "kkk" } println(s2) //출력: k..