분류 전체보기

    [Android Compose Modifier] 5. Color에 alpha 적용해 투명도 설정하기

    alpha란? alpha란 불투명도를 설정하는 float값이다. alpha가 1에 가까워질수록 불투명해지며 0에 가까워질 수록 투명해진다. alpha = 1f : default값. 불투명 alpha = 0f : 완전 투명 alpha란 무엇인가를 한 눈에 이해하기 위해 아래 그림을 보자. 1f일때는 완전히 불투명한 반면, 0f에서는 완전히 투명(transparent)해졌다. 위 그림을 만든 코드는 아래 접어두었다. 이해를 위해 직관적으로 작성해두었으니 참고 바란다. 더보기 @Preview(showBackground = true, widthDp = 200, heightDp = 200) @Composable fun KotlinWorldAlpha() { Column { Box( Modifier .fillMaxW..

    [Android Compose Modifier] 4. Modifier.background에서 Brush 다루기 : 그라데이션 만들기

    background에 brush를 이용해서 그라데이션(Gradient) 만들기 그라데이션 처리는 아래 그림과 같이 여러개의 색을 섞어 그라데이션을 만드는 것을 뜻한다. Modifier에서는 파라미커로 Brush를 받을 수 있는 메서드가 있다. 우리는 이 Brush를 이용해 그라데이션을 만들 수 잇다. fun Modifier.background( brush: Brush, shape: Shape = RectangleShape, /*@FloatRange(from = 0.0, to = 1.0)*/ alpha: Float = 1.0f ) 이 메서드에서는 세개의 파라미터를 받는다 Brush : Gradient 방향 설정 Shape : 모양 설정 alpha : 투명도 설정 이전 글에서 Shape은 자세히 다뤘으므로 ..

    [Android Compose Modifier] Modifier 제대로 이해하기

    Modifier이란 무엇인가? Modifier이란 Compose의 UI 구성요소들을 꾸미거나 행동을 추가하기 위한 요소들의 모음이다. 따라서 이 글에서는 Modifier을 두 가지 분류로 나누고자 한다. UI 구성요소들을 꾸미기 위한 Modifier 행동을 추가하기 위한 Modifier UI 구성요소들을 꾸미기 위한 Modifier [Android Compose Modifier] 1. Modifier로 크기(너비, 높이) 조절하기 [Android Compose Modifier] 1. Modifier로 크기(너비, 높이) 조절하기 크기를 조절하는 Modifier 크기를 조절하기 위해서는 다음의 Modifier 구성요소들을 사용할 수 있다. 이 Modifier은 모든 Compose Component에 대해 ..

    [Android Compose Modifier] 3. Modifier.background로 배경색 설정하고 라운딩 처리하기

    Modifier.background 내부 살펴보기 Modifier.background에서는 두가지 방법으로 background를 설정하는 방법을 지원한다. color과 shape을 이용해 배경색과 모양 만들기 brush와 shape, alpha를 이용해 그라데이션 처리하기 이번 글에서는 color와 shape을 이용해 배경색과 모양을 만드는 방법을 살펴보고, 다음글에서 brush와 shape, alpha를 이용해 그라데이션 처리를 해볼 것이다. Color와 Shape을 이용해 배경색과 모양 만들기 Color와 Shape을 이용해 배경색과 모양을 만들기 위해서는 background(color: Color, shape: Shape)을 사용하면 된다. fun Modifier.background( color: ..

    [Android CoroutineScope] 1. Activity, ViewModel에서 올바른 CoroutineScope 사용법 : lifecycleScope과 viewModelScope의 활용

    Android에서 올바른 CoroutineScope를 사용해야 하는 이유 CoroutineScope는 Coroutine Job이 실행되는 Scope이다. CoroutineScope가 해제되면 CoroutineScope에 속한 Coroutine Job들은 모두 해제된다. 따라서 만약 CoroutineScope이 안드로이드 구성요소(Activity, ViewModel)의 Lifecycle에 따라 올바로 할당 해제되지 않는다면 해제되어야 하는 Job들이 계속해서 동작해서 Memory Leak으로 이어진다. 예를들어 App의 Lifecycle동안 유지되는 GlobalScope를 1초마다 string을 내보내는 flow를 collect하기 위해 사용해보자. class MainActivity : ComponentA..