"시작하기"를 한 번 누르면 기기에 저장해 이후 실행에서 인트로를 건너뛰었다.
그래서 시작하기를 누른 뒤 로그인하지 않고 앱을 다시 열면 스플래시 다음
바로 로그인 화면이 나왔다. 시작하기 여부는 이번 실행 동안만 기억한다.
- 로그아웃은 시안대로 곧바로 로그인 화면으로 간다
- 예전 버전이 저장한 entry.introSeen 값은 더 이상 읽지 않는다
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
시안은 아이를 등록하면 "나의 반려동물" 목록으로 보내므로 명함 다음에 만든다.
- 마이페이지: 프로필(닉네임·사진 편집), 반려동물·명함 바로가기, 권한·알림 스위치
(스위치는 앱 설정값만 저장한다 — OS 권한·푸시는 해당 기능에서 요청)
- 나의 반려동물 / 반려동물 정보(읽기 전용, 연필로 수정) — 아이마다 고유색을 배정한다
- 설정: 약관 문서, 계정 변경·로그아웃, 회원탈퇴(기기 기록 삭제 후 인트로로)
- 등록·삭제 후와 홈 "아이 상세보기"는 나의 반려동물 목록으로 간다
시안 대조 중 발견한 공통 문제도 고쳤다.
- 줄 높이를 주지 않은 글자가 본문 기본값(1.6)을 물려받아 시안보다 줄이 컸다
→ AppTypography.normalHeight 를 두고 섹션 제목·시트 제목에 적용 (홈 간격 보정 포함)
- 버튼이 옆 제목 글자와 한 의미 단위로 합쳐져 스크린리더가 함께 읽었다
→ Pressable·설정 줄을 별도 의미 노드로
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
홈에서 아이를 등록한 뒤 이어지는 흐름이라 먼저 만든다.
명함은 기기에 저장하고(아이별 대표 명함 지정), 공유는 명함을 이미지로
그려 기기 공유 창과 QR 로 보낸다. 명함 받기는 서버가 필요해 안내만 둔다.
- 아이를 삭제하면 그 아이의 명함도 함께 지운다
- 수정 화면은 아이 목록을 다 불러온 뒤 연다 (새 등록으로 오인 방지)
- 의존성: share_plus, qr_flutter
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
시안 screen-home 의 흐름을 옮겼다.
- 인사말(소셜 프로필 이름, 모르면 "집사") · 알림 아이콘
- 우리 아이: 없으면 등록 안내 카드 → 등록 화면, 있으면 아이 고르기 + 펫 명함 빈 슬롯
- 일정(오늘 일정·오늘 할 일·예약 일정)·다이어리는 해당 기능 전까지 시안의 빈 상태로 표시
- 등록·수정 화면을 탭바 위에 덮는 라우트로 연결, 토스트를 모든 화면 위에 표시
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
시안 screen-register · pet-species 를 옮겼다.
- 사진(앨범 선택 → 앱 폴더로 복사), 이름, 종·품종 검색 시트(12 대분류), 성별·중성화,
생년월일 휠, 몸무게(kg/g), 건강 정보, 알레르기(직접 추가 항목은 다음 등록에도 유지), 메모
- 필수값이 빠지면 칸마다 오류를 표시하고 첫 빠진 칸으로 스크롤
- 수정 모드에서 삭제(확인창) 지원
- 저장은 PetRepository 계약 뒤의 LocalPetRepository(SharedPreferences JSON) —
백엔드 /api/pets 가 생기면 Dio 구현으로 바꾼다
- image_picker · path_provider 추가, iOS 사진 접근 문구(NSPhotoLibraryUsageDescription)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
시안의 첫 진입 흐름을 순서대로 옮겼다.
- 스플래시: 이미지 디코딩 후 등장 애니메이션 재생, 2.6초 뒤 진입 단계에 맞는 화면으로 이동
- 인트로·온보딩은 설치 후 1회만 노출, 로그아웃 시 로그인으로 복귀 (EntryState → 라우터 redirect)
- 온보딩 일러스트는 블러·마스크 때문에 레이어별 PNG 로 래스터화하고 움직임은 Flutter 로 재현
(하단 안내문·시작하기 버튼은 비율이 다른 기기에서 잘리지 않도록 위젯으로 분리)
- 로그인은 DemoAuthRepository 로 임시 처리 — 소셜 SDK 앱 키와 백엔드 인증 API 연동 시 교체
- 하단 탭 4개 셸(StatefulShellRoute), 탭 화면은 흐름 순서대로 교체할 자리만 둔다
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>