안녕하세요, 오늘은 안드로이드 라이브러리를 만드는 방법에 대해 알아보겠습니다
우선 들어가기 앞서서 JitPack으로 배포를 하기 위해서는 Github 계정이 있어야 합니다
전체 코드
https://github.com/ParkSangSun1/Sample_Library
프로젝트 생성
새로운 프로젝트를 생성해 줍니다. 이때 No activity로 해도 되지만 저는 테스트를 위해서 Empty Activity로 생성하였습니다
프로젝트를 생성하면 이런 구조가 보이게 될 겁니다
여기서 이제 library 모듈을 만들어야 합니다
File -> New -> New Module을 눌러주시고 Android Library를 선택해 주세요
그리고 원하는 이름을 적고 FINISH를 눌러주세요
다 만들어졌다면 이곳에 클래스를 하나 만들어주세요
ShowLibrary.kt
class ShowLibrary {
companion object{
fun sToast(context: Context, msg : String) = Toast.makeText(context,msg,Toast.LENGTH_SHORT).show()
fun lToast(context: Context, msg : String) = Toast.makeText(context,msg,Toast.LENGTH_LONG).show()
}
}
간단하게 Toast 메시지를 단축시켜 띄우는 라이브러리입니다
이렇게 코드를 작성했으면 Library모듈의 build.gradle로 가서 몇 가지를 추가해줍니다
plugins {
...
id 'maven-publish'
}
afterEvaluate {
publishing{
publications{
release(MavenPublication){
from components.release
groupId = 'com.pss(패키지 이름)'
artifactId = 'Library(모듈 이름)'
version = '1.0'
}
debug(MavenPublication) {
// Applies the component for the debug build variant.
from components.debug
groupId = 'com.pss(패키지 이름)'
artifactId = 'Library(모듈 이름)'
version = '1.0'
}
}
}
}
android {
...
}
dependencies {
...
}
이제 app 모듈의 build.gradle로 가서 라이브러리를 implementation 해줍니다
implementation project(":Library(모듈 이름)")
그리고 MainActivity에서 사용해보면 잘 작동하는 걸 확인하실 수 있습니다
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
sToast(this, "테스트 Toast")
}
}
JitPack에 배포하기 위해서는 최상단 root파일에 jitpack.yml 파일을 추가해야 합니다
jdk:
- openjdk11
딱 두줄이면 끝납니다
JitPack 배포
이제 JitPack에 배포를 위해서 코드를 깃허브 Repository에 push후 Releases 합니다 (JitPack은 이 releases 파일을 읽어서 배포합니다)
JitPack으로 들어가서 깃허브 로그인 후 (github 이름/Repository 이름) 이런 식으로 검색을 합니다
검색 후 Get it을 누르거나 동그라미 프로그래스 바가 돌아가면 Log에 문서가 나올 때까지 기다립니다
위는 성공적으로 마무리했다는 거고 아래는 오류가 있다는 표시입니다. 문서를 누르면 왜 오류인지 알려줍니다
Get it을 누르고 나오는 코드를 implementation 하면 성공적으로 사용할 수 있게 됩니다!
추가로
안드로이드 개발에 대한 질문과 정보 등을 공유 및 소통하는 채팅방입니다
'Android' 카테고리의 다른 글
[Android] Firebase에서 코루틴을 사용해보자! (feat.Firestore) (0) | 2022.03.11 |
---|---|
[Jetpack compose] Text를 사용해 보자! (0) | 2022.03.03 |
[Android] 쉽고 간편한 Dagger Hilt를 사용해 보자! (0) | 2021.12.29 |
Clean Architecture + MVVM + Coroutine + Hilt + Retrofit을 이용하여 안전하게 Github API를 호출해 보자! (0) | 2021.12.27 |
Android Clean Architecture를 지향한 MVVM 패키지 구조 (0) | 2021.12.16 |