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를 활용해서 구현하도록 하겠습니다.
반응형