SDK 의존성 추가
이 단계에서는 프로젝트에 loplat SDK와 필수 라이브러리를 추가합니다.
목표
- 1. Maven 저장소 등록
- 2. SDK 의존성 추가
- 3. 필수/권장 부가 라이브러리 반영
저장소 등록
프로젝트 루트의 Gradle 설정에 저장소를 추가합니다.
템플릿에 따라 build.gradle / settings.gradle 구조가 다를 수 있습니다. 사용 중인 템플릿에 맞게 추가해 주세요.
- Groovy (build.gradle)
- Kotlin DSL (build.gradle.kts)
- Groovy (settings.gradle)
- Kotlin DSL (settings.gradle.kts)
allprojects {
repositories {
mavenCentral()
maven { url "https://maven.loplat.com/artifactory/plengi" }
google()
}
}
allprojects {
repositories {
mavenCentral()
maven(url = "https://maven.loplat.com/artifactory/plengi")
google()
}
}
dependencyResolutionManagement {
repositories {
mavenCentral()
maven { url "https://maven.loplat.com/artifactory/plengi" }
google()
}
}
dependencyResolutionManagement {
repositories {
mavenCentral()
maven(url = "https://maven.loplat.com/artifactory/plengi")
google()
}
}
SDK 의존성 추가
SDK 의존성을 추가하고 발급받은 인증 정보를 입력합니다.
SDK 추가
앱 모듈 build.gradle / build.gradle.kts 에 아래를 추가합니다.
- Groovy (build.gradle)
- Kotlin DSL (build.gradle.kts)
implementation 'com.loplat:placeengine:2.1.2.8.4'
implementation("com.loplat:placeengine:2.1.2.8.4")
인증 정보 추가
앱 모듈 build.gradle / build.gradle.kts 에 아래의 코드를 추가해서 발급받은 client_id, client_secret를 입력해주세요.
- Groovy (build.gradle)
- Kotlin DSL (build.gradle.kts)
defaultConfig {
resValue "string", "[client_id 키명]", "[client_id]"
resValue "string", "[client_secret 키명]", "[client_secret]"
}
defaultConfig {
resValue("string", "[client_id 키명]", "[client_id]")
resValue("string", "[client_secret 키명]", "[client_secret]")
}
필수/권장 라이브러리 추가
SDK 동작에 필요한 라이브러리들을 앱 레벨 build.gradle에 추가해 주세요.
필수 라이브러리
예시 코드의 라이브러리 버전은 로플랫 SDK에서 안정적으로 동작하는 것을 확인한 버전입니다.
안내드린 버전을 사용하는 것을 권장드립니다.
1. play-services-location(21.0.1)
효율적인 위치 정보 획득을 위해서 사용합니다.
- Groovy (build.gradle)
- Kotlin DSL (build.gradle.kts)
implementation 'com.google.android.gms:play-services-location:21.0.1'
implementation("com.google.android.gms:play-services-location:21.0.1")
2. play-services-ads-identifier (18.0.1)
SDK 운영 간 서비스 효율성을 위해 사용합니다.
- Groovy (build.gradle)
- Kotlin DSL (build.gradle.kts)
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation("com.google.android.gms:play-services-ads-identifier:18.0.1")
권장 라이브러리
예시 코드의 라이브러리 버전은 로플랫 SDK에서 안정적으로 동작하는 것을 확인한 버전입니다.
안내드린 버전을 사용하는 것을 권장드립니다.
만약 다른 버전을 사용 중이고 버전 변경이 어렵다면 사용 중이신 버전을 알려 주시면 SDK 동작에 문제가 없는지 확인해 드리겠습니다.
1. 서버 통신 관련
SDK에서는 서버와의 통신을 위해 아래 라이브러리들을 사용합니다.
- Groovy (build.gradle)
- Kotlin DSL (build.gradle.kts)
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:okhttp:3.14.9'
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-gson:2.9.0")
implementation("com.squareup.okhttp3:okhttp:3.14.9")
2. Android Support 라이브러리
SDK에서는 AndroidX 라이브러리로 다음 버전을 사용합니다.
- Groovy (build.gradle)
- Kotlin DSL (build.gradle.kts)
implementation 'androidx.appcompat:appcompat:1.4.2'
implementation("androidx.appcompat:appcompat:1.4.2")
Proguard/R8 설정
Retrofit/GSON 사용 + 난독화 적용 시 아래 룰을 추가해 주세요.
-dontwarn okio.**
-dontwarn javax.annotation.**
# R8 compatibility for GSON, Serialization 룰보다 먼저 선언
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
-keepclasseswithmembers class * {
@retrofit2.http.* <methods>;
}
-keep class com.loplat.placeengine.cloud.ResponseMessage** {*;}
-keep, allowobfuscation, allowshrinking interface retrofit2.Call
-keep, allowobfuscation, allowshrinking class retrofit2.Response
Firebase 사용 앱 주의사항
Firebase 제품을 한 가지라도 사용 중이라면 loplat SDK와 충돌해 crash가 발생할 수 있습니다.
Application.onCreate() 최상단에 초기화를 명시해 crash 위험을 낮춰 주세요.
- Java
- Kotlin
FirebaseApp.initializeApp(this);
FirebaseApp.initializeApp(this)
체크포인트
- 저장소 URL 오타 여부
-
client_id,client_secret키 및 값의 오타 여부 - 필수, 추가 권장 라이브러리 포함 여부
- 위
placeengine버전이 권장 버전(2.1.2.8.4)과 일치하는지 - 난독화 환경이면 Proguard 룰 반영 여부