본문 바로가기

Android/Gradle

(5)
[Gradle] Implementation vs Api Gradle에서 dependencies 블록에서는 implementation, annotationProcessor, api, lintChecks 등 다양한 키워드를 사용하여 종속 항목을 추가할 수 있다. 그중, 사용 용도가 비슷하여 헷갈릴 수 있는 api와 implementation의 차이점에 대하여 알아보고자 한다. 안드로이드 공식 페이지에서 API와 Implementation에 대하여 확인해보면 다음과 같이 나와있다. implementation Gradle이 컴파일 클래스 경로에 종속 항목을 추가하고 빌드 출력에 종속 항목을 패키징 합니다. 그러나 모듈에서 implementation 종속 항목을 구성하면 모듈이 컴파일 시간에 종속 항목을 다른 모듈에 누출하기를 바라지 않는다는 것을 Gradle에 알려..
[Gradle] 빌드 변형 구성을 사용하여 하나의 앱을 나눠보자. Developer 페이지를 확인해보면, 빌드 구성 개요를 토대로 단일 프로젝트에서 다양한 버전의 앱을 생성하기 위해 빌드 변형을 구성하는 방법과 관리하는 방법을 설명해주고 있다. 기본적으로 사용하고 있던 Debug와 Release 외에도 원하는 대로 커스텀하여 앱을 나누어서 사용이 가능한데, 이번에는 해당 방법에 대해 알아보고자 한다. 우선, 가장 간단한 방법으로 앱을 나눠보도록 하자. buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } Module 범위의 gradle에서 buildTypes를 확인해보면, 별 ..
[Gradle] Gradle 7.2 버전 대응하기. Bumblebee가 나온 이후로, 최신 버전으로 프로젝트를 생성하면 Gradle이 좀 다른 것을 볼 수 있다. Project 범위의 gradle과 setting.gradle에 변경사항이 있는데, 해당 변경사항에 따라 대응하는 과정을 작성해두려고 한다. 우선, gradle-wrapper.properties에서 gradle 버전을 확인해보면, distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip 이처럼 7.2 이상 버전에서 적용되는 방식이다. 정확한 버전을 확인하기 위해서는 Developer 사이트에서 확인하길 바란다. 지금까지 프로젝트를 생성하면, 다음과 같은 project 범위의 gradle을 볼 수 있었을 것이다. b..
[Android] 공통된 Gradle Code를 빼내어 관리해보자. 이전 게시글 2022.02.08 - [Android/Gradle] - [Android] Multi Module에서 Gradle 공통화를 해보자. 에서도 공통된 Gradle Code를 빼내어서 공통화시킨다는 동일한 주제로 글을 작성했었다. 하지만, 해당 글에서 해결하지 못했던 부분에 대해 해결하게 되어서 글을 다시 작성하게 되었다. 우선, 이전 게시글에서는 중복된 코드가 들어간 common.gradle을 만들고, Project 범위의 gradle에서 추가하는 방식을 사용했다. 이 과정에서 dependencies와 compileSdkVersion과 같이 빼내지 못하는 코드들이 있었고, 해당 코드들은 중복된 부분이 있다고 하더라도 각각의 module 범위의 gradle에 작성하여 사용하였다. 여기서, Proj..
[Android] Multi Module에서 Gradle 공통화를 해보자. Clean Architecture 관련 예제를 만들며 공부를 하던 도중, 모듈을 여러개로 나누어서 테스트하다보니 gradle 에서 공통된 코드들이 많아서 이것을 하나의 코드로 관리할 수 있는 방법에 대해서 찾아보았다. 생각보다 많은 자료가 나오지 않았고, 다양한 오류가 발생하여 만족스럽게 작업을 하지 못하였으나 기록하기 위해 작성한다. (추후 수정이 된다면 내용도 수정 될 예정입니다. 알고 계신분은 많은 가르침 부탁드립니다.) 우선, 하나의 gradle 파일로 공통된 부분을 관리하기 위한 gradle 파일을 생성해 주어야 한다. gradle 파일의 위치는 편한대로 지정해도 되지만, 필자는 가장 최상위 프로젝트 폴더에 생성해 두었다. 필자처럼 gradle 파일을 한번도 생성해보지 않은 사람은, 어떻게 gr..