feat(flutter): 다이어리 책장·기록·댓글·달력 보기와 홈 최근 기록 구현

일정 관리 다음 흐름 — 일정·기록 탭의 다이어리.
- 책장: 표지 그리드(최대 6권), 반투명 책갈피 리본, 새 다이어리 만들기(표지·이름·대상·리본 색)
- 다이어리 안: 기록 피드(모두/사진/글) · 검색 · 달력 보기(날마다 기분 표정) · 하루 한 번 쓰기 버튼
- 기록하기: 사진 · 오늘 기분 6종 · 글 / 기록 수정·삭제 / 댓글 작성·수정·삭제
- 다이어리 설정: 정보 수정, 알림 스위치(값만 저장), 다이어리 제거(기록·댓글 함께)
- 홈 다이어리: 최근 기록 3개를 사진/글 타일로, 누르면 그 다이어리로
- 아이를 지우면 다이어리 대상에서만 떼고, 회원탈퇴는 다이어리도 지운다
- 기록은 기기에 저장한다 (공유 다이어리 서버가 생기면 DiaryRepository 구현을 바꾼다)

시안과 다른 점: 공유 다이어리(초대 코드·QR·멤버·참여)는 서버가 필요해 안내만 둔다.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-28 22:58:09 +09:00
parent 76e9fc1af1
commit d7f46d174a
29 changed files with 3295 additions and 10 deletions
+9
View File
@@ -0,0 +1,9 @@
<svg width="250" height="250" xmlns="http://www.w3.org/2000/svg" viewBox="786 163 250 250"><g>
<path fill="#FFCF5C" d="M1030.7,300.8c0,64.7-45.7,98.3-121,98.3s-118.3-34.3-118.3-99,60.3-124.7,118.9-124.7,120.4,60.7,120.4,125.3Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M991.3,385.5c-31.3,17.3-73.6,19.5-109,15.5-17.6-2-34-6.3-49.5-14.3-23.9-12.4-39.8-34.4-43.8-61.2-4.8-32,1.6-64.4,17.9-92.4,10.3-17.8,24.7-32.5,41.8-43.6,37.8-24.3,85.7-24.4,123.7-.5,26.4,16.7,45.5,41.9,55,71.7,7.1,22.2,9.3,45,5,67.8-4.7,24.7-19.1,44.9-41.1,57ZM984.3,379.3c53.4-26.9,49.7-99.3,20.9-145.3-29.1-46.3-85.4-67.8-136.6-45.3s-36.4,22.8-48.9,40.8c-19.7,28.3-28.6,68-20.3,101.6,7.9,32.1,33.5,50.7,65,57.7,37.2,8.2,85.6,7.6,119.9-9.6Z"></path>
<path fill="#FF9E9E" d="M862.6,299.5c0,12.1-24.5,18.6-40.1,8.9-3.2-2-5.2-5.7-5.2-8.8,0-3.5,2.3-7,5.8-9,16.6-9.5,39.4-1.8,39.5,9Z"></path>
<path fill="#FF9E9E" d="M1004.2,299.5c-.2,12.8-25.2,18.4-40.3,8.6-3.1-2-5-5.5-5-8.6s2-6.4,5.2-8.4c16.4-10.3,40.3-2.8,40.2,8.4Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M956.8,274.1c13.2.5,11.7-13.8,18.1-11.8s3.5,3.1,2.7,5.4c-3,9.1-11.2,14.7-20.2,14.7s-17.8-5.9-20.5-15.3,1.2-4.4,2.9-4.9,4.4.7,5.1,2.8c1.9,5.4,6.5,8.9,11.8,9.1Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M863.9,274.1c12.5.4,11.2-13.1,17.5-11.9s3.9,2.7,3.4,4.6c-2.7,9.6-11.3,15.7-20.9,15.5-9.5-.2-18.4-6.7-20.1-16.6-.3-1.5,2.5-3.7,3.9-3.7s3.8,1.3,4.4,3.1c1.8,5.5,6.7,8.7,12,8.9Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M910.6,303.1c9.2,0,7.2-10.3,13.6-8.2s3.3,3.2,2.3,5.6c-2.7,7-8.8,10.8-15.9,10.8s-13.1-4.1-15.5-11.1.4-5,2.5-5.5c6.3-1.5,4.5,8.3,13,8.3Z"></path>
</g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

+12
View File
@@ -0,0 +1,12 @@
<svg width="250" height="250" xmlns="http://www.w3.org/2000/svg" viewBox="408 163 250 250"><g>
<path fill="#FFCF5C" d="M652.6,300.8c0,64.7-45.7,98.3-121,98.3s-118.3-34.3-118.3-99,60.3-124.7,118.9-124.7,120.4,60.7,120.4,125.3Z"></path>
<path fill="#C1442E" d="M545.2,327.6c-9.6,4.8-20.9,3.4-29-2.9-7.7-5.9-12.2-14.6-12.2-24.2s5.2-12.1,11.9-12.7c11.6-1.2,23.3-1.5,34.8.1,7.5,1.1,12,7.4,11.3,14.7-.9,10.6-6.9,20-16.8,24.9Z"></path>
<g>
<path fill="#1F1B16" fill-rule="evenodd" d="M614.9,384.4c-33.1,19.1-80.2,21.2-117.6,15.5-15.2-2.3-29.2-6.5-42.7-13.5-23.1-12-38.7-33.1-43.2-59-5.4-31.2.5-63.2,15.6-91.1s24-33.6,41.2-45.2c35.9-24.4,81.8-26.6,119.8-5.8s56,50.4,64.7,87.9c9.8,42.5,1.8,88.2-37.8,111.1ZM605.5,379.7c29.4-14.4,42.7-42.8,42.3-75.3-.7-48.5-26.7-94.8-71.4-115.3-33.1-15.1-71-12-101.5,7.8-24.5,15.9-41.9,39.9-50.5,67.8-12.8,41.6-8.4,90.1,32.1,112.7,9.1,5.1,18.3,8.7,28.7,11.1,37.3,8.5,85.8,8,120.3-9Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M552.8,323.6c-9.4,8.7-23.1,10.2-34,4.1s-15.6-15.3-16.3-26.3,4.7-13.8,12.5-14.6c11.7-1.3,23.6-1.4,35.4-.1,7.7.8,13.3,6.6,13,14.1-.2,8.7-3.8,16.7-10.6,22.9ZM532.2,323.5c17.7.7,27.2-21,21.5-27.1s-3.8-2.2-5.5-2.2h-30.9c-3.6.1-6.8,2.7-6.6,6.6.6,11.2,9.3,22.2,21.6,22.7Z"></path>
</g>
<path fill="#FF9E9E" d="M484.8,299.5c-.1,12.2-25,19-41.1,8.1-2.4-1.6-4.1-4.7-4.4-6.7-.4-2.8,1-6.4,3.1-8.3,13.6-12.3,42.5-5.4,42.3,6.8Z"></path>
<path fill="#FF9E9E" d="M626.2,297.9c3.1,12-22.5,21.2-39.8,10.4-3.1-1.9-5.3-5.6-5.3-8.8,0-10.8,19.9-16.7,35.5-10.9s8.4,4.8,9.5,9.2Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M501.3,276c-6.6,1.1-3.3-11.9-13.4-13.9s-11.1,3.6-12.1,9.6-1.8,4.2-4,4.5-4.6-1.5-4.5-3.7c.2-5.6,2.8-10.6,6.8-14.4,6.7-6.3,16.9-6.3,23.7-.1s9.7,17,3.5,18Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M590.1,271.8c-.8-5.1-4.9-9.9-10.3-9.9s-9.4,4.7-10.3,10c-.4,2.1-1.8,3.7-3.7,4.1s-4.7-1.1-4.7-3.4c.2-8.3,5.6-15.6,13.4-18.4,10.4-3.6,21.1,3.7,24,15.9s-.6,5.4-3.1,5.8-4.9-1.2-5.4-4.2Z"></path>
</g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

+9
View File
@@ -0,0 +1,9 @@
<svg width="250" height="250" xmlns="http://www.w3.org/2000/svg" viewBox="30 163 250 250"><g>
<path fill="#FFCF5C" d="M275.2,300.8c0,64.7-45.7,98.3-121,98.3s-118.3-34.3-118.3-99,60.3-124.7,118.9-124.7,120.4,60.7,120.4,125.3Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M229.7,388.4c-31.8,15.2-74.2,16.8-108.9,11.8-15.1-2.2-29-6.2-42.4-12.8-46.4-22.9-54.4-73.9-41.6-121,8.4-30.9,27-57.6,53.5-75.5,38.8-26.2,89.5-26.4,128.5-.5,41.3,27.3,62.8,76.1,59.3,125s-18.7,58.7-48.5,73ZM231.3,377.6c24.7-13.7,37.4-38.8,38.4-66.9,1.7-47.9-21.9-95.5-64.7-118.3-55.2-29.4-119-5.4-148.1,48.3-16.2,29.9-22.9,70.5-9.5,102.1,11.6,27.5,36.9,41.3,65.5,47,37,7.3,85.1,6.2,118.4-12.2Z"></path>
<path fill="#FF9E9E" d="M106.9,298.8c1,12.4-23.7,19.6-40.2,9.5-3.3-2-5.3-5.5-5.2-8.8.2-11.2,23.7-18.4,40.2-8.7s5,5.1,5.3,7.9Z"></path>
<path fill="#FF9E9E" d="M248.6,298.8c1,12.2-23.5,19.7-40.1,9.5s-5.3-5.5-5.3-8.8,2.1-6.7,5.4-8.7c16.7-9.9,39.2-2.2,40,8Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M177.2,289.4c-3.3,9.9-12.5,15.5-22.9,15.2s-18.5-6-21.5-15.7.7-4.3,2.1-4.8,4.8,0,5.4,1.7c2.3,6.4,7.5,10.1,13.8,10.5s12.6-2.9,14.9-9.1,2.8-3.8,5.1-3.4,4,3,3.1,5.6Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M198,256.2c6.8-2,13.1,1.8,14.8,7.9,1.8,6.3-1.4,12.9-8,14.8-5.8,1.7-12.3-1.4-14.4-7.5s.8-13.1,7.6-15.1Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M105.2,256.2c7-1.9,12.9,2,14.7,8.3s-1.9,12.7-7.9,14.4-12.6-1.6-14.5-7.4.9-13.4,7.8-15.3Z"></path>
</g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

+9
View File
@@ -0,0 +1,9 @@
<svg width="250" height="250" xmlns="http://www.w3.org/2000/svg" viewBox="30 440 250 250"><g>
<path fill="#FFCF5C" d="M275.2,573.9c0,63.5-45.7,96.6-121,96.6s-118.3-33.7-118.3-97.2,60.3-122.4,118.9-122.4,120.4,59.6,120.4,123.1Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M193,669.7c-26.8,3.8-53.1,3.5-79.4-.6-39-6.1-72-26.8-80-67-3.3-16.4-2.6-32.4.3-48.9,5-27.9,18-53.1,38.2-72.8,34.9-34,87-43.6,131.6-23.3,25.1,11.4,45.2,31,58.1,55.4,18.5,35,25.1,85.6,2.3,119.1-15.6,23-43.5,34.2-71.1,38.1ZM234.9,646.8c26.6-15.3,36.7-43.5,34.8-73.6-2.3-37.4-18.6-72.2-48-95-42.3-32.7-101-30-140.5,5.9-20.4,18.6-33.7,43.6-38.6,71.1-2.8,15.7-3.5,30.8,0,46.3,7.5,34,34.5,51.9,67.8,58.1s90.7,6.7,124.6-12.8Z"></path>
<path fill="#FF9E9E" d="M107.1,572.8c.4,12.5-24,19.5-40.8,9.1-3-1.8-4.8-5.3-5-8.3s1.8-6.5,4.9-8.5c16.8-10.9,40.5-3,40.9,7.7Z"></path>
<path fill="#FF9E9E" d="M248.7,572.9c.7,11.4-23.5,19.9-40.6,9.1s-4.8-5.4-5-8.4c-.7-11.3,24.1-19.6,40.9-8.5,2.7,1.8,4.5,5.2,4.7,7.7Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M176.1,576.7h-42.8c-2,0-3.9-1.7-4.3-3.3s.9-5.1,3-5.1h45.6c1.9,0,3.7,2.9,3.5,4.5-.3,2.4-2.5,4-5,4Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M104.6,531.2c6.8-2.3,13,1.5,15.1,7.6,2.1,5.9-1.3,12.6-7.2,14.8-6.1,2.3-12.6-1-14.9-6.6-2.5-6.2.2-13.5,7-15.8Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M198.1,531.1c6.7-2.1,13,1.9,14.8,8s-1.5,12.9-8,14.8c-5.9,1.7-12.4-1.5-14.4-7.5s.8-13.2,7.7-15.3Z"></path>
</g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+11
View File
@@ -0,0 +1,11 @@
<svg width="250" height="250" xmlns="http://www.w3.org/2000/svg" viewBox="408 440 250 250"><g>
<path fill="#FFCF5C" d="M652.6,573.8c0,63.1-45.7,96-121,96s-118.3-33.5-118.3-96.6,60.3-121.7,118.9-121.7,120.4,59.2,120.4,122.3Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M571.6,669.7c-25.9,3.7-51.3,3.6-76.7,0-14.6-2-27.7-5.8-40.7-12.2-23.6-11.7-39.4-33-43.3-59.4-8.2-56.2,19.4-115.5,71.9-140.3,40.8-19.3,88.8-13.3,124,14.7s35.4,38.7,43.2,64.1c13.2,43,9.3,93.1-32.1,117.5-14.2,8.4-29.2,13.2-46.2,15.6ZM612.8,646.8c28.3-16.3,37.5-46.8,34.6-78.4-3.5-38-21.7-72.6-53.2-94.2-41.8-28.5-97.1-24.3-134.6,9.5s-29.9,36.3-36.4,59.4c-11,39.7-6.2,84.7,32.6,105.2s24.6,10.4,38.3,12.5c37,5.7,85.9,4.8,118.7-14Z"></path>
<path fill="#FF9E9E" d="M484.7,576.8c0,12.3-29.2,19.4-42.7,6.4-1.9-1.8-3.2-5.4-2.8-7.8,1.5-10.8,25.3-17.7,41.3-6.6,2.6,1.8,4.2,5.4,4.2,8Z"></path>
<path fill="#FF9E9E" d="M626.6,576.7c-.3,11.6-24,18.6-40,8.6s-5.1-5.1-5.3-7.9c-1.1-12.1,23.7-20.2,40.7-9.1,2.9,1.9,4.7,5.5,4.6,8.3Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M536.6,573.8c-8.8-1.8-16.3,2.3-19.4,10.4s-3.9,1.6-5,.9-2.8-3.4-2.1-5.2c3.7-9.7,12.6-15.1,22.9-15.1,10.3,0,19.5,5.7,22.8,15.8s-1.3,4.2-2.7,4.7c-6.7,2.3-4.2-8.9-16.6-11.5Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M575.9,536.5c6.7-2.1,13.2,1.5,15,7.8,1.7,6.1-1.4,12.8-8.3,14.8s-12.1-1.3-14.2-7.4c-2.1-5.9.5-13.1,7.5-15.2Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M482.8,536.4c6.6-1.9,13.3,1.4,15,8.2s-1.6,12.3-8,14.3-12.4-1.1-14.7-7.4.9-13.1,7.6-15.1Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M493.3,521c-10.2,9.4-28.6,15.6-29.5,8.2s10.3-2.3,23.6-14.2c1.7-1.5,4.2-1.5,5.7-.3s2,4.6.2,6.2Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M578.2,514.9c13.8,12.3,25.2,7.1,24,14.3-1.3,7.6-19.7.6-29.1-7.6s-2.1-4.2-.9-6.1,4.2-2.3,6.1-.6Z"></path>
</g></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+10
View File
@@ -0,0 +1,10 @@
<svg width="250" height="250" xmlns="http://www.w3.org/2000/svg" viewBox="786 440 250 250"><g>
<path fill="#FFCF5C" d="M1030.7,573.9c0,63.5-45.7,96.6-121,96.6s-118.3-33.7-118.3-97.2,60.3-122.4,118.9-122.4,120.4,59.6,120.4,123.1Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M1019.2,537.7c2.6-2.1,4.6-4,6.8-6.7,15.1,44.9,12.9,98.1-31.1,123.4-12.9,7.4-26.7,12.1-41.7,14.5-27.6,4.5-55.6,4.7-83.2.3-15-2.3-28.6-6.6-41.6-13.8-36.7-20.2-45.9-59.9-38.9-99.7,4.4-25.2,14.8-48.8,31.7-67.9,13.6-15.4,30-27.1,49.2-34.1,46.4-16.9,97.6-3.1,129.9,33.7l-4.8,7.8c-31.1-37.3-82.2-50.5-126.8-31.6-24.5,10.4-44.3,29.3-56.9,52.8-14,26.4-20.4,60.8-12.2,89.9,9.4,33.4,39.3,49.3,72.5,54.4,25.4,4,51,3.9,76.3,0s27.4-6.3,40.1-12.9c40.7-21.4,43-69.1,30.7-110.2Z"></path>
<path fill="#FF9E9E" d="M1004.2,572.9c.9,12-24.3,19.8-40.7,8.9-2.9-1.9-4.9-5.4-4.9-8.1-.1-11.3,23.2-19.1,40.3-9s5,5.2,5.2,8.2Z"></path>
<path fill="#FF9E9E" d="M862.7,573.6c-.2,10.9-23.8,18.9-40.5,8.4-3-1.9-4.8-5.4-5-8.4-.7-11.3,24.6-19.8,41.3-8.1s4.3,5.3,4.2,8.1Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M944.4,577.8c-1.3,4.9-5.7,7.9-9.7,8.4-9.9,1.4-11.8-8.1-16.3-8.6s-5.1,8.6-14,8.7c-9.3,0-10.5-8.1-14.9-8.7s-4.6,7.4-10.3,5.1-2.6-3.5-1.7-5.6c2.1-4.5,6.4-7.1,10.6-7.6,9.4-1,11.5,7.7,15.6,8.4s5-8.3,14.7-8.5c8.9-.2,10.8,8.9,14.8,8.6s4.5-6.2,8-5.1,3.7,2.9,3.2,4.8Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M977.8,543.8c-1.9,4.9-6.5,7.7-10.4,8.1-10.3,1.2-12.9-8-17.8-8.3s-5.3,8.3-11,4.6-2.1-4.4-.5-6.4c2.7-3.6,6.8-6,10.9-6.3,8.8-.6,11.8,7.5,16.3,8.2,4.1.7,5-6.1,9.6-5.1s3.8,2.8,2.9,5.1Z"></path>
<path fill="#1F1B16" fill-rule="evenodd" d="M883.5,546.1c-3.1,3.7-6.9,6.1-11,6-9.8-.2-11.4-8.6-16.3-8.4s-3.7,1.7-4.4,2.9c-1.5,2.6-4,3.2-6.5,1.6s-2.1-4.5-.3-6.7c2.9-3.5,6.8-6,11.1-6,9.2-.2,11.8,8.3,16.3,8.3s3.5-1.5,4.1-2.6c1.6-2.8,4.1-3.3,6.4-1.8s2.6,4.2.6,6.7Z"></path>
<path fill="#A8DCF5" d="M995.4,493.2c-7.9,15.7-15.4,39.7,7.2,46.5,13.9,3.9,26.1-3.7,25.7-19,.3-10.7-3.7-20.7-8.7-29.7-9.3-18.3-16.5-13.6-24.1,2.1v.2Z"></path>
</g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB