본문 바로가기

전체 글

(51)
[안드로이드 Jetpack Compose Dialog 시리즈] BottomSheetDialog 구현하기 #2 안녕하세요. 이번 포스팅에서는 안드로이드 Jetpack Compose에서 BottomSheetDialog를 구현하는 방법에 대해서 설명하겠습니다. BottomSheetDialog는 하단에서 위로 올라오는 형태의 dialog로써 현대 앱에서 많이 볼 수 있습니다. 기존의 xml에서 구현할 때보다 많이 쉬워졌는데 아래 예제를 통해서 설명하겠습니다. 1. Compose에서 BottomSheetDialog 사용하기 안드로이드 Jetpack Compose에서 BottomSheetDialog를 사용하면 사용자에게 추가 정보를 제공하거나 선택을 요구하는 등의 상호작용을 제공하는 상황에서 효과적입니다. Compose에서는 Material3에서 제공하는 ModalBottomSheet 컴포저블을 활용하여 손쉽게 구현할 수..
[안드로이드 Jetpack Compose Dialog 시리즈] 커스텀 Dialog 구현하기 #1 안녕하세요. 이번 포스팅에서는 안드로이드 Jetpack Compose에서 Custom Dialog를 구현하는 방법에 대해서 설명하겠습니다. Compose는 선언적 UI 프레임워크로, UI를 구성하는 방식이 기존의 XML 기반 방식과는 크게 다릅니다. 이러한 차이로 인해 Dialog를 구현하는 방식에도 몇 가지 변화가 생겼습니다. 1. Compose에서 Dialog 구현하기 Jetpack Compose에서 Dialog를 사용하는 기본적인 방법은 Dialog 컴포저블을 직접 사용하는 것입니다. Dialog 컴포저블을 사용하면, Dialog의 기본적인 요소들이 전부 구현돼있는 것을 사용하면 됩니다. 그리고 Compose의 상태 관리 시스템과도 잘 통합되어 있습니다. 2. Custom Dialog 만들기 Com..
[안드로이드 Jetpack Compose Paging3 시리즈] RemoteMediator 적용하기 #11 1. RemoteMediator를 Pager에 적용하기 안녕하세요. 지난 포스팅에서는 안드로이드 Jetpack Compose의 Paging3 라이브러리에서 제공하는 RemoteMediator를 구현하고, 코드를 분석하면서 어떤 역할을 하는지에 대해 살펴보았습니다. 이번 포스팅은 RemoteMediator와 PageSource를 Pager에 전달해서 화면에 정상적으로 UI가 보이는지 확인하겠습니다. 2. 안드로이드 Jetpack Compose Pager 구현 과정 Pager의 매개변수에 RemoteMediator와 PagingSource를 전달해주어야 합니다. Hilt 라이브러리를 이용해서 의존성을 주입받고, Pager 객체에 적절한 매개변수를 전달해서 RemoteMediator 기능이 적용된 Pager를..
[안드로이드 Jetpack Compose Paging3 시리즈] RemoteMediator 코드 설명 #10 1. RemoteMediator 코드 분석을 하는 이유 안녕하세요. 지난 포스팅에서는 안드로이드 Jetpack Compose Paging3 라이브러리를 사용하기 위해서 LocalDataSource와 RemoteMediator를 구현했습니다. 해당 라이브러리의 정확한 원리를 이해해야 응용력도 생기고 개발자로서의 성장에도 도움이 되기 때문에 이번 포스팅에서는 RemoteMediator의 코드를 분석하겠습니다. 2. RemoteMediator의 LoadType, MediatorResult 정리 안드로이드 Jetpack Compose Paging3의 RemoteMediator를 사용하려면 RemoteMediator라는 추상클래스를 상속받아서 구현하게 됩니다. 해당 클래스에서는 LoadType, PagingSta..
[안드로이드 Jetpack Compose Paging3 시리즈] RemoteMediator 구현하기 #9 1. RemoteMediator 구현하기 안녕하세요. 지난 포스팅에서는 안드로이드 Jetpack Compose Paging3 라이브러리를 사용할 때 로컬 데이터베이스와 상호작용하기 위한 Local Data Source를 구현했습니다. 이번 포스팅에서는 네트워크를 통해 가져온 데이터를 로컬 데이터베이스에 저장하기 위해 RemoteMediator를 구현하겠습니다. 2. RemoteMediator란? RemoteMediator는 안드로이드 Jetpack Compose의 Paging3 라이브러리의 핵심 컴포넌트 중 하나로, 네트워크와 로컬 데이터베이스 간의 데이터 동기화를 담당합니다. 네트워크에서 데이터를 가져온 후 로컬 데이터베이스에 저장하고, 이 데이터를 PagingSource를 통해 UI에 제공하는 역할을..
[안드로이드 Jetpack Compose Paging3 시리즈] Local Data Source 생성하기 #8 1. 로컬 데이터베이스에 접근하기 위한 Local Data Source 안녕하세요. 지난 포스팅에서는 안드로이드 Jetpack Compose Paging3 라이브러리를 사용할 때 로컬 데이터베이스에 캐시 데이터를 저장하기 위해서 Room 라이브러리를 이용하여 데이터베이스를 세팅해 주었습니다. 이번 포스팅에서는 데이터베이스와 상호작용을 하기 위한 Local Data Source를 세팅하겠습니다. 2. Local Data Source 세팅하기 RemoteMediator는 안드로이드 Jetpack Compose의 Paging3 라이브러리의 핵심 컴포넌트 중 하나로, 네트워크와 로컬 데이터베이스 간의 데이터 동기화를 담당합니다. 그래서 데이터베이스와 상호작용을 할 수 있는 Local Data Source를 먼저..
[안드로이드 Jetpack Compose Paging3 시리즈] Room Database 세팅하기 #7 1. RemoteMediator 구현을 위해 Room Database 세팅 안녕하세요. 이번 포스팅에서는 Jetpack Compose Paging3 라이브러리에서 RemoteMediator를 구현하기 위해 Room Database 세팅을 진행하겠습니다. 지난 포스팅에서 설명했듯이, RemoteMediator는 Paging3 라이브러리로 불러온 데이터를 로컬 데이터베이스에 저장한다고 말씀드렸습니다. 그래서 먼저 Room Database를 세팅한 후, RemoteMediator를 구현해야 합니다. 2. Data Layer에 데이터베이스 관련 클래스 및 인터페이스 생성 Data Layer에 Room 데이터베이스 구성을 위한 파일들을 생성하겠습니다. 어렵게 생각하지 말고 간단하게 생각하면 쉽습니다. 데이터베이스..
[안드로이드 Jetpack Compose Paging3 시리즈] RemoteMediator 파헤치기 #6 1. 네트워크, 데이터베이스에서 페이징을 구현하기 위한 RemoteMediator 안녕하세요. 지난 포스팅에서는 네트워크 통신만을 이용해서 페이징 기능을 구현했었습니다. 이번 시간에는 안드로이드 Jetpack Compose Paging3 시리즈에서 개념이 어렵다고 생각하는 RemoteMediator의 원리 및 사용방법에 대해서 설명하고, 프로젝트에 RemoteMediator를 적용해 보는 과정을 설명하겠습니다. 2. RemoteMediator 원리 안드로이드 Jetpack Compose Paging3 라이브러리는 RemoteMediator를 제공합니다. RemoteMediator는 네트워크를 통해 가져온 데이터를 페이징 데이터로 활용하는 것이 아니라 로컬 데이터베이스(Room)에 저장합니다. 이렇게 로컬..