작성일: 2026년 3월 30일 진행 단계: Phase 7 (Flutter 앱 개발) 진행 중 이전 일지: Day 4 참고 (Phase 6 완료)


✅ Phase 7 전체 진행 현황

작업 내용 상태
① 프로젝트 구조 셋업 디렉토리 구조, 테마, 상수 ✅ 완료
② Supabase 통합 + Auth Service 인증 레이어, Riverpod 상태 ✅ 완료
③ 라우팅 설정 go_router, redirect 로직 ✅ 완료
④ Splash / 온보딩 스크린 진입 흐름, 3페이지 온보딩 ✅ 완료
⑤ 로그인 / 회원가입 스크린 이메일 인증 UI, 유효성 검사 ✅ 완료
⑥ 홈 스크린 오늘의 스케줄, 복용 확인/스킵 ✅ 완료
⑦ 약 등록 스크린 약 정보 입력, 주기/시간 설정 ✅ 완료
⑧ 약 목록 / 수정 스크린 🔜 다음
⑨ 복용 히스토리 캘린더 ⬜ 대기
⑩ 통계 스크린 ⬜ 대기
⑪ 알림 설정 스크린 ⬜ 대기
⑫ 설정 스크린 ⬜ 대기
⑬ FCM/APNs 푸시 알림 통합 ⬜ 대기
⑭ 인터랙티브 알림 (Yes/No) ⬜ 대기
⑮ Google / Apple 소셜 로그인 ⬜ 대기

1. 사전 작업 — 테마 컬러 확정

컬러 팔레트 선택

3가지 후보 중 Calm Blue 채택.

옵션 컬러 특징
A — Calm Blue #2B7FE8 신뢰·안정. 글로벌 헬스앱 표준
B — Soft Teal #0EA5A0 자연·힐링. 피로감 적음
C — Lavender Purple #7B5EA7 차별화·프리미엄

→ 글로벌 시장 대응 및 의료 앱의 신뢰감을 위해 Calm Blue 채택

최종 컬러 시스템 (app_colors.dart)

static const Color primary       = Color(0xFF2B7FE8); // Primary
static const Color primaryLight  = Color(0xFF5BA4F0); // Light
static const Color primarySurface= Color(0xFFE8F2FF); // Surface
static const Color done          = Color(0xFF34C78A); // 복용 완료
static const Color missed        = Color(0xFFFF6B6B); // 복용 미완
static const Color pending       = Color(0xFFF9A825); // 대기
static const Color skipped       = Color(0xFF9E9E9E); // 스킵

2. ① 프로젝트 구조 셋업

구현 파일

lib/core/constants.dart          ← API URL, 알림 채널 ID, SharedPreferences 키
lib/shared/theme/app_colors.dart ← 컬러 시스템
lib/shared/theme/app_theme.dart  ← MaterialApp 테마 (버튼, 인풋, 카드)
lib/main.dart                    ← 앱 진입점
lib/app.dart                     ← MaterialApp.router
lib/core/router.dart             ← go_router 라우팅
lib/core/supabase_client.dart    ← Supabase 초기화 싱글턴

핵심 구현 내용

Feature-based 디렉토리 구조

화면/기능 단위로 data / domain / presentation / providers 4계층 분리.

lib/features/
├── auth/
├── medications/
├── schedules/
├── dose/
└── notifications/