Initial commit: SubManager Flutter App

주요 구현 완료 기능:
- 구독 관리 (추가/편집/삭제/카테고리 분류)
- 이벤트 할인 시스템 (기본값 자동 설정)
- SMS 자동 스캔 및 구독 정보 추출
- 알림 시스템 (타임존 처리 안정화)
- 환율 변환 지원 (KRW/USD)
- 반응형 UI 및 애니메이션
- 다국어 지원 (한국어/영어)

버그 수정:
- NotificationService tz.local 초기화 오류 해결
- MainScreenSummaryCard 레이아웃 오버플로우 수정
- 구독 추가 시 LateInitializationError 완전 해결

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-07-09 14:29:53 +09:00
commit 8619e96739
177 changed files with 23085 additions and 0 deletions

49
lib/theme/app_colors.dart Normal file
View File

@@ -0,0 +1,49 @@
import 'package:flutter/material.dart';
class AppColors {
// 메인 컬러 (Metronic Tailwind 스타일)
static const primaryColor = Color(0xFF3B82F6); // 메트로닉 블루
static const secondaryColor = Color(0xFF64748B); // 슬레이트 600
static const successColor = Color(0xFF10B981); // 그린
static const infoColor = Color(0xFF6366F1); // 인디고
static const warningColor = Color(0xFFF59E0B); // 앰버
static const dangerColor = Color(0xFFEF4444); // 레드
// 배경색
static const backgroundColor = Color(0xFFF1F5F9); // 슬레이트 100
static const surfaceColor = Color(0xFFFFFFFF); // 화이트
static const surfaceColorAlt = Color(0xFFF8FAFC); // 슬레이트 50
static const cardColor = Color(0xFFFFFFFF); // 화이트
// 텍스트 컬러
static const textPrimary = Color(0xFF1E293B); // 슬레이트 800
static const textSecondary = Color(0xFF64748B); // 슬레이트 600
static const textMuted = Color(0xFF94A3B8); // 슬레이트 400
static const textLight = Color(0xFFFFFFFF); // 화이트
// 보더 & 디바이더
static const borderColor = Color(0xFFE2E8F0); // 슬레이트 200
static const dividerColor = Color(0xFFE2E8F0); // 슬레이트 200
// 그라데이션 컬러 - 다양한 효과를 위한 조합
static const List<Color> blueGradient = [
Color(0xFF3B82F6),
Color(0xFF2563EB)
];
static const List<Color> tealGradient = [
Color(0xFF14B8A6),
Color(0xFF0D9488)
];
static const List<Color> purpleGradient = [
Color(0xFF8B5CF6),
Color(0xFF7C3AED)
];
static const List<Color> amberGradient = [
Color(0xFFF59E0B),
Color(0xFFD97706)
];
static const List<Color> roseGradient = [
Color(0xFFF43F5E),
Color(0xFFE11D48)
];
}