feat: 폼 필드 컴포넌트 분리 및 구독 카드 인터랙션 개선

- billing_cycle_selector, category_selector, currency_selector 컴포넌트 분리
- 구독 카드 클릭 이슈 해결을 위한 리팩토링
- SMS 스캔 화면 UI/UX 개선 및 기능 강화
- 상세 화면 컨트롤러 로직 개선
- 알림 서비스 및 구독 URL 매칭 기능 추가
- CLAUDE.md 프로젝트 가이드라인 대폭 확장
- 전반적인 코드 구조 개선 및 타입 안정성 강화

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
JiWoong Sul
2025-07-14 15:47:46 +09:00
parent 2f60ef585a
commit 111c519883
39 changed files with 2376 additions and 1231 deletions

View File

@@ -7,7 +7,6 @@ import '../widgets/native_ad_widget.dart';
import '../widgets/main_summary_card.dart';
import '../widgets/subscription_list_widget.dart';
import '../widgets/empty_state_widget.dart';
import '../widgets/glassmorphic_app_bar.dart';
import '../theme/app_colors.dart';
class HomeContent extends StatelessWidget {
@@ -67,10 +66,10 @@ class HomeContent extends StatelessWidget {
controller: scrollController,
physics: const BouncingScrollPhysics(),
slivers: [
const GlassmorphicSliverAppBar(
title: '',
pinned: true,
expandedHeight: kToolbarHeight,
SliverToBoxAdapter(
child: SizedBox(
height: kToolbarHeight + MediaQuery.of(context).padding.top,
),
),
const SliverToBoxAdapter(
child: NativeAdWidget(key: ValueKey('home_ad')),
@@ -105,7 +104,9 @@ class HomeContent extends StatelessWidget {
parent: slideController, curve: Curves.easeOutCubic)),
child: Text(
'나의 구독 서비스',
style: Theme.of(context).textTheme.titleLarge,
style: Theme.of(context).textTheme.titleLarge?.copyWith(
color: AppColors.darkNavy,
),
),
),
SlideTransition(
@@ -143,7 +144,7 @@ class HomeContent extends StatelessWidget {
),
SliverToBoxAdapter(
child: SizedBox(
height: 100 + MediaQuery.of(context).padding.bottom,
height: 120 + MediaQuery.of(context).padding.bottom,
),
),
],