[Android][Kotlin] Kakao SDK 설정

HJTN·2024년 6월 5일
0

Android App 개발

목록 보기
5/5

포스트 작성 계기


예전 KakaoMapSDK 설정 방식

  • Kakao Developers에서 제공하는 여러 API의 원활한 사용을 위해 Android 프로젝트의 설정 방법을 정리하기 위함
  • 예전엔 Kakao Map을 사용하기 위해 SDK 파일을 다운 받은 후, 프로젝트에 추가했어야 했는데, 최근에 v2로 이동하면서 설정이 조금 변경됨
  • Kakao Map SDK v2에 관한 Android (with Kotlin) 설정이 별로 없어서 정리해 봄

개발 요구 사항


  • Android Studio 3.6.1 이상
  • API 23: Android 6.0 (Marshmallow) 이상

1 단계 - Gradle 설정 및 모듈 설정


1. "settings.gradle.kts" 파일에 다음 코드 추가

// 아래 코드 추가
maven { url = java.net.URI("https://devrepo.kakao.com/nexus/content/groups/public/")

❇️ Kakao Map의 경우, 다음 코드 추가

// 아래 코드 추가
maven { url = java.net.URI("https://devrepo.kakao.com/nexus/repository/kakaomap-releases/") }

❇️ 파일 설정 결과

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
        maven { url = java.net.URI("https://devrepo.kakao.com/nexus/content/groups/public/") }
        maven { url = java.net.URI("https://devrepo.kakao.com/nexus/repository/kakaomap-releases/") }
    }
}

2. “build.gradle.kts (Module)” 파일에 필요한 모듈 설정

dependencies {
  implementation "com.kakao.sdk:v2-all:2.20.1" // 전체 모듈 설치, 2.11.0 버전부터 지원
  implementation "com.kakao.sdk:v2-user:2.20.1" // 카카오 로그인 API 모듈
  implementation "com.kakao.sdk:v2-share:2.20.1" // 카카오톡 공유 API 모듈
  implementation "com.kakao.sdk:v2-talk:2.20.1" // 카카오톡 채널, 카카오톡 소셜, 카카오톡 메시지 API 모듈
  implementation "com.kakao.sdk:v2-friend:2.20.1" // 피커 API 모듈
  implementation "com.kakao.sdk:v2-navi:2.20.1" // 카카오내비 API 모듈
  implementation "com.kakao.sdk:v2-cert:2.20.1" // 카카오톡 인증 서비스 API 모듈
}

❇️ Kakao Map의 경우, 다음 모듈 설정

dependencies {
	implementation "com.kakao.maps.open:android:2.9.5"
}

2 단계 - Kakao Developers에 플랫폼 등록


1. Kakao Developers 홈페이지로 이동

Kakao Developers 홈페이지
Kako Developers로 이동

2. 로그인 후, 내 애플리케이션으로 이동

내 애플리케이션으로 이동

3. "애플리케이션 추가하기"로 프로젝트에 사용하는 애플리케이션 등록


4. 생성한 애플리케이션에 플랫폼 추가



5. Android 앱의 패키지명 찾기 및 등록


❇️ 마켓 URL은 있으면 작성, 없으면 없음으로 선택

6. Android 앱의 키 해시 찾기 및 등록

  • 키 해시: 인증서 지문 값을 Hash를 적용한 값으로, 해당 앱이 악성 앱인지 판별하는데 사용
  • MainActivity.kt” 파일에 다음 코드를 추가 후, 앱을 실행하여 키 해시 확인
import com.kakao.sdk.common.util.Utility

Log.d("KeyHash", "${Utility.getKeyHash(this)}")

❇️ 다른 방법으로도 키 해시를 찾을 수 있는데 개인적으로 Kakao SDK로 확인하는게 편한 것 같음

7. 추후 프로젝트에서 Kakao SDK 사용 시 "네이티브 앱 키" 사용

3 단계 - 프로젝트 설정


1. 인터넷 사용 권한 설정

  • "AndroidManifest.xml" 파일에 권한 추가
<!-- 인터넷 사용 권한 설정-->
    <uses-permission android:name="android.permission.INTERNET" />

❇️ 권한 추가 결과

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sample">
 
    <!-- 인터넷 사용 권한 설정-->
    <uses-permission android:name="android.permission.INTERNET" />

    <application
		    android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
    ...

2. Java 8 사용 설정

  • "build.gradle.kts (Module)" 파일에 아래와 같이 설정
// Java 8 사용을 위한 build.gradle.kts 설정
android {

		...
		
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_1_8
        targetCompatibility = JavaVersion.VERSION_1_8
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

❇️ Android Jellyfish에서 새로운 프로젝트 생성 시, 자동으로 추가되어 있음

4 단계 - Kakao SDK 사용을 위한 SDK 초기화


1. Kakao SDK 초기화

  • 이전 단계에서 한 모든 설정을 적용 후, "네이티브 앱 키"를 통해 SDK 초기화
class ApplicationClass : Application() {

	...
	
	override fun onCreate() {
		super.onCreate()
		
		KakaoSdk.init(this, "네이티브 앱 키")
		
		...
	}
	
	...
	
}

2. KakaoMap SDK 초기화

class ApplicationClass : Application() {

	...
	
	override fun onCreate() {
		super.onCreate()
		
		KakaoSdk.init(this, "네이티브 앱 키")
		KakaoMapSdk.init(this, "네이티브 앱 키")
		
		...
	}
	
	...
	
}

3. "AndroidManifest.xml" 파일에 Application 클래스 설정

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.sample">
 
    <!-- 인터넷 사용 권한 설정-->
    <uses-permission android:name="android.permission.INTERNET" />

    <application
		    <!-- android:name 설정 -->
		    android:name=".ApplicationClass"
		    android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
    ...

참고


Kakao Developers 홈페이지 문서
KakaoMaps SDK v2 문서

profile
Hello~

0개의 댓글