반응형
안드로이드 프로젝트 설정 멀티 모듈 적용 해보도록 하겠습니다.
nowinandroid 깃헙 보면 core 모듈안에 여럿 모듈이 들어가 있다. (2024.05.16 기준)
모듈이 많은데 나는 필요한 모듈만 생성해볼 것이다.
모듈 생성했을 때 폴더 모양
- 초록색 점으로 표시되는게 Application(Android App Module)
- 책 모양으로 표시되는게 Android Library
- 파란색 네모로 표시되는게 Java & Kotlin Library 이다.
모듈 삭제 방법
- 모듈을 잘못 생성했을 때 삭제 하는 방법
- File - Project Structure - Modules 에서 삭제
core 모듈 생성
Core폴더의 모듈은 Android Library 템플릿을 사용한다고 함.
- 나는 Java or Kotlin Library로 만들었다. (Android Library로 만드니 폴더 모양이 좀 다른듯..? 했음)
- 만들어 주고 안에 있는 파일들 다 삭제함.
Domain 모듈 생성
- Android Library로 모듈 만들어주고 안에 있는 파일 부분 삭제
- build.gradle.kts 에 android { 부분 namespace 빼고 다 제거
Data 모듈 생성
testOptions {
unitTests {
isIncludeAndroidResources = true
isReturnDefaultValues = true
}
}
- isReturnDefaultValues는 Android Gradle Plugin에서 유닛 테스트 실행 시 기본 값을 반환하도록 설정하는 옵션입니다.
이 설정은 특히 Mockito 같은 라이브러리와 함께 사용할 때 유용하며, 실제 인스턴스 대신 기본 값을 반환함으로써 테스트 환경을 보다 단순화하고 안정화할 수 있습니다.
Model
- Model은 Java or Kotlin Library로 생성
Network
buildFeatures {
buildConfig = true
}
testOptions {
unitTests {
isIncludeAndroidResources = true
}
}
- buildFeatures { buildConfig = true }는 Gradle 빌드 스크립트에서 사용되는 설정으로, BuildConfig 클래스의 생성을 활성화합니다.
BuildConfig 클래스는 프로젝트 빌드 시 자동으로 생성되며, 애플리케이션과 빌드 타입에 대한 다양한 메타데이터를 포함합니다.
이는 특히 앱 버전, 빌드 타입 등의 정보를 코드 내에서 쉽게 접근할 수 있게 해줍니다. - includeAndroidResources는 Android 라이브러리 모듈에서 리소스 파일을 포함하여 사용할 수 있도록 하기 위한 설정입니다.
일반적으로 Android 라이브러리 모듈은 Java 또는 Kotlin 코드뿐만 아니라 리소스 파일 (예: XML 레이아웃, 이미지, 문자열 리소스 등)도 포함할 수 있습니다.
이 설정이 없으면 해당 라이브러리 모듈에서 리소스를 사용할 수 없게 됩니다. - testOptions 블록 안에서 unitTests에 isIncludeAndroidResources를 설정하는 것은 Android 유닛 테스트에서 리소스를 사용할 수 있도록 하기 위한 것입니다.
이 설정을 통해 Android 리소스 파일(예: XML 레이아웃, 문자열 리소스 등)을 유닛 테스트 중에 포함하고 사용할 수 있게 됩니다.
기본적으로 Android 유닛 테스트는 Android 리소스를 사용할 수 없기 때문에, 리소스를 필요로 하는 테스트를 실행하려면 isIncludeAndroidResources를 true로 설정해야 합니다.
이는 특히 리소스를 사용하는 뷰나 컴포넌트의 테스트에 유용합니다.
모듈 만든 결과
참조 :
https://jminie.tistory.com/197
https://everyday-develop-myself.tistory.com/313
https://dev-inventory.com/5
반응형
'안드로이드 > 앱 제작 관련' 카테고리의 다른 글
[Android] Gradle VersionCatalog 알아보자 (0) | 2024.05.16 |
---|