전체 글82 안드로이드 Jetpack Compose - 3 Jetpack Compose Codelab 노트 1. backgroundColor를 지정하기 위해선 Surface를 사용해야 한다. Surface의 파라미터를 통해 색깔을 지정할 수 있다. modifier: Modifier = Modifier, shape: Shape = RectangleShape, color: Color = MaterialTheme.colors.surface, contentColor: Color = contentColorFor(color), border: BorderStroke? = null, elevation: Dp = 0.dp, content: @Composable () -> Unit Surface 함수의 파라미터 정보이다. 여러 파라미터를 이용해서 뷰의 속성값을 지정할 수 있는 것.. 2022. 3. 29. Coroutine - 4. Cancel, isActive https://kotlinlang.org/docs/cancellation-and-timeouts.html#cancelling-coroutine-execution Cancellation and timeouts | Kotlin kotlinlang.org cancel cancel을 통해 job을 취소할 수 있다. 공식 문서에서 여러 예제에서 cancel을 할 때 어떤 상황인지에 따라서 예상한 결과가 나오는 경우도 있고 안 나온 경우도 있다. launch에 Dispatchers.Default 을 통해 메인 스레드가 아닌 스레드를 사용할 수 있다. val startTime = System.currentTimeMillis() val job = launch(Dispatchers.Default) { var nextPr.. 2022. 3. 24. 안드로이드 Jetpack Compose - 2 Jetpack Compose Codelab 노트 1. Android Studio 내 Compose Template을 통해 손쉽게 설정된 프로젝트를 생성할 수 있음. build.gradle에서 compose 관련 라이브러리가 추가되어있는 것을 확인할 수 있다. 또한 ui.theme 패키지가 생겼다. Color, Shape, Theme, Type이 있는데 진행하면서 어떤 식으로 쓰이느지 알아봐야겠다. 가장 눈에 띄는 건 layout 폴더 자체가 생성되지 않았다는 점. 2. MainActivity에 setContentView 대신 setContent 함수가 있다. 이 함수를 통해 ui를 설정해주는 것으로 보인다. Codelab 설명으론 Composable 함수는 @Composable Annotation을 통해.. 2022. 3. 22. Coroutine - 3. job, join job launch는 job을 반환한다. job 객체를 통해 launch가 종료될 때까지 기다릴 수 있다. 반환받은 job을 따로 실행하지 않아도 원래의 launch처럼 실행된다. job.join()가 없다면 Hello 이후 Done 이후 job이 실행되지만 job.join()을 통해 Hello 이후 job이 종료될 때까지 기다렸다가 종료되고 Done이 나온다. val job = launch { // launch a new coroutine and keep a reference to its Job delay(1000L) println("World!") } println("Hello") job.join() // wait until child coroutine completes println("Done") .. 2022. 3. 17. Coroutine - 2. Structured concurrency, suspend, coroutineScope Structured concurrency : 구조적인, 계층적인 코루틴. 새 코루틴은 한 코루틴스코프 안에서 만들어 질 수 있다. https://kotlinlang.org/docs/coroutines-basics.html#structured-concurrency Coroutines basics | Kotlin kotlinlang.org suspend launch를 통해 코루틴을 만들 수 있는데 이 코루틴안에서 사용할 함수는 suspend 키워드를 사용해야 한다. 그런데 무작정 쓸 건 아니고 suspending 함수일 때에 suspend 키워드를 쓴다. delay와 같은 함수없는 경우라면 suspend를 쓰지 않아도 된다. fun main() = runBlocking {= launch { doWorld().. 2022. 3. 12. Coroutine - 1. launch, runBlocking, delay 코루틴은 뭘까. A coroutine is an instance of suspendable computation. https://kotlinlang.org/docs/coroutines-basics.html#your-first-coroutine Coroutines basics | Kotlin kotlinlang.org 개념적으로 스레드와 비슷하다. 그런데 하나의 스레드에서만 돌아가는 건 아니고 멈췄다가 다른 스레드에서 재개할 수 있다고 한다. launch는 코루틴 빌더이다. 새 코루틴을 만들고 launch내의 코드가 새 코루틴에서 실행되는데 다른 나머지 코드와 같이 실행된다. delay는 코루틴이 잠들게 된다. 이 때 다른 코루틴이 delay로 인해 잠든 코루틴이 쓰던 스레드를 사용할 수 있다. runBl.. 2022. 3. 10. 이전 1 ··· 4 5 6 7 8 9 10 ··· 14 다음