sooleeandtomas

안드로이드스튜디오에서 domain 모듈 분리하는 방법 본문

코틀린/kotlin

안드로이드스튜디오에서 domain 모듈 분리하는 방법

sooleeandtomas 2022. 7. 13. 23:40

## before 폴더구조

- app

     -manifest

     -java

          -[foldername]

          -[foldername](androidTest)

          -[foldername](test)

      -res

-Gradle Scripts

      -build.gradle(Project:[ProjectName])

      -build.gradle(Module:[ProjectName].app)

      -settings.gradle


## after 폴더구조

 

- app

     -manifest

     -java

          -[foldername]

          -[foldername](androidTest)

          -[foldername](test)

      -res

-domain

      -java

         -[foldername].domain

         -[foldername].domain(test)

-Gradle Scripts

      -build.gradle(Project:[ProjectName])

      -build.gradle(Module:[ProjectName].app)

      -build.gradle(Module:[ProjectName].domain)

      -settings.gradle

 


 

 

1. 모듈을 생서하는 방법

Android Studio > File > New Module > Java or Kotlin Library

순수 자바/코틀린 모듈을 설치하기 위해서는 "Java or Kotlin Library"를 설치해야 한다. 그래야 순수 class 파일만 생성할 수 있다.

만약 Android Library를 설치하게 되면 불필요한 manifest xml 등의 파일들이 설치되게 된다.

  • Library module - The purpose of a library is to share code. For example, you could have a project with a couple different app modules. The common code that they both use could be located in the library.
    • Android Library - In addition to Java code, this allows you to also include Android resource files and a manifest. If you are making an Android project and are wondering what kind of library to use, then choose the Android Library. When compiled it creates an AAR (Android Archive) file.
    • Java Library - This only allows you to include Java code files, no Android resource files. This is useful for cross-platform code sharing. When compiled it creates a JAR (Java Archive) file

출처:https://stackoverflow.com/questions/28154681/android-studio-java-library-module-vs-android-library-module

 

2. build.gradle파일 작성

settings.gradle

settings.gradle에 include : ':domain' 가 추가된 것을 볼 수 있다.

include ':app'
rootProject.name = "AndroidCalculator"
include ':domain'

 

build.gradle(Module:[ProjectName].app)

dependencies에 생성한 모듈을 implementation으로 추가해준다.

* 라이브러리는 추가 / 삭제가 빈번하지만, 프로젝트 의존성 연결은 추가 / 삭제가 빈번하지 않습니다.
그래서 프로젝트 implementation은 dependencies 블록의 상단에 위치하는 것이 관리 측면에서 좀 더 좋습니다.

dependencies{
	implementation project(":domain")
	...
}

 

build.gradle(Module:[ProjectName].domain)

해당 모듈에 필요한 dependencies만 추가해준다.

repositories에 mavenCentral() 또는 jcenter()을 추가해준다.

...

dependencies {
    testImplementation 'junit:junit:4.+'
}

repositories{
    mavenCentral() // or jcenter() 
}

 

 

'코틀린 > kotlin' 카테고리의 다른 글

안드로이드 코틀린 아키텍쳐와 테스트 (1)  (0) 2022.07.13
코틀린 화면 구성하기  (0) 2021.09.18
android studio를 M1에서 사용하기  (0) 2021.09.13
코틀린 문법  (0) 2021.09.07
Comments