분류 전체보기 (62) 썸네일형 리스트형 [안드로이드 Coroutine Flow] 코틀린 Flow에 대해서 안드로이드 앱 개발에 있어서 비동기 프로그래밍은 중요한 부분을 차지합니다. UI가 반응성 있게 동작하도록 하기 위해서 네트워크 요청, 데이터베이스 작업 등 시간이 걸리는 작업을 메인 스레드에서 분리해서 처리하게 됩니다. 이러한 작업을 리액티브 프로그래밍으로 처리하면 코드 관리 측면에서 유리해지는데, 안드로이드 코틀린 Coroutine의 Flow는 데이터 스트림으로써 리액티브 프로그래밍을 지원합니다. 1. Kotlin Flow 소개 코틀린 Flow는 코루틴을 기반으로 한 리액티브 프로그래밍을 가능하게 하며, 시간에 따라 여러 값을 방출할 수 있는 콜드 스트림(cold stream)입니다. 콜드 스트림은 아래와 같은 특징이 있습니다. 데이터를 내부에서 생성 소비자가 구독할 때, 데이터를 생성 하나의 생산자에.. [안드로이드 Coroutine Flow] State Flow 원자성 보장 안드로이드의 State Flow는 Kotlin Coroutine의 일부로, 상태 관리를 위해 만들어진 Flow입니다. 상태가 없는 Flow에 상태를 보유할 수 있는 기능을 추가해서 개발자가 상태를 보다 쉽고 편리하게 관리할 수 있게 해 줍니다. 이번 포스팅에서는 이러한 State Flow를 사용할 때 발생할 수 있는 문제와 원자성을 보장하기 위한 해결방법에 대해 알아보겠습니다. 1. StateFlow 사용방법 안드로이드에서 UI에 상태를 유지하고 변경할 때, StateFlow를 많이 사용합니다. 예를 들어, 아래와 같이 data class로 생성된 상태 홀더를 StateFlow로 관리할 수 있습니다. data class UiState( val name: String = "", val checked: Bo.. [안드로이드 ViewModel] Single State와 Multiple State의 차이 최근 안드로이드에서는 View에 State를 제공하는 형태로 UI에 데이터를 보여주고 있습니다. 이때, 상태를 제공하는 방법으로는 크게 2가지로 나뉘게 됩니다. 바로, Single State와 Multiple State입니다. 각 방법마다 장단점이 존재하고 어려운 개념이 아니기에 코드 예제와 함께 설명하겠습니다. 먼저, 아래의 3개의 변수가 필요한 상황이라고 가정하겠습니다. 제목 내용 체크박스 1. Single State를 사용한 경우 Single State는 하나의 data class로 묶어서 처리하는 것을 뜻합니다. 제목, 내용, 체크박스 상태를 관리하기 위해서 아래처럼 CardUiState라는 data class를 만듭니다. data class CardUiState( val title: String.. [안드로이드 Jetpack Compose UI] LazyRow를 사용해서 RecyclerView 구현하기 안녕하세요. 이번 시간에는 안드로이드 Jetpack Compose에서 LazyRow를 사용해 가로 방향으로 무한 스크롤이 되면서 메모리 최적화 기능이 적용된 RecyclerView를 구현하겠습니다. 기존의 안드로이드 레이아웃 XML 방식을 사용해 보신 분들이라면 RecyclerView를 만들 때, 필요한 사전작업이 많았다는 걸 아실 텐데요. Compose로 넘어와서는 상당히 간단하게 구현할 수 있게 됐습니다. Compose에서 제공하는 LazyRow를 사용하면 가로 방향으로 무한 스크롤이 되는 RecyclerView를 만들 수 있습니다. 그럼 지금부터 코드와 함께 예제를 보여드리겠습니다. 1. LazyRow를 사용해서 RecyclerView 만들기 LazyRow는 항목을 가로로 배치하고, 사용자가 스크롤.. [안드로이드 Jetpack Compose UI] Row를 사용해서 HorizontalScrollView 구현하기 안녕하세요. 이번 포스팅에서는 안드로이드 Jetpack Compose에서 가로방향으로 아이템이 추가되는 HorizontalScrollView를 구현하겠습니다. Compose UI에서는 가로 방향으로 UI를 배치할 때 Row 컴포저블을 사용합니다. 이때, Row에 추가 옵션을 주면 아이템이 Row 컴포저블을 벗어나도 스크롤을 통해서 UI를 확인할 수 있습니다. 이제 간단한 예제를 통해 HorizontalScrollView를 구현하겠습니다. 1. Row를 사용해서 HorizontalScrollView 만들기 HorizontalScrollView 구현의 핵심은 Row 컴포저블과 horizontalScroll modifier의 조합입니다. Row는 자식 컴포저블들을 가로 방향으로 나열하며, horizontalS.. [안드로이드 Jetpack Compose] remember와 MutableState의 3가지 사용 방법 안녕하세요. 이번 포스팅에서는 안드로이드 Jetpack Compose에서 상태 변수를 관리하기 위해서 필수적으로 사용하는 remember와 MutableState에 대해서 설명하고, MutableState의 3가지 사용방법을 코드 예제와 함께 살펴보겠습니다. 1. MutableState와 Remember 개념 안드로이드 Jetpack Compose에서 UI 로직을 처리할 때는 주로 mutableStateOf와 remember를 사용합니다. 여기서 compose가 생소하신 분들은 remember의 역할에 대해 모를 수 있습니다. Compose UI는 선언형 UI 패러다임을 따르는 방식으로써 상태가 변할 때마다 렌더링을 다시 합니다. 이렇게 다시 렌더링이 되는 현상을 Compose에서는 리컴포지션이라고 부릅.. [안드로이드 Jetpack Compose UI] LazyColumn을 사용해서 무한 스크롤 뷰 만들기 안녕하세요. 이번 포스팅에서는 안드로이드 Jetpack Compose에서 무한스크롤 뷰를 만드는 방법에 대해 설명하겠습니다. 안드로이드 Compose UI에서는 기존 XML 기반의 레이아웃에서 사용했던 Adapter 없이 간단하게 무한스크롤 뷰를 구성할 수 있습니다. 바로 LazyColumn 컴포저블을 사용하면 됩니다. 선언적 UI 구성의 장점을 살려서 간결하고 유연한 코드 작성이 가능합니다. 1. LazyColumn을 사용해서 무한 스크롤 뷰 만들기 LazyColumn은 Compose에서 제공하는 컴포저블로 기존의 RecyclerView에서의 기능을 수행합니다. XML 레이아웃 기반 RecyclerView의 어댑터 패턴과는 다르게 LazyColumn에서는 Compose의 선언적 방식을 통해 각 아이템을.. [안드로이드 Jetpack Compose UI] Column을 사용해서 VerticalScrollView 구현하기 안녕하세요. 이번 포스팅에서는 안드로이드 Jetpack Compose에서 VerticalScrollView 만드는 방법에 대해 설명하겠습니다. Compose UI에서는 Column 컴포저블을 통해 세로로 UI를 배치할 수 있고, Column 컴포저블의 Modifier에 ScrollState를 전달해 줌으로써 Scrollable 하게 만들 수 있습니다. 1. Column을 사용해서 VerticalScrollView 만들기안드로이드 Compose에서는 기존의 안드로이드 개발에서 보던 ScrollView와는 다른 접근 방식을 제공합니다. 가장 간단하게 세로 스크롤 뷰를 만드는 방법은 Column 컴포저블에 verticalScroll Modifier를 적용하는 것입니다. 해당 Scroll State를 통해 간단.. 이전 1 2 3 4 5 6 ··· 8 다음