안드로이드 (62) 썸네일형 리스트형 [안드로이드 코틀린 Sealed class] 특성 및 코드 예제 #2 안드로이드 코틀린 Sealed Class의 3가지 특성 안녕하세요. 지난 포스팅에서는 Kotlin의 enum class 및 sealed class의 사용 이유에 대해서 살펴보았습니다. 오늘은 sealed class의 특성을 제한된 클래스 계층, 타입 안전성, 그리고 서브 클래스 타입 차이 (class, data class, object) 세 가지 기준으로 설명하겠습니다. 1. 제한된 클래스 계층 sealed class는 Kotlin에서 제한된 클래스 계층을 구성하기 위해 사용되는 특별한 종류의 클래스입니다. sealed class의 가장 큰 특징은 그 하위 클래스가 반드시 sealed class와 같은 파일 내에서 선언되어야 한다는 것입니다. 컴파일러는 sealed class와 같은 파일 내에 선언된 하.. [안드로이드 코틀린 Sealed class] 설명 및 코드 예제 #1 1. 안드로이드 코틀린의 Enum class의 한계 안녕하세요. 지난 포스팅에서는 enum class에 대해 학습했었습니다. 코틀린의 enum class는 속성, 함수를 구현할 수 있어서 다른 언어에 비해서 강력한 기능을 제공해 줬었습니다. 그런데 이러한 enum class에도 한계가 있었는데요. 아래 코드처럼 상수값 별로 다른 데이터 타입이 필요한 경우였습니다. enum class TrafficLight(val guide: String, val additionalData: String?) { RED("Stop", null), // null을 추가해줘야함 YELLOW("Slow down", null), // null을 추가해줘야함 GREEN("Go", "Additional data for green") .. [안드로이드 코틀린 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 구현 데이터 소스는 외부 .. 이전 1 ··· 4 5 6 7 8 다음