Android/Gradle (7) 썸네일형 리스트형 [Android] toml 파일을 사용하여 Gradle을 개선해보자. 회사 동료와 이야기를 하던 도중, python의 pyproject.toml이라는 것을 알게 되었고 확인해 보니 프로젝트의 빌드 시스템을 정의하는 파일이었다.그리고 toml에 대해서 확인해보니 android 환경의 gradle에서도 적용이 가능하였고, 알고 보니 많은 프로젝트들에서 toml 파일을 사용하여 gradle의 의존성을 관리하고 있다는 것을 알게 되었다. 사용할 수 있다는 것을 알게되었으니, 당연히 한번 적용해봐야 하지 않겠는가?라는 생각을 가지고, 샘플 프로젝트의 gradle에 사용되는 의존성을 toml 파일을 사용하여 관리할 수 있도록 수정해 보았고, 그 과정에 대해 간단하게 글을 작성해 보도록 하겠다.우선,가장 기본적인 toml이란 무엇인가 부터 알아보자.toml이란,Tom's Obvious.. [Android] kapt에서 ksp로 마이그레이션 하는 방법 및 차이점 비교. ksp는 출시한 지 몇 년 된 것으로 알고 있었는데 라이브러리를 사용하고 있는 내가 kapt와 ksp에 대한 차이를 명확하게 모르고 있다는 것을 인지하고, 그것에 대해 알아보기 위해 공부를 해야겠다고 느꼈다. 따라서,kapt와 ksp에 대해 알아보고, 사용하고 있는 라이브러리를 마이그레이션 하는 방법, 그리고 어떠한 차이가 있는지에 대해 알아보고자 한다.우선 kapt가 무엇인지 알아보자. kapt란,Kotlin Annotation Processing Tool의 약자로 자바의 어노테이션 프로세서를 코틀린에서 사용할 수 있게 해주는 도구라고 한다. kapt는 자바에서 사용되는 어노테이션 프로세서를 코틀린에서 사용할 수 있게 해 준다는데, 이게 무슨 말인가 싶을 것이다.간단하게 생각하면@Entity와같이 작성.. [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.. 이전 1 다음