전체 279

[Android] Jetpack Compose - 객체 지향적 UI 레이어 설계

#1 개요 UI 레이어 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. UI 레이어 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. UI의 역할은 화면에 애플리케이션 데이터를 developer.android.com안드로이드 UI 설계에 대한 공식 가이드에 기반해, 샘플 Jetpack Compose 앱을 만들어본다. #2 앱 미리보기#2-1 작동 화면국가, 대륙 별로 다른 신발 사이즈를 상호 변환할 수 있는 간단한 앱이다. 4개의 TextField 중 아무 TextField에 값이 입력되면 "변환" 버튼이 활성화되어 클릭이 가능해진다. 4개의 TextField 중 오직 하나에만 값 입력이 가능하기에, 예를 들어 한..

[Android] Jetpack Compose - Side-effects

#1 개요 Compose의 부수 효과  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Compose의 부수 효과 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 부수 효과는 구성 가능한 함수의 범developer.android.comJetpack Compose는 굉장히 선언적이기 때문에, 세심하고 복잡한 동작 구현이 쉽지 않다. Side-effects는 그 구현을 쉽게 만들어준다. Side effects를 번역하면, '부작용'이라는 말이 되는데, 이 사실은 마치 Side effects가 에러 및 그 처리와 관련되어있다는 늬앙스를 연상케한다. 하지만 Jetpack Compos..

[Android] Jetpack Compose - Scaffold

#1 개요#1-1 Scaffold의 사전적 의미Scaffold는 비계((건설) 높은 곳에서 공사를 할 수 있도록 임시로 설치한 가설물)라는 단어로 번역된다. #1-2 Scaffold in Jetpack Compose Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Scaffold 머티리얼 디자인에서 스캐폴드는 스캐폴드로developer.android.comJetpack Compose에도 Scaffold라는 이름의 객체가 존재한다. 이 Scaffold에 대해 누군가 무엇을 위한 가설물이냐고 묻는다면, 바로 다양한 UI 요소를 위한 가설..

[Android] LiveData - Flow로 마이그레이션

#1 이전 글 [Kotlin] Coroutines Flow - StateFlow#1 개요 StateFlowA SharedFlow that represents a read-only state with a single updatable data value that emits updates to the value to its collectors. A state flow is a hot flow because its active instance exists independently of the presence of collectokenel.tistory.comStateFlow에 대해 다룬 이전 글에서 이어진다. LiveData가 쓰인 XML 기반 View 프로젝트를 수정해, LiveData를 StateFlow로..

[Android] Jetpack Compose - StateFlow와 SharedFlow

#1 이전 글 [Kotlin] Coroutines Flow - StateFlow#1 개요 StateFlowA SharedFlow that represents a read-only state with a single updatable data value that emits updates to the value to its collectors. A state flow is a hot flow because its active instance exists independently of the presence of collectokenel.tistory.comStateFlow에 대해 다룬 이전 글에서 이어진다. State가 쓰인 Jetpack Compose 프로젝트를 수정해, State 대신 StateFlow를..

[Kotlin] Coroutines Flow - Flow.combine()과 Flow.stateIn()

#1 개요 combineReturns a Flow whose values are generated with transform function by combining the most recently emitted values by each flow. It can be demonstrated with the following example: val flow = flowOf(1, 2).onEach { delay(10) }val flow2 = flowOf("a", "b", "c").okotlinlang.org stateInConverts a cold Flow into a hot StateFlow that is started in the given coroutine scope, sharing the most re..

[Kotlin] Coroutines Flow - StateFlow

#1 개요 StateFlowA SharedFlow that represents a read-only state with a single updatable data value that emits updates to the value to its collectors. A state flow is a hot flow because its active instance exists independently of the presence of collectors. Its current valukotlinlang.orgSharedFlow의 일종인 StateFlow에 대해 살펴본다. #2 SharedFlow와의 비교이름에서 알 수 있듯, StateFlow는 기존 SharedFlow에 State의 특성을 결합한 Flow다..

[Kotlin] Coroutines Flow - Intermediate operator

#1 개요#1-1 중간 연산자 (Intermediate operator) Asynchronous Flow | Kotlin kotlinlang.org중간 연산자에 대해 살펴본다. #1-2 중간 연산자의 구조중간 연산자는 이름 그대로의 역할을 수행한다. 이름에 있는 '중간'은, emit과 collect 사이 '중간'을 의미한다. 시작점이 emit이고 도착점이 collect인 배수관 속 물의 흐름을 intermediate operator가 하이재킹하는 느낌이라고 보면 된다. 여기서 중요한 점은, 앞으로(=미래에) emit될 데이터를 변형하는 연산자는 결코 아니라는 것이다. 이미(=과거에) emit된 데이터에 특정 연산을 가하여, collect에 전달하는 연산자다. 중간 연산자이니 말이다. #2 Flow에 가용..

[Kotlin] Coroutines Flow - Back pressure와 그 처리

#1 개요Coroutines Flow를 사용할 때 생길 수 있는 현상인 백 프레셔(Back pressure)에 대해 살펴본다. 또, 백 프레셔를 처리하는 방법도 살펴본다. 이 때, 백 프레셔는 에러가 아닌 자연스러운 현상일 뿐이다. 따라서, 백 프레셔를 해결한다는 표현은 정확하지 않다. 백 프레셔에 대처한다는 표현이 옳다. #2 백 프레셔#2-1 백 프레셔가 없는 코드import kotlinx.coroutines.*import kotlinx.coroutines.flow.Flowimport kotlinx.coroutines.flow.MutableStateFlowimport kotlinx.coroutines.flow.flow// 1초마다 1씩 증가하는 countfun startCountUp(count: Mu..

[Kotlin] Coroutines Flow - Cold Flow와 Hot Flow (SharedFlow)

#1 Cold Flow와 Hot Flow#1-1 개요데이터 스트림은 크게 Cold Flow와 Hot Flow로 나눌 수 있다. 이 분류 기준에 대해 알아본다. 또, Kotlin의 Coroutines Flow를 활용해 간단한 Cold Flow 및 Hot Flow를 구현해본다. #1-2 훌륭한 비유 What is the hot flow and cold flow in coroutines and the difference between them?I am mastering Kotlin coroutines and trying to figure out 1- what is hot flow and cold flow ? 2- what is the main difference between them? 3- when to ..