LifeLog (라이프로그)

LifeLog는 사용자의 일상적인 활동과 시간을 기록하고, 루틴을 점검하며 장단기 목표를 달성할 수 있도록 돕는 생산성 관리 안드로이드 애플리케이션입니다.

🛠 기술 스택 (Tech Stack)

  • Platform: Android (Min SDK 24, Target SDK 36)
  • Language: Kotlin 1.9+
  • UI Framework: Jetpack Compose, Material 3
  • Local Database: Room Database
  • Charts/Graphs: Vico (Compose Charting Library)
  • Async & State: Coroutines / ViewModel / Compose State

🎯 주요 기능 (Key Features)

  1. 시간/활동 기록 및 타이머 (Time Tracking & Records)

    • 스톱워치/타이머를 활용한 활동 시간 실시간 기록 (RecordTimerActivity)
    • 세부 일정 추가 및 수정 (AddRecordActivity, EditRecordActivity)
    • 누적 기록 조회 화면 (AllRecordsActivity, CategoryRecordsActivity)
  2. 계층형 카테고리 및 목표 관리 (Hierarchical Category & Goal)

    • 트리 구조(대분류-중분류-소분류)로 체계화된 카테고리 구성
    • 카테고리 단위별 목표 시간 및 달성률 관리 (CategoryHierarchyActivity)
  3. 습관 및 루틴 관리 (Routine Management)

    • 주기적인 습관과 루틴 추가 및 상태 확인 (RoutineActivity)
    • 개별 루틴 성과 상세 체크 인터페이스 (RoutineExecutionActivity)
  4. 오늘의 할 일 (Today's Tasks)

    • 오늘 하루 해야 할 일 목록을 필터링 및 정렬하여 관리 (TodayTasksActivity)
  5. 통계 및 대시보드 (Dashboard & Stats)

    • Vico 라이브러리를 활용해 누적된 시간/루틴 데이터의 시각화 및 직관적 통계 제공 (StatsTab, StatsViewModel)

📁 주요 디렉토리 구조 (Structure)

app/src/main/java/com/example/lifelog/
 ├── components/           # Jetpack Compose UI 컴포넌트 모음
 │   ├── common/           # 공용 버튼, 카드, 다이얼로그, 입력 폼 등 
 │   ├── home/             # 홈 화면의 섹션별 UI (진척도, 검색, 루틴 등)
 │   ├── record/           # 기록 상세 폼 및 체크박스 컴포넌트
 │   ├── timer/            # 타이머 화면 컴포넌트
 │   ├── todaytasks/       # 오늘 할 일 항목 컴포넌트
 │   └── goal/             # 목표 관리 및 커스텀 다이얼로그 컴포넌트
 ├── data/                 # 상태 및 데이터 모델 속성 정의 
 ├── *Activity.kt          # 시스템 진입점 및 컨테이너 (Onboarding, Home 등)
 ├── *ViewModel.kt         # 상태 및 비즈니스 로직 관리 (StatsViewModel 등)
 └── *Manager/*Utils.kt    # 루틴 매니저, 시간 포맷, 카테고리 검증 유틸

📝 개발자 참고 사항 (Notice)

사용자의 안티 그래비티 아키텍처 환경에 설정된 Flutter 룰과 무관하게, 현재 앱 소스코드는 Pure Android Native(Kotlin + Compose) 스택으로 작성되어 있습니다. 따라서 빌드 및 관리 시 Gradle 시스템을 사용합니다.