[Android] 안드로이드 모임 관리 앱 프로젝트 개발기 (1) – 기본 설정 및 아키텍처 환경 구축

Last Updated: 2026년 10월 31일

안녕하세요! 안드로이드 스튜디오를 활용해 특정 회원들만의 모임 관리와 투명한 지출 정산(뿜빠이)을 도와주는 ‘대구대 생물90’ 앱 프로젝트를 진행하고 있습니다.
이번 글에서는 프로젝트의 첫 단계인 기본 설정 및 빌드 환경, 그리고 전역 앱 구조(DI, Manifest)가 어떻게 구성되어 있는지 정리해 보겠습니다.

1. 버전 관리 및 의존성 (libs.versions.toml)

최신 안드로이드 개발 표준인 Version Catalog 방식을 사용하여 라이브러리 버전을 중앙에서 깔끔하게 관리하고 있습니다.

  • 핵심 스택: Jetpack Compose, Hilt(의존성 주입), Firebase (Firestore, Auth, Storage), Room DB, Coil (이미지 로딩), Navigation Compose
  • AGP 및 Kotlin: 안정적인 빌드를 위해 AGP 9.4.1과 Kotlin 최신 버전을 적용하였습니다.

2. 앱 수준 빌드 설정 (build.gradle.kts)

Compose와 Hilt, KSP(Kotlin Symbol Processing) 컴파일러가 유기적으로 동작할 수 있도록 설정을 완료했습니다.

  • Namespace: kr.narrator.tgubio90
  • SDK 버전: minSdk = 26, compileSdk / targetSdk = 37
  • 주요 특징: 현대적인 자바 버전(Java 11) 호환성 및 Hilt/Room을 위한 KSP 플러그인 연동

3. 앱 진입점 및 전역 설정 (Tgubio90Application.kt & MainActivity.kt)

  • Tgubio90Application: @HiltAndroidApp 어노테이션을 선언하여 앱 전역에서 Hilt 의존성 주입 컨테이너가 활성화되도록 구성했습니다.
  • MainActivity:
    • 최신 안드로이드 가이드인 enableEdgeToEdge()를 적용하여 시원한 UI를 구성했습니다.
    • SettingsViewModel과 연동하여 사용자가 설정한 다크 모드(isDarkMode)가 앱 전체 테마에 실시간으로 반영되도록 구현했습니다. (dynamicColor = false로 지정하여 커스텀 테마 색상 고정)

4. 매니페스트 보안 및 설정 (AndroidManifest.xml)

  • 키보드 대응: windowSoftInputMode="adjustResize"를 적용하여 입력창(지출 추가, 게시판 글 작성 등)에서 키보드가 올라올 때 UI가 가려지지 않도록 처리했습니다.
  • 파일 공유 (FileProvider): 엑셀 백업(UTF-8 BOM 적용) 파일 공유 및 이미지 처리를 위해 안전한 FileProvider 경로를 설정했습니다.

💡 마치며

여기까지 ‘모임총무’ 앱의 가장 기초가 되는 빌드 설정과 앱 진입점 구성을 마쳤습니다. 철저한 환경 설정 덕분에 이후에 구현할 회원 관리, 게시판 투표, 그리고 정산(Expense) 및 엑셀 백업 로직들이 안정적으로 맞물려 돌아갈 수 있는 탄탄한 기반이 마련되었습니다.

다음 포스팅에서는 핵심 비즈니스 로직인 지출 및 정산 패키지(Expense, SettlementUtil) 코드를 깊이 있게 다뤄보겠습니다!

You may also like