분류 전체보기

    [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..

    [코틀린과 객체지향] 2. 자율적인 객체

    실제 세계의 객체와 객체지향 세계의 객체의 차이 앞선 글에서 객체를 실제 세계에 비유하니 객체가 무엇인지 한 번에 이해를 했을 것이다. 이러한 이유 때문에 흔히들 객체를 실제 세계에 비유해 설명한다. 하지만, 실제 세계의 객체는 프로그래밍 상의 객체와 다른 점이 있다. 실제 세계에서는 대부분의 객체들은 수동적이며, 사람이나 고양이 혹은 강아지 같은 자율적인 객체들에 의해 수동적으로 행동한다. 하지만 객체지향 세계의 객체는 수동적으로 행동하지 않는다. 예를 들어보자. 사람들이 사용하는 조명, 펜, 가위 등은 사람에 의해 수동적으로 행동한다. 조명은 사람에 의해 켜지고, 펜과 가위는 사람에 의해 사용된다. 그렇다면 이러한 수동적인 객체들은 프로그래밍 상의 객체가 될 수 없는걸까? 당연히 될 수 있다. 수동적..

    [코틀린과 객체지향] 1. 객체지향 패러다임이란 무엇인가?

    Kotlin은 객체지향 프로그래밍 패러다임을 지원하는 프로그래밍 언어이다. 따라서 Kotlin을 알기 위해서는 객체지향이 무엇인지에 대한 이해가 필수적이다. 이 장에서는 객체 지향 프로그래밍에 대한 간단한 이야기를 하고 넘어가고자 한다. 객체 지향에 대한 깊은 내용은 뒤에서 다룰 내용이니 가볍게 읽고 가도록 하자. 객체지향이란 무엇인가? 객체지향은 객체를 중심으로 프로그래밍을 하는 프로그래밍 패러다임을 뜻한다. 쉽게 설명하면 우리가 코딩을 통해 하나의 세계를 창조한다고 보고 해당 세계 안에는 객체들이 존재한다고 보는 프로그래밍 방식이다. 여기서의 객체란 상태를 저장할 수 있는 자율적으로 행동하는 주체를 뜻한다. 한 번 객체지향적으로 우리가 하나의 세계를 창조하고 사람과 고양이 강아지가 존재한다고 해보자...