Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#98] SwiftData 마이그레이션 & 책 등록 페이지 커스텀 기능 추가 #105

Merged
merged 13 commits into from
Nov 27, 2024

Conversation

zaehorang
Copy link
Collaborator

📝 작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요

  • 데이터 모델이 변경되면서 SwiftData 마이그레이션을 진행합니다.
  • 책 등록 화면에서 페이지의 시작 페이지와 마지막 페이지를 수정할 수 있게 합니다.
    • 조건에 맞게 토스트 뷰를 띄웁니다.

스크린샷 (선택)

- 기존에 사용하던 모델을 새롭게 구성하고, SwiftData 데이터 마이그레이션을 위한 스키마를 생성했습니다.
- SwiftData 마이그레이션을 지원하기 위해 모델을 재구성하고 마이그레이션 계획을 추가했습니다.
- 데이터 마이그레이션을 진행합니다.
- ForEach 이슈가 있는 부분은 주석 처리하고 이후에 해결합니다.
- ForEach문에서 에러가 발생하던 문제를 해결하였습니다.
- 문제는 ForEach문 자체가 아닌 내부 콘텐츠에서 접근 연산자가 올바르게 연결되지 않아 발생한 것이었습니다.
- ForEach의 생산자가 콘텐츠 내부에서 잘못된 연산자로 인식되어 에러가 발생했습니다.
- 관련 문서: [ForEach 초기화 메서드](https://developer.apple.com/documentation/swiftui/foreach/init(_:id:editactions:content:)).
- `@Query`에 `sort` 옵션을 추가하여 완독한 책 목록이 역순으로 정렬되도록 수정하였습니다.
- 정렬 기준은 `userSettings.targetEndDate`이며, 가장 최근의 목표 날짜가 상단에 표시됩니다.
- 정렬 로직을 명확히 하기 위해 `SortDescriptor`를 사용하였고, `order: .reverse` 옵션을 적용하였습니다.
- 강제 언래핑으로 인한 잠재적 오류를 방지하기 위해 nil 값을 처리하는 더미 데이터를 추가하였습니다.
- nil일 경우 더미 데이터를 표시하도록 로직을 개선하였습니다.
- 더미 데이터는 테스트 및 기본 UI 표현을 위한 용도로 사용됩니다.
- 이미지가 프레임을 넘어가지 않도록 `clipped()`를 추가하여 크롭 처리했습니다.
- 책 제목과 저자 텍스트에 `lineLimit(1)'을 추가해 한 줄로 표시되도록 수정했습니다.
- 수평 스크롤뷰의 양쪽 패딩 값을 조정하여 레이아웃의 균형을 개선했습니다.
- 책 완독 날짜를 동적으로 표시하는 로직을 추가했습니다.
- `completionStatus.targetEndDate`를 기반으로 완독 날짜를 표시하며, 오늘 날짜와 비교하여 상태를 구분합니다.
- 사용자가 책의 시작 페이지와 끝 페이지를 직접 설정할 수 있는 기능 추가
- 기존 최종 페이지를 기준으로 한 계산 로직 개선
- 사용자 입력 오류 시 토스트 메시지를 표시하도록 로직 연결
- 페이지 설정 화면에서 시작 페이지와 마지막 페이지 유효성 검사 시 토스트 알림 표시
- 책의 전체 페이지를 초과하지 않도록 마지막 페이지(targetEndPage) 유효성 검사 로직 추가
@zaehorang zaehorang self-assigned this Nov 27, 2024
@zaehorang zaehorang linked an issue Nov 27, 2024 that may be closed by this pull request
3 tasks
@zaehorang zaehorang changed the title [#98} SwiftData 마이그레이션 & 책 등록 페이지 커스텀 기능 추가 [#98] SwiftData 마이그레이션 & 책 등록 페이지 커스텀 기능 추가 Nov 27, 2024
@zaehorang zaehorang merged commit 99ee2d9 into develop Nov 27, 2024
@zaehorang zaehorang deleted the feat/98-add-reading-range branch November 27, 2024 06:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

책 범퍼 쪽수 입력 기능 추가
1 participant