본문 바로가기

안드로이드

(60)
[안드로이드 코틀린 Enum class] 설명 및 코드 예시 안드로이드 코틀린의 Enum Class는 어떻게 활용되고 있을까? 안녕하세요. 이번 시간에는 코틀린의 Enum class에 대한 설명과 코드로 어떻게 사용하는지 설명하겠습니다. Enum은 코틀린뿐만 아니라 다른 언어에서도 상수값을 활용할 때 많이 사용하게 됩니다. 그런데 코틀린에서는 Enum class 내부에 속성과 함수를 구현할 수 있는 등 다양한 기능을 제공해서 캡슐화에도 유리한 편입니다. 즉, enum 상수는 클래스 객체처럼 동작할 수 있으며, enum class 내에서 고유한 속성과 함수를 가질 수 있습니다. 그래서 코드의 가독성을 높이고, 관련된 상수 값들을 캡슐화하여 관리할 수 있게 해 줍니다. 1. 코틀린의 Enum Class의 특징 when, if 조건등을 처리하면 자동완성이 되기 때문에 ..
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 4편 (with Jetpack Compose) #11 1. 안드로이드 클린 아키텍처 UI Layer 4편 안녕하세요. 이전 포스팅에서는 Jetpack Compose를 활용한 화면 구성과 Compose Navigation, 그리고 ViewModel을 이용한 데이터 바인딩 과정에 대해 살펴보았습니다. 이번 포스팅은 클린 아키텍처 시리즈의 마지막 편으로, UI Layer에서 화면 이쁘게 꾸며보고 지금까지 포스팅한 클린 아키텍처를 정리하면서 시리즈를 마무리하겠습니다. 2. MovieDetailScreen 꾸미기 이전 포스팅에서는 서버로부터 불러온 영화에 대한 Entity의 정보를 문자열로만 출력했습니다. 이번 시간에는 해당 데이터를 StateFlow에 저장하고 MovieDetailScreen에서 compose를 활용해서 UI를 구현하겠습니다. 2-1. MovieD..
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 3편 (with Jetpack Compose) #10 1. 안드로이드 클린 아키텍처 UI Layer 3편 안녕하세요. 이전 포스팅에서는 Hilt를 통한 의존성 주입에 대해 살펴보았습니다. 이번 포스팅에서는 UI Layer의 마지막 부분으로, UI 컴포넌트와 ViewModel을 연결하고 사용자 인터페이스를 통해 데이터를 표시하기 위해서 Jetpack Compose를 활용한 화면 구성부터 구현하겠습니다. 본 시리즈는 클린 아키텍처에 대해 다루고 있기 때문에 Jetpack Compose를 자세히 설명하지는 않겠습니다. 2. Jetpack Compose를 이용한 UI 구현 Jetpack Compose는 최신 안드로이드 UI 개발 툴킷으로, 선언적 UI 프로그래밍을 가능하게 해 줍니다. 이를 통해 더 간결하고 직관적인 코드로 UI를 구성할 수 있습니다. 우리는 Je..
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 2편 (with Hilt) #9 1. 안드로이드 클린 아키텍처 UI Layer 2편 안녕하세요. 이전 포스팅에서는 UI Layer를 위한 Hilt 의존성 주입의 기본 설정과 필요성에 대해 살펴보았습니다. 이번 포스팅에서는 UI Layer의 핵심 요소 중 하나인 ViewModel에서 UseCase를 활용하는 방법에 대해 다루고, 실제로 의존성 주입을 통해 UseCase와 Repository를 ViewModel에 주입하는 과정을 구현하겠습니다. 2. ViewModel에서 UseCase 활용의 중요성 ViewModel은 사용자 인터페이스(UI)의 상태와 로직을 관리하는 역할을 담당합니다. UI와 모델 사이의 상호작용을 처리하며, UI Layer에서 사용자의 액션에 따라 데이터를 처리하고 결과를 UI에 반영해야 합니다. 이 과정에서 UseCa..
[안드로이드 클린 아키텍처 시리즈] UI Layer 구현 1편 (with Hilt) #8 1. 안드로이드 클린 아키텍처 UI Layer 1편 안녕하세요, 지금까지 Data Layer와 Domain Layer에 대해 알아보았습니다. 이번 포스팅부터는 애플리케이션의 가장 전면에 있는 UI Layer를 구현할 차례입니다. UI Layer는 사용자와의 직접적인 상호작용을 담당하며, 사용자 경험을 결정짓는 중요한 역할을 합니다. 먼저, UI Layer의 구현을 위한 첫걸음으로 Hilt를 이용한 의존성 주입에 대해 설명하고 Hilt를 사용하기 위한 기본 세팅을 진행하겠습니다. 2. Hilt를 통한 의존성 주입의 필요성 Hilt는 Dagger를 기반으로 한 Android의 의존성 주입 라이브러리입니다. 의존성 주입(Dependency Injection, DI)은 소프트웨어 디자인 패턴 중 하나로, 컴포넌..
[안드로이드 클린 아키텍처 시리즈] Data Layer 구현 2편 #7 1. 안드로이드 클린 아키텍처 Data Layer 2편 안녕하세요, 지난 포스팅에서는 Data Layer의 기본 구조, 의존성 추가, 데이터 모델(Data Transfer Object, DTO) 및 Movie API 인터페이스의 정의에 대해 알아보았습니다. 이번 시간에는 Data Layer 구현의 다음 단계로, 실제 데이터 소스(Data Source)와 MovieRepository를 구현하고 Data Layer의 내용을 총 정리하겠습니다. 2. Data Layer의 Data Source, MovieRepository 구현 Data Source와 MovieRepository를 구현하면서 Data Layer에 대해 학습하겠습니다. 2-1. Data Layer의 Data Source 구현 데이터 소스는 외부 ..
[안드로이드 클린 아키텍처 시리즈] Data Layer 구현 1편 #6 1. 안드로이드 클린 아키텍처 Data Layer 1편 안녕하세요, 이번 포스팅에서는 Domain Layer에 이어 Data Layer를 살펴보며 클린 아키텍처의 또 다른 핵심 구성 요소인 Data Layer에 대해 설명하고 구현하겠습니다. Data Layer는 애플리케이션의 데이터 소스와의 상호작용을 관리하는 계층으로, 데이터의 저장, 검색, 업데이트, 삭제 등의 작업을 수행합니다. 이 계층의 목적은 애플리케이션의 나머지 부분, 특히 비즈니스 로직을 담당하는 Domain Layer와 사용자 인터페이스를 담당하는 UI Layer 사이에서 데이터를 중개하는 것입니다. 2. Data Layer의 의존성 추가, Data Model, Api Interface 구현 Data Layer에서는 데이터 소스(Data ..
[안드로이드 클린 아키텍처 시리즈] Domain Layer 구현 #5 1. 안드로이드 클린 아키텍처 Domain Layer 안녕하세요, 오늘은 클린 아키텍처의 핵심 구성 요소 중 하나인 Domain Layer에 대해 자세히 살펴보겠습니다. 클린 아키텍처 구현 시리즈에서 Domain Layer부터 다루는 이유는 어떤 계층에도 의존하고 있지 않기 때문입니다. 그래서 Domain Layer부터 구현하고 Data Layer, UI Layer 순서로 포스팅할 예정입니다. 그럼 지금부터 Domain Layer를 구현하겠습니다. 2. Domain Layer의 구성 요소 Domain Layer는 크게 엔터티(Entity), 레포지토리 인터페이스(Repository Interface), 유스케이스(UseCase)로 구성됩니다. 필요에 따라서 util 함수가 추가될 수 있습니다. 2-1. ..