본문 바로가기

분류 전체보기20

[Android] Coroutine Builder, Suspend 함수 이해하기 코루틴을 사용하기 위해서 CoroutineScope 를 생성했다면 Coroutine Builder 를 통해 코루틴을 실행할 수 있습니다. Coroutine Builder 에는 launch(), async() 등 있습니다. Suspend 함수의 경우 말 그대로 일시중단 을 의미합니다. launch(), async() 로 실행한 코루틴은 내부적으로 작업이 종료될 때까지 코루틴이 일시중단 됩니다. 이 때 실행되어야 하는 로직이 코루틴 내부에 존재하지 않고 외부 함수로 존재한다면, 해당 함수가 일시중단 (suspend) 된다는 표시를 해주기 위해 사용하는 키워드 입니다. launch 코루틴을 실행할 때 내부적으로 비동기 처리가 되지만 결과 반환 값이 없을 때 launch 를 사용합니다. 사실 결과 값이 없을 뿐.. 2023. 9. 11.
[Android] Kotlin CoroutineScope 에 대해 알아보자 프로그래밍에서 비동기 처리는 매우 까다롭고 중요한 개념입니다. 다양한 언어에서 비동기를 처리 하기 위해 다양한 방법을 사용하며, 코루틴은 Kotlin 에서 비동기를 처리하는 방식입니다. 그럼 CoroutionScope 는 무엇일까요? Scope 라는 말 그대로 비동기를 실행하기 위한 작업 범위 입니다. 비동기 작업을 해당 Scope (범위) 에서 실행해라. 이는 무분별한 비동기 처리로 인한 메모리 누수와 리소스 낭비를 막기 위함입니다. 사용자는 CoroutineScope 를 설정하고 특정 수명 주기에 따라 실행, 취소, 재실행 등을 할 수 있습니다. 그럼 CoroutineScope 의 종류에는 어떤것이 있을까요? GlobalScope 안드로이드에서 CoroutineScope 를 설정하지 않아도 기본적으로.. 2023. 9. 8.
[Android] JetPack Compose 에서 상태 관리 (remember, rememberSaveable) JetPack Compose 는 선언적으로 Compse 를 생성합니다. 그래서 선언적으로 생성된 Compose를 업데이트 할 수 있는 유일한 방법은 새로운 인수로 동일한 Composable 을 호출하는 것입니다. 여기서 새로운 인수가 바로 상태 (State) 입니다. 즉 JetPack Compose 에서 상태는 UI 를 어떻게 표현할지에 대한 표현 값이라고 할 수 있습니다. Composable 의 생명주기와 remember 우선 Compsable 의 생명 주기에 대해 간단하게 알 필요가 있습니다. Android 다른 Activity 나 Fragment 와 같이 Composable 또한 생명주기를 가지지만 다른 컴포넌트보다 훨씬 심플합니다. initial Composition : 처음 호출된 Composa.. 2023. 9. 5.
[Android] JetPack Compose 에서 permission 요청하기 최근의 Android 개발은 대부분 JetPack Compose 에서 이루어지고 있습니다. 그래서 최대한 JetPack Compose 100%로 사이드 프로젝트를 해보고 있는데, 아무 생각없이 기존의 Permission 요청을 기존의 방식으로 작성했다가 빨간줄이 발생해서 적지않게 놀랐습니다. 간단하게 JetPack Compose 로 Permission 요청하는 방법에 대해 기록하고자 합니다. 설치 JetPack Compose 에서 Permission 요청을 하기 위해서는 Google 레포의 accompanist 의 accompanist-permissions 모듈을 설치 해야 합니다. build.gradle.kt 파일에 아래 dependency 를 추가 후 sync 해주세요. implementation (.. 2023. 9. 5.
반응형