Android add library using toml

2024. 11. 27. 23:21·Android
728x90
반응형

toml 파일을 사용하게 된 계기

이번 신규 프로젝트를 진행하게 되었는데,

그에 따라 프로젝트 자체를 새로 생성하면서 build.gradle 언어를 Kotlin DSL로 설정했더니

Android Studio Koala를 쓰는 나에게 toml이 포함된 프로젝트가 생성되었다.

 

여기저기 오픈소스 라이브러리에서 혹은 developer 사이트에서도 자주 볼 수 있는 녀석이라

이번 기회에 써보기로 했다.

 

Retrofit 추가해보기

어차피 대부분 앱은 네트워크 작업이 필요하고 그에 따라 가장 대중적인 라이브러리는 단연 Retrofit일 것이다.

 

하지만, 기존 toml을 사용해본적 없는 나로서는 상당히 검색할 시간이 필요했다.

 

먼저 toml 파일 수정하기

[versions]
... //
retrofit = "2.11.0"
serialization = "1.7.3"
serializationConverter = "1.0.0"
scalarsConverter = "2.9.0"
loggingInterCeptor = "4.12.0"
kotlinxSerialization = "2.0.20"
... //

[libraries]
... //
retrofit-core = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "serialization" }
retrofit-serialization-converter = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "serializationConverter" }
retrofit-scalars-converter = { group = "com.squareup.retrofit2", name = "converter-scalars", version.ref = "scalarsConverter" }
retrofit-logger = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "loggingInterCeptor" }
... //

[bundles]
retrofit = [
    "retrofit-core",
    "serialization",
    "retrofit-serialization-converter",
    "retrofit-scalars-converter",
    "retrofit-logger",
]

[plugins]
... //
kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlinxSerialization" }

우리가 익숙하게 사용했던 implementation 'com.squareup.retrofit2:retrofit:1.0.0' 형식으로

개별 아티팩트를 명시했던 것을 toml 파일의 versions에 해당 버전만 따로 명시한다.

 

그리고 libraries에서 해당 dependency 표기를 나누어 적어주면 된다.

 

다음은 bundles인데 여기서 여러 dependency를 한번에 묶어서 관리할 수 있다.

 

또한, 묶어서 app 모듈에서 가져다 쓰는 것도 가능하다.

 

이제 plugins에 대한 소개가 남았다.

 

여기는 기존 project 수준의 build.gradle에서 plugins 블럭의 내용을 그대로 옮겼다고 할 수 있다.

 

원래 id("org.jetbrains.kotlin.plugin.serialization") version "1.0.0" apply false와 같은 형식을 옮기며

app 수준 build.gradle에서 kotlinx-serialization으로 가져다 쓸 수 있다.

 

app 수준 build.gradle에 추가하기

plugins {
	... //
	alias(libs.plugins.kotlinx.serialization)
}

...//

dependencies {
	... //
    implementation(libs.bundles.retrofit)
}

먼저 plugins 블럭을 보자.

 

alias라는 키워드로 추가할 수 있고

toml 파일에서 kotlinx-serialization으로 선언해둔 이름은 "-"가 "."으로 변환되었다.

 

dependencies 블럭에서도 같은 패턴으로 toml에 명시한 내용을 가져올 수 있다.

 

내 경우에는 retrofit 번들 자체에 구분자가 없기에 보이지 않겠지만 말이다.

 

마무리

toml 파일 먼저 떠올려보면 versions에서 정말 버전을 명시,

libraries에서 group, name, version.ref를 구분하여 명시,

bundles로는 각 라이브러리를 묶을 수 있고 plugins도 project 수준 build.gradle과 거의 같은 느낌이다.

 

이렇게 돌아보면 딱히 어려운 점은 없다.

 

하지만, 이런 형식을 처음 접한 나에게는 매우 생소한 경험이었다.

 

다른 프로젝트에서 toml을 사용하는 경우에 읽는 시간이 단축될 것이라 생각한다.

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Android' 카테고리의 다른 글

Store Signed APK 실행 시 Play Store로 이동  (0) 2025.02.11
Android Share Image File In 2way  (0) 2025.01.01
Android QR Code Generation  (0) 2024.11.26
Android Watchdog 기능 추가하기(OS 9)  (0) 2024.11.25
Android Phone Number Format(자동 하이픈 추가)  (0) 2024.11.24
'Android' 카테고리의 다른 글
  • Store Signed APK 실행 시 Play Store로 이동
  • Android Share Image File In 2way
  • Android QR Code Generation
  • Android Watchdog 기능 추가하기(OS 9)
BonusTrack02.dev
BonusTrack02.dev
공부, 일상
  • BonusTrack02.dev
    BonusTrack02.dev
    BonusTrack02.dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (237)
      • Android (84)
      • Language (63)
        • Java (19)
        • Kotlin (27)
        • Swift (17)
      • 프로그래머스 (68)
      • 주저리주저리 (22)
        • 카페 (5)
        • 음식점 (4)
        • 컨퍼런스 (1)
        • 팝업스토어 (4)
        • 해외여행 (0)
        • 전시회 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코루틴
    databinding
    오블완
    티스토리챌린지
    MVVM
    Material
    코틀린
    viewModelScope
    daterangepicker
    SWIFT
    CodeLab
    coroutines
    프로그래머스
    room
    Kotlin
    jetpack
    Java
    배열
    자바
    Observer
    ViewModel
    PCCE
    ios
    스위프트
    LiveData
    programmers
    aac
    getNumericValue
    안드로이드
    android
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
BonusTrack02.dev
Android add library using toml
상단으로

티스토리툴바