앱을 개발할 때 테스트를 진행하거나 개발이 완료된 후 사용자에게 배포하려면 빌드 작업이 필요한데 이런 작업들을 그레이들이라는 도구를 이용합니다.
그레이들 파일은 크게 프로젝트 수준과 모듈 수준으로 구분됩니다. 프로젝트 수준의 그레이들 파일은 전체 프로젝트를 위한 설정이며, 모듈 수준의 그레이들 파일은 각 모듈을 위한 설정 파일입니다. 모듈 하나당 하나의 그레이들 파일이 만들어집니다.
settings.gradle
프로젝트에서 Gradle Scripts 폴더의 settings.gradle 파일이 존재하는데 이 파일은 그레이들에 모듈을 포함하여 그레이들이 모듈을 관리하고 빌드하게 설정하는 파일입니다.
프로젝트에 여러 모듈을 만들어 개발하면 모듈을 만들 때마다 모듈명이 자동으로 setttings.gradle에 포함되므로 개발자가 직접 파일을 조정하는 일은 많지 않습니다.
프로젝트 수준의 그레이들
프로젝트 수준의 그레이들 파일은 Gradle Scripts 영역의 맨 위에 있는 build.gradle로, 옆에 프로젝트 명이 표시된 파일입니다.
이 곳에서는 주로 dependencies 부분에 라이브러리를 추가하거나 위 사진의 kotlin_version 부분 처럼 버전 정도를 명시해줄 때 많이 쓰입니다.
모듈 수준의 그레이들
개발자가 그레이들을 설정한다면 대부분은 모듈 수준의 그레이들 파일입니다.
- compileSdkVersion : 사용하는 컴파일러 버전. 빌드 시 이용되는 툴 버전 정보입니다. 때에 따라 외부에서 작성된 코드를 불러와서 사용하는 경우 변경해줘야 할 때가 있습니다.
- applicationId : 앱의 식별자. 안드로이드 앱은 특정 키로 식별되지 않고 개발자가 그레이들 파일에 applicationId 속성으로 지정한 문자열로 식별합니다. 세상에서 유일무이한 단어로 주어야합니다.
- minSdkVersion : 최소 지원 범위. 개발자가 이 앱을 몇 버전의 스마트폰까지 지원할 것인지에 대한 설정입니다.
- targetSdkVersion : 사용하고 있는 SDK 버전. 개발 시 이용하고 있는 라이브러리 버전입니다. 대부분 최신 버전을 지정하여 사용합니다.
- versionCode : 앱의 버전. 스마트폰 앱들은 수시로 버전이 업데이트되므로 앱을 사용자에게 서비스하는 도중 앱이 업데이트되면, 이 정보를 변경하여 다시 구글 play 스토어에 등록하면 됩니다.
- dependencies : 앱을 위한 라이브러리 등록. 다양한 라이브러리를 앱에서 이용하려면 꼭 그레이들 파일의 dependencies에 등록해 주어야 합니다.
참조 — 깡샘의 안드로이드 프로그래밍