Skip to content

Branch: package_by_feature

Vanskarner edited this page Oct 30, 2023 · 2 revisions

Gradle Modules Dependency

Gradle Modules Dependency

Components

Simplified Showing Internal Structure of the Movie Component
simplified component diagram Component diagram with internal structure
Showing Main Component
Component diagram with Main

Main Component

The main component is made up of the module configuration and also includes auto-generated code from the dependency injection framework.

Main Component Configuration

Movie Component

The Movie component is represented by the com.vanskarner.movie package, as shown in the following diagram:

Movie Package Class Diagram

Note that both local and remote persistence depend on the business logic package, as shown in the internal structure of the Movie component in the component diagram.

Service Exposure

These are the software artifacts that are visible to the client or consumer of this component:

Service Exposure

Movie Dependencies

This diagram shows the dependency of the Movie component on the Core component:

Movie Component Dependency

Testing

Locals

Local Tests in com.vanskarner movie

Instrumented

Instrumented Tests in com.vanskarner.movie.persistence.local

AndroidView Component

This component contains the detail of the view in Android. It is a maximally concrete component (A = 0) and is the one that consumes the presentation services of the Movie component. However, from an architectural perspective, it does not represent the view, since the view is actually the abstraction implemented by the fragments.

Android View Component Class Diagram

AndroidView Dependencies

This diagram shows the dependency of the AndroidView component on the Movie component:

AndroidView Component Dependencies

Testing

Locals

Local Tests in 'com.vanskarner.cleanmovie.ui.movie'

Instrumented

Instrumented Tests in 'com.vanskarner.cleanmovie.ui.movie'

Metrics

Application

Summary of application metrics.

Application Metrics in this Branch

Instability/Abstraction Graph

All gradle modules are located in this graph.

Instability/Abstraction Graph

Core

Core Instability/Abstraction Graph

Movie

Movie Instability/Abstraction Graph

App

It is important to note that a gradle module does not always necessarily represent a single component. In fact, the gradle module "app" hosts both the Main component and the AndroidView component.

App Instability/Abstraction Graph

It may not be necessary to show here the metrics of the upcoming, upcomingDetail and favorites package dependencies, but I show them for illustrative purposes only:

Metrics for the packages of the AndroidView component

Clone this wiki locally