본문 바로가기

분류 전체보기107

[Kotlin/Coroutine] 3. Composing suspending functions 중단 함수 구성에 대한 다양한 접근법 Sequential by default 순차적으로 실행 두개의 중단 함수가 다른 곳에 정의되어있다고 가정하자. 코드 suspend fun doSomethingUsefulOne(): Int { delay(1000L) // pretend we are doing something useful here return 13 } suspend fun doSomethingUsefulTwo(): Int { delay(1000L) // pretend we are doing something useful here, too return 29 } 위의 두가지 중단함수가 순차적으로 실행되기 위해서는 어떻게 해야할까? 코드 val time = measureTimeMillis { val one .. 2023. 10. 23.
[Kotlin/Coroutine] 2. Cancellation and timeouts Cancelling coroutine execution 코루틴의 실행 취소 오랜시간동안 실행되는 애플리케이션에서 백그라운드 코루틴관리를 어떻게 해야할까? 사용자가 코루틴을 시작했던 페이지를 닫고, 더 이상 결과가 필요하지 않다면 해당 작업을 취소해야 할 것이다. launch함수를 사용하면 Job을 리턴하고, 이것으로 실행 중인 코루틴을 취소할 수 있다. 코드 fun main() = runBlocking { val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // delay a bit println("main: I'm tired of waiting!") job.cancel(.. 2023. 10. 22.
[Kotlin/Coroutine] 1. Coroutines basics Coroutines guide 코루틴 공식 가이드 문서를 읽고 요약 정리해보려 한다. 목표는 Kotlin Coroutine을 완벽하게 이해하는 것!! 더불어, 영어로 된 가이드 문서를 읽는 연습도 할 것이다! : ) Coroutines basics 코루틴은 중단가능한 계산의 인스턴스이다. 스레드와 비슷한 개념이지만, 코루틴은 특정 스레드에 바인딩되지 않는다. 하나의 스레드에서 실행을 중지하고, 다른 스레드에서 다시 실행할 수 있다. 코드 fun main() = runBlocking { // this: CoroutineScope launch { // launch a new coroutine and continue delay(1000L) // non-blocking delay for 1 second (def.. 2023. 10. 19.
[Compose] 컴포즈로 iOS앱도 만들 수 있다고? 오늘은 새로운 시도를 해볼 것이다..! 2023년 5월 30일 Compose Multiplatform에서 iOS 알파버전이 출시되었다. 아직 알파버전이라 개선할 점이 많다고 하지만 Android 개발자로서 너무나도 설렌다.. 직접 Compose Multiplatform 템플릿을 실행해보고자 한다. 아래에는 설명이 요약되어 있으니, 직접 실행해보고 싶다면 위 링크를 참고하는 것을 추천합니다. 1. 환경 설정 필요 조건 iOS앱을 실행시키려면 macOS 환경이 필요하다. 이외에도 Xcode, Android Studio, The Kotlin Multiplatform Mobile plugin, The CocoaPods dependency manager 이런 것들이 준비되어 있어야한다. 조건 확인 위 조건을 모두.. 2023. 10. 17.