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] 코스 생성 api 수정 사항 반영 및 버그 대응 #311

Merged
merged 3 commits into from
Feb 8, 2024

Conversation

unam98
Copy link
Contributor

@unam98 unam98 commented Jan 7, 2024

📌 개요

✨ 작업 내용

  • 코스 생성 api 수정 사항 반영
    • requestBody 및 response 수정
    • 출발지 설정 3개 mode에 대해 각각에 필요한 형태로 requestBody 및 putExtra 세팅
  • 버그 대응
    • 커스텀 출발지 지정 : CountDownActivity로 data를 넘길 때 departureLatLng이 사용자가 지정한 출발지가 아닌 현위치 좌표값이 넘어가는 이슈

커스텀 출발지에서 사용자가 출발지를 직접 지정한 후에도(더이상 현위치 좌표값이 필요없는 상황에서도) addOnLocationChangeListener가 자동으로 계속 돌아서 departureLatLng을 현위치로 갱신시키는 바람에

그러지 못하도록 isBlockUpdateDeparture라는 변수를 선언해서 사용자가 출발지를 직접 지정한 후에는 departureLatLng이 addOnLocationChangeListener에 의해 갱신이 못되도록 막아주었습니다.

그런데 (정확한 원인 파악은 못했지만 아마도) addOnLocationChangeListener는 실행 타이밍이 불규칙하다보니 제가 한 조치로는 온전히 막을 수 없는 것 같아

사용자가 출발지를 직접 지정하는 시점에 customDepartureLatLng라는 변수를 따로 두어 putExtra 시점에 departureLatLng 값을 customDepartureLatLng으로 갱신시키는 방법으로 막았습니다.

문제 해결은 어찌저찌 했지만 코드가 깔끔하지 못하고 지저분해진다는 느낌에 아쉬움이 남습니다.

✨ PR 포인트

이번에 2차 업데이트(출발지 설정할 수 있는 옵션 추가) feature 개발할 때
파일 여러개 만들기보단 기존에 짜놨던 하나의 파일(DrawActivity) 안에서 분기 처리를 통해 재사용하려고 했던 건데

이렇게 하다보니 3개 mode(장소 검색/현위치/직접 지정) 각각이 취해줘야 할 상황이 다른데 같은 변수와 함수를 공유하다보니 분기 처리가 매우 까다로웠고 (함수도 지저분해지고) 어느 하나를 건드렸을 때 기존에 잘 동작하던 다른 mode들에 사이드 이펙트가 생기진 않을지 걱정하면서 코드를 짜야했습니다.

추후 리팩토링을 무조건 해야겠다고 느꼈는데 파일이 여러개 생기더라도 3개 mode 각각에 대해 Activity를 만들어 쓰는 방향으로 생각중입니다.

지금처럼 한 파일 안에 분기 처리를 하는 방향을 유지하되 조금 더 다듬어볼지, 아니면 Activity를 나눌지 리팩토링 방향에 대한 의견과 근거가 궁금합니다.

unam98 added 2 commits January 5, 2024 00:30
- [ISSUE] 커스텀 출발지 설정 : CountDownActivity로 data 넘길 때 계속 사용자 지정 출발 좌표가 아닌 사용자의 실시간 현위치 좌표값이 넘어감.
@unam98 unam98 added 우남 🐼 우남 담당 FEAT ✨ 새로운 기능 구현 FIX 💥 버그 및 오류 해결 labels Jan 7, 2024
@unam98 unam98 requested review from dongx0915, leeeha and sxunea January 7, 2024 11:17
@unam98 unam98 self-assigned this Jan 7, 2024
Copy link
Member

@dongx0915 dongx0915 left a comment

Choose a reason for hiding this comment

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

고생하셨습니다~!

Comment on lines 204 to 206
customDepartureLatLng = getCenterPosition()
isBlockUpdateDeparture = true
drawCourse(departureLatLng = customDepartureLatLng)
Copy link
Member

Choose a reason for hiding this comment

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

이 부분 위치 권한 거부 시 비정상 종료 해결 및 위치 권한 팝업 플로우 변경 PR에서 크래시 막으려고 departureLatLng에 getCenterPosition()을 할당 해주었었는데, customDepartureLatLng로 바뀌면서 크래시 재현되는 것 같습니다.

해당 부분 확인 부탁드립니다~!

@unam98 unam98 merged commit fd25aa7 into develop Feb 8, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
FEAT ✨ 새로운 기능 구현 FIX 💥 버그 및 오류 해결 우남 🐼 우남 담당
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[FEAT] 코스 그리기 / api 변경 사항 반영
2 participants