Android/Architecture12 안드로이드 Clean Architecture - 예제 (Rxjava) 모듈 생성부터가 시작이다.이러한 방식으로 presentation, domain, data layer에 대한 모듈을 생성하자.물론, 기존에 생성되어있던 app 모듈을 제거해도 상관 없고 위의 3가지 모듈 중 하나로 생각하고(혹은 Refactor를 통해 Rename) 사용해도 무관하다. 그렇게 생성하고 나면 다음과 같은 형태로 프로젝트 구조가 잡힐 것이다.그 후에는 이제 각 계층에 맞춰서 필요한 package를 생성하고, 클래스를 만들어서 넣으면 된다.실제 프로젝트를 진행하게 된다면 패키지를 전부 구분하여 만들어 두고 의존성을 주입하는 등의 작업을 시작하기는 쉽지 않겠지만, 우리는 공부를 위한 예제를 맞드는 것이니 정석대로 만들어 넣어보자. 각 계층에 필요한 것들은 무엇인가 확인해보자.Domain Layer.. 2023. 5. 27. 안드로이드 Clean Architecture - 개념 클린 아키텍처의 등장특정 수준 혹은 복잡도를 가진 애플리케이션을 위한 고품질 코드를 작성하려면 상당한 노력과 경험이 필요하다. 또한, 애플리케이션은 고객의 요구 사항을 충족 할 뿐만 아니라 유연하고 테스트 가능하며 유지 관리가 가능해야 한다.이러한 문제에 대한 해결책으로 Robert C. Martin은 2012년에 Clean Architecture 개념을 제시 하였다. 클린 아키텍처의 개념클린 아키텍처는 계층을 크게 나누어서 관심사를 분리, 각 분리된 클래스가 한가지 역할만 할 수 있도록 구현하는 방식이다. 모든 의존성 규칙은 반드시 외부에서 내부로 향해야 한다.클린 아키텍처는 계층 구조에서 외부에서 내부로 의존성을 가지고 있기 때문에 내부로 갈 수록 의존성은 낮아지는 특징을 가진다. (위 그림에서는 .. 2023. 5. 27. [Android] 앱 아키텍처 가이드 (4) - Domain Layer Domain Layer정의UI Layer와 Data Layer 사이에 있는 선택적 Layer로,복잡한 비즈니스 로직 또는 여러 ViewModel에서 재사용되는 간단한 비즈니스 로직의 캡슐화를 담당한다. Domain Layer의 장점코드 중복 방지가독성 향상테스트 용이성책임 분할을 통한 대형 클래스 분리 Domain Layer의 네이밍 규칙현재 시제의 동사 + 명사/대상(선택사항) + UseCase예를 들면 "LogOutUserUseCase", "GetLatestNewsithAuthorUsecase", "MakeLoginRequestUsecase"가 있다. 종속 항목1. UseCase 클래스는 UI Layer의 ViewModel과 Data Layer의 Repository 사이에 위치한다.즉, Rep.. 2023. 5. 15. [Android] 앱 아키텍처 가이드 (3) - Data Layer Data 계층데이터 계층은 앱 데이터의 생성과 저장 및 변경 로직에 관련된 계층이다.-> 데이터 계층의 관심사는 앱 데이터를 생성/저장/변경/삭제 하는것에만 맞춰져있다.앱 데이터의 CRUD 로직과 관련된 계층이라는 뜻이다.CRUD는 Create, Read, Update, Delete의 약자이다. Data 계층의 아키텍처Data 계층을 구성하는 계층Repository 계층Datasource 계층 Repository 계층과 DataSource 계층의 관계Repository 계층은 DataSource 계층을 참조한다.Repository 계층에서 DataSource 계층의 코드를 호출한다는 것이다.-> UI 계층에서 처리할 수 없는 비즈니스 로직 처리가 필요하거나 앱 데이터 생성/저장/변경 처리가 필요한 경우.. 2023. 5. 1. [Android] 앱 아키텍처 가이드 (2) - UI Layer UI LayerUI Layer의 역할은 화면에 앱 데이터를 표시하는 것따라서, 사용자 상호작용(ex. 버튼 누르기) 또는 외부 입력(ex. 네트워크 응답)으로 인해 데이터가 변할 때마다 변경사항을 반영하도록 UI가 업데이트 되어야 함사실상 UI Layer는 Data Layer에서 가져온 앱 데이터를 시각적으로 보여주는 것에 관심이 있다. UI Layer의 구성 요소 UI = UIelements + State holders UIelements: UI 요소가 갖는 본질적인 상태예시 TextView의 font, font size, font colorandroid: fontandroid: fontSizeState holders: 화면의 UI요소에 데이터를 보여주기 위해 필요한 앱 데이터예시NewsUiState .. 2023. 4. 29. [Android] 앱 아키텍처 가이드 (1) - 개요 모바일앱 사용자 환경일반적인 Android 앱에는 activity, fragment, service, content provider, broadcast receiver를 비롯하여 여러 앱 구성요소가 포함됩니다. 개발자는 앱 매니페스트에서 이러한 앱 구성요소 대부분을 선언하며, Android OS는 이 파일을 사용하여 기기의 전반적인 사용자 경험에 앱을 통합하는 방법을 결정하구요. 일반적인 Android 앱은 여러 구성요소를 포함할 수 있고, 사용자는 짧은 시간 내에 여러 앱과 상호작용할 때가 많습니다. (유튜브를 보다가 크롬을 켜 검색을 한다던지, 카메라로 사진을 찍고 편집을 위해 갤러리에 들어간다던지 등등)따라서, 앱은 사용자 중심의 다양한 워크플로 및 작업에 맞게 조정될 수 있어야합니다. 또한 휴대.. 2023. 4. 12. 이전 1 2 다음