Conversation
opficdev
commented
Mar 2, 2026
- closed ProfileView에 UI 요소를 추가한다 #150
Summary of ChangesHello, 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! 이 Pull Request는 ProfileView에 분기별 활동 히트맵을 통합하여 사용자 인터페이스를 크게 개선합니다. 이 기능은 사용자의 Todo 생성 및 완료 활동을 시각적으로 보여주어 생산성 패턴에 대한 통찰력을 제공합니다. 변경 사항에는 날짜 기반 필터링을 위한 Highlights
Changelog
Activity
Using Gemini Code AssistThe 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 by creating a comment using either
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 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. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. 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
|
There was a problem hiding this comment.
Code Review
This PR introduces several UI improvements, including a quarterly activity heatmap on the profile screen, and adds new UseCase and data models, extending existing services and ViewModels. The TodoDetailView has been refactored for improved maintainability. A medium-severity security vulnerability was identified where the TodoService logs user-supplied search keywords at the info level, potentially exposing sensitive information or PII in application logs. Recommendations have been provided to sanitize or remove sensitive data from logging statements. Additionally, feedback has been given on removing duplicate code and improving performance.
|
/gemini review |
There was a problem hiding this comment.
Code Review
이번 PR은 ProfileView에 분기별 활동을 보여주는 히트맵 UI를 추가하는 변경사항을 담고 있습니다. 새로운 기능 추가와 함께 관련된 UseCase, Repository, 데이터 모델들이 잘 정의되었습니다. 또한, 기존 TodoDetailView를 재사용 가능한 컴포넌트로 리팩토링한 점도 좋습니다. 코드 리뷰에서는 ViewModel의 일관성과 View의 역할 분리에 대한 두 가지 개선점을 제안했습니다. 전반적으로 좋은 변경이라고 생각합니다.
|
/gemini review |
There was a problem hiding this comment.
Code Review
이 PR은 프로필 뷰에 분기별 활동 히트맵을 추가하는 등 많은 UI 개선 사항을 포함하고 있습니다. 새로운 기능 구현을 위해 데이터, 도메인, 프레젠테이션 레이어에 걸쳐 필요한 UseCase, Repository, Service 로직이 잘 추가되었습니다. 특히 ProfileViewModel의 로직이 복잡하지만 상태 관리가 잘 이루어지고 있으며, 재사용 가능한 TodoDetailContentView와 TodoInfoSheetView를 만들어 코드 중복을 줄인 점이 좋습니다. 코드의 가독성과 정확성을 높이기 위한 몇 가지 개선점을 제안했습니다. 전반적으로 훌륭한 작업입니다.
|
/gemini review |
|
/gemini review |
There was a problem hiding this comment.
Code Review
이 PR은 프로필 화면에 분기별 활동 히트맵을 추가하는 등 여러 UI 개선 사항을 포함하고 있습니다. 새로운 UseCase, 데이터 모델, View 들이 추가되었고, 기존 코드도 재사용 가능한 컴포넌트로 리팩토링되었습니다. 전반적으로 코드 구조가 개선되었지만, 몇 가지 성능 및 유지보수 관련 개선점을 제안합니다. 특히, 히트맵 데이터를 가져오는 과정에서 발생할 수 있는 성능 문제와 ViewModel의 복잡한 로직을 개선할 필요가 있습니다.
DevLog/Domain/UseCase/UserData/Fetch/Todo/FetchTodosByDateRangeUseCaseImpl.swift
Show resolved
Hide resolved
|
/gemini review |
There was a problem hiding this comment.
Code Review
이번 PR은 프로필 화면에 분기별 활동 히트맵 UI를 추가하는 변경사항을 담고 있습니다. 이를 위해 날짜 범위로 Todo를 조회하는 기능과 관련된 UseCase, Repository, Service 로직이 추가 및 수정되었습니다. 또한, 히트맵을 표시하고 상호작용하기 위한 다수의 SwiftUI 뷰와 ViewModel 로직이 구현되었습니다. 전반적으로 기능 구현이 잘 이루어졌으며, 코드 재사용을 위한 뷰 리팩토링도 훌륭합니다. 다만, ProfileViewModel의 날짜 계산 로직에서 발견된 잠재적인 버그에 대한 리뷰 의견을 남겼으니 확인 부탁드립니다.
|
/gemini review |
| var weeks: [[ProfileCompletionDay]] = [] | ||
| var index = 0 | ||
| while index < days.count { | ||
| let endIndex = min(index + 7, days.count) | ||
| weeks.append(Array(days[index..<endIndex])) | ||
| index += 7 | ||
| } |
| func startOfMonth(for date: Date, calendar: Calendar) -> Date { | ||
| guard let monthInterval = calendar.dateInterval(of: .month, for: date) else { | ||
| return calendar.startOfDay(for: date) | ||
| } | ||
| return monthInterval.start | ||
| } |
|
/gemini review |