Android

[Android] Kakao Login 구현하기2 - 프로젝트 설정

너츠너츠 2023. 9. 30. 16:45

도입

이전 글에서는 카카오 로그인 기본 설정에 대해서 알아봤습니다. (링크)

이번 글에서는 Android 프로젝트를 설정하는 방법에 대해서 정리하겠습니다.

 

프로젝트 설정

1. 인터넷 사용 권한

App 모듈의 Manifest에 Internet Permission을 추가합니다.

<!-- 인터넷 사용 권한 설정-->
<uses-permission android:name="android.permission.INTERNET" />

 

2. Gradle을 설정합니다.

Android Studio Artic Fox 버전을 기준으로 관리하는 곳이 달라집니다.

  • build.gradle(프로젝트 레벨): Android Studio Artic Fox 이전 버전
// 최신 Android Studio에서는 allprojects 사용 불가능
allprojects {    
    repositories {        
        google()        
        jcenter()        
        maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/'}    
    }
}
  • settings.gradle(프로젝트 레벨): Android Studio Artic Fox 이후 버전

 

dependencyResolutionManagement {    
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)    
        repositories {        
            google()        
            mavenCentral()        
            maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }    
    }
}

 

3. 모듈 설정

그 외 필요한 모듈은 링크를 참고해주세요

dependencies {
  implementation "com.kakao.sdk:v2-all:2.17.0" // 전체 모듈 설치, 2.11.0 버전부터 지원
  implementation "com.kakao.sdk:v2-user:2.17.0" // 카카오 로그인
}

 

4. 초기화

카카오는 Application에서 KakaoSdk를 초기화해줘야 합니다.

class GlobalApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    // 다른 초기화 코드들

    // Kakao SDK 초기화
    KakaoSdk.init(this, "${NATIVE_APP_KEY}")
  }
}

 

5. Redirect URI 설정

카카오 로그인 기능을 구현하기 위해서는 리다이렉션 (Redirection)을 통해 인가 코드를받아야 합니다. 이를 위해 매니페스트에 액티비티 설정이 필요합니다.

<activity 
    android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        
        <!-- Redirect URI: "kakao${NATIVE_APP_KEY}://oauth" -->
        <data android:host="oauth"
                android:scheme="kakao${NATIVE_APP_KEY}" />
    </intent-filter>
</activity>

 

카카오 API Key 관리

중요한 key값의 경우 외부에 노출되면 안되기 때문에 보통 local.properties를 통해 관리합니다.

관리하는 방법은 링크를 참고해주세요

 

저는 이 방법을 통해 다음과 같이 설정했습니다.

// Properties 객체 생성
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

defaultConfig {
   // ...
   manifestPlaceholders = [kakao_native_app_key: properties["KAKAO_NATIVE_APP_KEY"]]
   buildConfigField "String", "KAKAO_NATIVE_APP_KEY", properties['KAKAO_NATIVE_APP_KEY']
}
class MyApplication : Application() {

	override fun onCreate() {
		super.onCreate()

		KakaoSdk.init(this, BuildConfig.KAKAO_NATIVE_APP_KEY)
	}
}

 

마무리

이제 본격적으로 다음 글에서 MVVM+UiState를 활용해서 구현하도록 하겠습니다.

반응형