[Android] OSS Licenses Gradle Plugin 사용하기

akim·2022년 9월 30일
0

안드로이드 프로젝트를 진행하다보면 다양한 라이브러리를 사용하게 된다.
라이브러리 없이 개발은 불가능… 가능한 사람도 있을까?
아무튼 나는 불가능하다.

그런데 이 모든 라이브러리를 사용하기 위해 꼭 필요한 과정이 있다.
바로 사용한 오픈 소스의 라이센스를 어플리케이션 내에 고지하는 것 이다.

여기서 잠깐, 오픈소스(소프트웨어)란?

오픈소스 소프트웨어는 누구나 inspect, modify, enhance 할 수 있는 소스코드를 가진 소프트웨어를 말한다.
오픈소스 소프트웨어를 이용하면 개발 및 수정이 쉽고 배포 또한 자유로워 개발 생태계의 발전에도 큰 도움이 된다.

취지는 참 좋으나 개발 과정에서 사용한 모든 오픈 소스의 종류와 라이센스 조건을 일일이 찾아서 정리하기란 다소 번거롭게 느껴진다.
이러한 불편함을 해소하고자 Google Play services는 개발자가 앱 내에 사용한 라이브러리의 오픈 소스 라이센스를 쉽게 고지할 수 있도록 돕는 툴을 제공한다. 역시 갓구글

그 툴이 바로 OSS Licenses Gradle Plugin 이다.

이 플러그인을 이용하면 프로젝트에 포함된 라이브러리에서 라이센스 조건을 수집하고 목록 형태로 정리하여 자동으로 하나의 액티비티를 생성해준다.

그게 뭐 어쨌는데요?

이렇게 글로만 접하면 이 플러그인이 얼마나 간편한 툴인지 감이 잘 안 오니 실제 플러그인을 적용하는 코드를 보면서 자세히 봐보도록 하자.



1. project 레벨의 build.gradle에 아래와 같이 dependencies 항목을 추가해준다.

buildscript {
    dependencies {
    	...
        classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
    }
}

dependencies 추가


2. 다음으로 app 레벨의 build.gradle에 아래와 같이 plugin과 dependencies 항목을 추가해준다.

plugins {
	...
    id 'com.google.android.gms.oss-licenses-plugin'
}

plugins 추가

dependencies {
	...
    implementation 'com.google.android.gms:play-services-oss-licenses:17.0.0'
}

dependencies 추가


3. 마지막으로 오픈소스 라이센스 화면과 연결될 버튼(혹은 텍스트 등의 뷰)을 통해 OssLiscensesMenuActivity를 띄워준다.

binding.btn.setOnClickListener {
    startActivity(Intent(requireContext(), OssLicensesMenuActivity::class.java))
}

activity 연결

(tvMypageOpenSource라는 textView에 ClickListener를 달아 OssLiscensesMenuActivity를 연결)


실제 애뮬레이터를 돌려 tvMypageOpenSource에 해당하는 텍스트뷰를 터치해보면 아래와 같이 사용한 오픈소스의 목록과 각 세부 사항이 정리된 액티비티가 로드되는 것을 볼 수 있다.

결과





이렇게 해서 안드로이드 프로젝트에 사용된 오픈소스의 라이센스를 고지하는 플러그인에 대해 간단히 알아보았다. 뭐가 너무 없는데요

앞으로 플젝하다가 누가 오픈소스 라이센스 좀 정리해주세요~ 라고 해도 쫄지 말자. 5분컷이니까!



게시글 내용에 대한 질문, 조언 등은 언제나 환영입니다 :)

profile
학교 다니는 개발자

0개의 댓글