Skip to content

Conversation

@baekteun
Copy link
Member

@baekteun baekteun commented Jul 31, 2025

💡 배경 및 개요

Book Detail 화면 UI

2025-07-31.10.23.51.mov

📃 작업내용

  • 책 상세 UI

🙋‍♂️ 리뷰노트

  • 화면의 UI만 만들었어요
  • 피그마랑 다른거같다구요? ..만들다보니 정신나갈것같아서,,,
  • Entity들에 unchecked sendable을 달기는 싫은데.. swift 6에 당해서 눈물을 머금고..
  • 정신 놓고 만든 코드가 구릴 수 있어요
  • All Reading Log랑 All Quotes 페이지는 사실 아직 UI가 없어요, 나중에 추가하기로..
  • 스크롤할때 배경 흐리기 없애는게 오히려 가독성을 해치는거같기도하네요
  • 폰트도 피그마랑 다른데 이건 어떻게할지.. 흠...

✅ PR 체크리스트

  • 이 작업으로 인해 변경이 필요한 문서가 변경되었나요? (e.g. .env, 노션, README)
  • 이 작업을 하고나서 공유해야할 팀원들에게 공유되었나요? (e.g. "API 개발 완료됐어요", "환경값 추가되었어요")
  • 작업한 코드가 정상적으로 동작하나요?
  • Merge 대상 브랜치가 올바른가요?
  • PR과 관련 없는 작업이 있지는 않나요?

🎸 기타

@github-actions
Copy link

✅ PR의 Assign 자동 지정을 성공했어요!

@baekteun

@baekteun baekteun requested a review from leehyeonbin July 31, 2025 13:33
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary of Changes

Hello @baekteun, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces the initial user interface for the Book Detail screen, providing a centralized view for a book's details, recent activities, and quotes. It establishes the foundational UI and data handling logic for this feature, including necessary CoreData concurrency adjustments for Swift 6.

Highlights

  • New Book Detail UI: Implemented the BookDetailViewController using UICollectionView with a compositional layout to display comprehensive book information, recent reading logs, and recent quotes. This includes a dynamic background image with blur and gradient effects that fades on scroll.
  • Data Management & ViewModel: Introduced BookDetailViewModel to handle data loading and state management for the Book Detail screen, fetching book details, recent reading logs (top 3), and recent quotes (top 5) from CoreData using modern Swift concurrency (async/await).
  • CoreData Concurrency Updates: Added @unchecked Sendable conformance to BookEntity, QuoteEntity, and ReadingLogEntity to address Swift 6 concurrency requirements for CoreData managed objects, along with a TODO warning for future review.
  • Supporting Detail Views: Added initial AllQuotesViewController and AllReadingLogsViewController to display comprehensive lists of quotes and reading logs, respectively, for a specific book. These views utilize UITableView with NSFetchedResultsController and diffable data sources.
  • Reusable UI Components: Developed several reusable UICollectionViewCells (BookInfoCell, ReadingLogCell, QuoteCell, AddActionCell) and a SectionHeaderView to modularize and build the Book Detail UI efficiently.
  • Debug Configuration Enhancement: Modified ContextManager to conditionally use an in-memory CoreData store only in DEBUG builds, preventing accidental data persistence during development while ensuring production builds use a persistent store.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments or fill out our survey to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The code changes introduce the UI for the Book Detail screen, including related views for all quotes and reading logs. The review focuses on improving correctness by addressing potential crashes and a data display bug, efficiency by optimizing Core Data usage, and maintainability by enhancing code structure and removing redundancies.

Base automatically changed from feature/add-local-db to master July 31, 2025 14:07
@baekteun baekteun merged commit 4aa10ca into master Aug 9, 2025
@baekteun baekteun deleted the feature/book-detail branch August 9, 2025 02:54
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.

3 participants