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

feat: 프로필 변경 화면 VIP 구현 #259

Merged
merged 21 commits into from
Dec 9, 2023
Merged

feat: 프로필 변경 화면 VIP 구현 #259

merged 21 commits into from
Dec 9, 2023

Conversation

loinsir
Copy link
Collaborator

@loinsir loinsir commented Dec 8, 2023

🧑‍🚀 PR 요약

  • 프로필 변경 화면 VIP 구현
  • 프로필 화면 갱신 viewWIllAppear에서 하도록 변경

📌 변경 사항

Note

PHPickerController로 프로필 이미지 데이터 접근 처리

  • PHPickerResult의 itemProvider로 파일의 url에 접근할 수 있는 loadFileRepresentation 메서드는 인자로 넘겨주는 url이 해당 클로저 내에서만 유효한 임시적인 파일 url입니다.
  • 하지만 해당 파일 데이터를 서버에 넘겨주고 처리해야 하는 메서드는 비동기 메서드 이기 때문에 해당 클로저가 종료될 시점내에 실행이 완료된다는 보장이 없습니다.
  • 따라서 tmp 디렉토리 내에서 임시 url의 copyItem을 수행해서 파일을 복사하여, 실제 파일 데이터가 비동기 메서드 실행 시점에서도 유효하도록 하여 처리할 수 있었습니다.
  • tmp 디렉토리는 지난번에 알려주신 대로 앱 종료시 디렉토리가 비워지지만, 데이터가 쌓일 것을 대비해 처리가 끝나면 명시적으로 지워지도록 처리했습니다.

그 외, 프로필 변경 이후 프로필 화면으로 다시 복귀할 때 변경한 데이터로 적용시켜주기 위해,
viewWillAppear로 프로필 데이터를 가져오는 시점을 변경했습니다.

📸 ScreenShot

Simulator Screen Recording - iPhone 15 Pro - 2023-12-09 at 01 56 17

Linked Issue

close #236

@loinsir loinsir self-assigned this Dec 8, 2023
@loinsir loinsir changed the base branch from release to iOS/dev December 8, 2023 17:06
Copy link
Collaborator

@chopmozzi chopmozzi left a comment

Choose a reason for hiding this comment

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

특별히 문제있는건 없어보여서 approve합니다.

@loinsir loinsir marked this pull request as ready for review December 9, 2023 11:22
@loinsir loinsir linked an issue Dec 9, 2023 that may be closed by this pull request
1 task

override func setUI() {
super.setUI()
self.title = "프로필 수정"
title = "프로필 수정"
interactor?.fetchProfile(with: Models.FetchProfile.Request())
Copy link
Member

@anyukyung anyukyung Dec 9, 2023

Choose a reason for hiding this comment

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

이거는 왜 setUI에서 호출하시�는 걸까요? 따로 네트워킹 없이 데이터 소스로 정보만 받아오는거라 그런가요?

Copy link
Collaborator Author

@loinsir loinsir Dec 9, 2023

Choose a reason for hiding this comment

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

네 따로 사이드 이펙트 없이 가져온다고 생각했고, setUI도 viewDidLoad가 실행시켜주는 메서드라 생각해서 이곳에서 호출했습니다.
호옥시 다른 좋은 의견이 있으실까요?

Copy link
Member

Choose a reason for hiding this comment

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

오옹 아뇨 지금도 괜찮은 것 같습니다 취향차이인 것 같아요 !

Copy link
Collaborator Author

@loinsir loinsir Dec 9, 2023

Choose a reason for hiding this comment

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

음 뭔가 이름이... fetch라고 되어있어서 가져오는 의미가 강해서 그런 느낌이 들 수 있겠네요.
네트워킹으로 요청하는 것도 아닌데, setProfile이라고 하면 좀 더 명확할 것 같습니다. 수정할게요

Copy link
Member

@anyukyung anyukyung left a comment

Choose a reason for hiding this comment

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

아이구 복잡하네요 ㅠㅠㅠ 확인했습니다 고생하셨습니다 💦💦

@loinsir loinsir merged commit ff95957 into iOS/dev Dec 9, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feat: 프로필 변경 VIP 구현
3 participants