프로젝트 아키텍처 개요
RxSocialConnect-Android은 RxJava 기반의 소셜 로그인 통합 라이브러리로, 다양한 소셜 플랫폼과의 인증 흐름을 비동기식으로 처리하도록 설계되었습니다. 전체 구조는 모듈화된 컴포넌트로 구성되어 유지보수성과 확장성을 강조합니다.
주요 디렉터리 구성
app/: 샘플 클라이언트 애플리케이션으로, 실제 사용 사례를 보여주는 UI 및 진입점 포함core/: 인증 토큰 관리, OAuth2 프로토콜 처리, 세션 생명주기 제어 등 핵심 로직 구현gson_converter/: 네트워크 응답 직렬화/역직렬화를 위한 Gson 커스텀 변환기okhttp_interceptors/: 요청 헤더 주입, 토큰 갱신 로직, 로깅 등을 수행하는 OkHttp 인터셉터 집합gradle/wrapper/: 버전 고정된 Gradle 실행 환경 제공 (예:gradle-wrapper.jar)
핵심 진입점 클래스
애플리케이션 초기화 및 인증 흐름 시작은 다음 두 클래스에 의해 제어됩니다:
LauncherActivity.kt: 최초 화면으로, 인증 공급자 선택 및 권한 요청 UI 제공SocialAuthApplication.kt:Application서브클래스로, RxJava 스케줄러 설정, 글로벌 에러 핸들러 등 초기화 작업 수행
빌드 및 환경 설정 파일
프로젝트 동작을 정의하는 주요 설정 파일은 다음과 같습니다:
모듈 수준 build.gradle.kts
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
namespace = "io.github.example.socialauth"
compileSdk = 34
defaultConfig {
applicationId = "io.github.example.socialauth.demo"
minSdk = 21
targetSdk = 34
versionCode = 20241001
versionName = "2.1.0"
}
}
dependencies {
implementation(project(":core"))
implementation("io.reactivex.rxjava3:rxandroid:3.0.2")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")
}
프로젝트 수준 settings.gradle.kts
enableFeaturePreview("VERSION_CATALOGS")
pluginManagement {
repositories {
google()
mavenCentral()
}
}
include(
":app",
":core",
":gson_converter",
":okhttp_interceptors"
)
라이선스 및 문서
프로젝트는 Apache License 2.0 하에 배포되며, LICENSE.txt에서 확인 가능합니다. README.md에는 설치 가이드, 지원 플랫폼 목록, 기본 사용 예제가 포함되어 있습니다.