Skip to content

Conversation

@mini-min
Copy link
Member

@mini-min mini-min commented Nov 3, 2025

📝 Summary

사건 추가 뷰 구현했습니다.

🔨 What

  1. DWTextField - 텍스트필드 재사용 컴포넌트 구현
  2. CaseAddView 전체 UI 구현 (하위 뷰: SuspectImageSelector, CaseAddScrollForm, FullScreenPhotoPicker)
  3. PhotoPicker 전환 화면 구현
  4. 이미지 데이터 포함, CaseRepository createCase() 메서드로 CoreData에 저장되도록 연결

👀 Review Notes

이미지 데이터 저장방식 여기서 논의해보면 좋을듯 해요 !
기존 : String 타입으로 CoreData에서 갖고 있음

mini-min added 9 commits November 1, 2025 22:22
Why?
- CaseAddView에서 반복적으로 사용하는 텍스트필드 컴포넌트입니다.
- 추후, Glass Effect를 입혀서 MapView, SearchView에서 사용하는 텍스트필드에서도 확장 가능합니다.

What?
- DWTextField 구현
- DWTexField의 타입으로 나누어지는 DWTextFieldState enum도 내부에 구현
- 컴포넌트에 사용되는 SymbolLiterals 추가
Why?
- CaseAddView 상위에 들어가는 프로필 이미지 뷰를 SubView로 분리하기 위해
- CoreData SuspectEntity에 핸드폰 정보를 입력할 필요가 있다는 의견 반영

What?
- SuspectImageSelector 구현
- SuspectEntity에 String? 타입 phoneNumber 어트리뷰트 추가
- SuspectImageSelector에 필요한 SymbolLiterals 항목 추가
What?
- DWTextField UI와 해당 뷰에서 사용하는 StringLiterals 항목 추가
- DWButton 활성화/비활성화 여부에 따른 배경색 변경 속성 추가

Why?
- CaseAddView에서 사용되는 텍스트필드를 별도의 컴포넌트로 관리해, 다른 뷰에서도 사용할 수 있도록 만들기 위함입니다.
What?
- CaseAddScrollForm Subview 화면 구현

Why?
- 텍스트필드의 속성과 텍스트 필드의 포커스에 따른 이동 기능을 구현하기 위한 로직이 길어져 별도의 SubView로 분리합니다.
What?
- CaseAddScrollForm 포커스에 따른 이동, 자동 스크롤 기능 추가
- CaseAddView UI 구현
- CaseAddFeature 구현과 DI 코드 추가
- CaseRepository에 createCase 메서드 추가

How?
- 만들어진 하위 SubView와 Component를 조합했습니다.
- 사건을 만들 때 Core Data에 새로운 객체가 추가되도록 기존 Repository에 코드를 연결해줬습니다.
Why?
- 텍스트필드가 포커스된 상태에서 다음버튼을 누르면 다음 텍스트필드로 이동할 때 애니메이션을 자연스럽게 주기 위함
- 텍스트필드 외 빈 공간을 탭했을 때 키보드가 내려가게 하기 위함
Why?
- 피의자 얼굴을 사진으로 지정할 수 있는 기능 명세서 기능을 구현하기 위함입니다.
- 해당 이미지 데이터는 String 타입으로 CoreData에 저장되기 때문에, 변환하여 저장되는 로직이 피커에 포함되어야 함.
- 풀스크린 피커는 UIKit으로만 구현할 수 있으므로 UIViewControllerRepresentable 사용 (SU는 풀스크린 커버 형태가 최선)

What?
- FullScreenPhotoPicker, UIViewControllerRepresentable 화면 구현
- CaseRepository: createCase 로직에 사진 같이 저장되도록 로직 수정
- CaseAddView, CaseAddFeature 포토피커 화면 추가
- Case 모델 업데이트
What?
- 텍스트필드 에러 메시지, 삭제 버튼에 애니메이션과 함께 등장, 사라지도록 구현
- SuspectImageSelector 이미지 뷰 UI 수정
@mini-min mini-min self-assigned this Nov 3, 2025
@mini-min mini-min added ✨ Feature 새로운 기능 구현 🐻‍❄️ Mini 천재만재 미니 선생님 작업입니다 모두 쉿 labels Nov 3, 2025
Copy link
Collaborator

@MuchanKim MuchanKim left a comment

Choose a reason for hiding this comment

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

p3: 주석 달아줘 응애 ~~~ 그리고 케이스 항목 입력 시 키보드 올라오고 화면 스크롤이 안되는데 의도한건지 궁금합니다. 그것말곤 없음

What?
- DWTextField 주석을 달았습니다. 무가 달아달라 했거덩요.
@delightPIP
Copy link
Member

이미지를 어떻게 가져올지..
PhotoPicker 를 통해서 가져온다면, Photos(사진 앱)을 기반으로 가져올 수 있는 거긴 한데,
비전에서는 사진을 직접 찍어서 처리하는 로직이 있긴 합니다.

저희 앱 안에서 이미지들을 관리하려면 앱 내 이미지를 저장을 처리하는게 필요하지 않을까 싶어요.
-> 형사님들이 사진 앱에 업무용 사진과 개인 사진이 막 섞여있는 것을 해결해줄 수 있는 부분일 것 같아요

@delightPIP delightPIP self-requested a review November 3, 2025 13:35
Copy link
Collaborator

@YooGyeongMo YooGyeongMo left a comment

Choose a reason for hiding this comment

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

p3. 태니가 달아준것처럼 아키텍처적인 부분인 폼 바인딩하시는 부분인 { get, set } 부분을 클로저를 뷰에서 만들어 내려보내는 방식을 줄이고, 스토어가 바인딩을 직접 만들어 주도록 바꾸면 어떨까요 ? 근데 지금은 구현이 우선이니 체크사항으로만 두고 추후에 리팩토링시에 아키텍처 위주로 바꾸면 좋을듯합니다.

  • 키보드에 대한 것은 아직 마지해서 사용해보지 않아서 잘 모르겠는데, 해당 사항을 챗 지피티에게 물어보니 p1사항으로 알려주기는 합니다. 저는 이해가 필요할듯하고 다른 팀원들이 짚어주신거 같습니다.

Copy link
Collaborator

@YooGyeongMo YooGyeongMo left a comment

Choose a reason for hiding this comment

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

궁그미
image

만약에 Radius constant로 안주셨으면 활용해서 컴포넌트 쓸려고했는데 검색 컴포넌트로 활용하려했는데 저는 따로 검색 컴포넌트 텍스트인풋으로 새로만들게용 !

@mini-min mini-min merged commit 6af8227 into main Nov 4, 2025
@mini-min mini-min deleted the feat/#24 branch November 4, 2025 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ Feature 새로운 기능 구현 🐻‍❄️ Mini 천재만재 미니 선생님 작업입니다 모두 쉿

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[✨ Feat] 사건 추가 뷰 구현

5 participants