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