Android용 반응형 소셜 인증 라이브러리 구조 분석

프로젝트 아키텍처 개요

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에는 설치 가이드, 지원 플랫폼 목록, 기본 사용 예제가 포함되어 있습니다.

태그: RxJava oauth2 Android OkHttp Gson

9월 1일 04:31에 게시됨