Skip to content

이 프로젝트는 unsplash api를 활용하여 이미지를 보여주는 어플리케이션으로 Hilt, Retrofit, Coroutine, Flow, Multi module 를 활용하여 MVVM 패턴의 클린 아키텍처를 구현했습니다.

Notifications You must be signed in to change notification settings

agvber/PROGRAPHY_ANDROID

Repository files navigation

Prography Android

image

기술 스택

아키텍처

image

해당 프로젝트는 Clean Architecture를 기반으로 설계되었습니다.
Clean Architecture는 도메인 중심 설계 아키텍처로 Presentation Layer와 Data Layer가 Domain을 의존하는 형태로 개발하였습니다.

UI Layer

mad-arch-ui-udf

프레젠테이션 계층은 안드로이드에서 권장하는 단방향 데이터 흐름(UDF)을 따르고 있습니다.

Event
Button, CheckBox, Switch, Tabs 등의 UI 요소에서 이벤트가 발생하면 ViewModel을 호출합니다.

UI State
UI 상태에 따라 Loading, Error, Success 등으로 분기 처리하여, UI State(ViewModel)에 따라 사용자에게 표시합니다.

Data Layer

image

데이터 계층은 Repository 패턴으로 설계되며, DB 쿼리 및 네트워크 작업을 처리합니다. 또한, 오프라인 및 캐싱 작업도 이 계층에서 수행합니다.

Domain Layer

image

도메인 계층은 비지니스 로직이 존재하는 계층입니다. 핵심 업무 규칙인 Entity가 존재하며, UseCase는 Entity의 데이터의 흐름을 조정하도록 설계하였습니다.

모듈화

해당 프로젝트는 모듈화를 통해 빌드 시간을 낮추고, 모듈 간의 더욱 명확한 의존성 설계 및 캡슐화 하였습니다. image

  • App : 앱 모듈은 애플리케이션의 진입점으로, 앱 모듈은 feature 모듈에 종속되며 Navigation Host가 존재합니다.
  • Feature : 화면 별로 독립적인 기능에 따라 존재합니다.
  • Core : 앱 아키텍처의 특정 레이어를 나타내지는 않지만, 여러 모듈에서 공통적으로 필요로 하는 기능을 제공합니다.

About

이 프로젝트는 unsplash api를 활용하여 이미지를 보여주는 어플리케이션으로 Hilt, Retrofit, Coroutine, Flow, Multi module 를 활용하여 MVVM 패턴의 클린 아키텍처를 구현했습니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages