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

[iOS] 여정 기록 로직 개선 #347

Merged
20 commits merged into from
Jan 12, 2024
Merged

Conversation

SwiftyJunnos
Copy link
Member

@SwiftyJunnos SwiftyJunnos commented Jan 10, 2024

❗ 배경

작업 배경에 대한 설명을 작성합니다.
Issue에 대한 링크를 첨부합니다.

🔧 작업 내역

작업한 내용들을 나열합니다.
간결하게 리스트 업하고, 자세한 설명은 아래 리뷰 노트에서 합니다.

  • 파편화 되어있던 여정 기록 로직 통합
  • SaveSpot 네비게이션 로직 버그 수정

📝 리뷰 노트

작업 내역에 대한 자세한 설명을 작성합니다.

여정 기록 로직 개선

JourneyRepository 쪽에 기록중인 여정을 가져와 사용하는 로직과 LocalRecordingManager의 로직이 중복되어 있고,
여러 부분에서 혼합되어 사용되고 있는 것을 발견해서 개선해주었습니다.

UserDefaults를 통해 관리되고 있던 isRecordingrecordingJourneyID 값을 LocalRecordingManager에 포함시켜 주었습니다.
그 후 Manager 보다는 Storage이 성격이 더 강해진 것 같아 RecordingJourneyStorage로 이름을 바꿔주었습니다.
로컬에 진행중인 여정을 기록 / 읽기 / 삭제 하는 로직을 모두 RecordingJourneyStorage에 옮겨주어 파편화를 해결해주었습니다.

또한 앱 종료 후 다시 시작 시 이전 데이터가 있다면 이어서 기록하는 방식을 구현하기 위해
기존의 static 방식에서 FileManager를 사용하는 방식으로 교체해주었습니다.

그 과정에서 FileManager 사용 중 sub-directory를 사용하는 방식에 대한 필요성이 느껴져서
각 메서드에 subpath 인자를 추가해주고 하위 디렉토리에서 작업 가능한 기능을 추가해주었습니다.

Screenshot 2024-01-10 at 16 54 01

기록중인 여정은 ID 값을 사용하는 디렉토리를 생성하고, 그 하위에 Coordinate, Spot, Timestamp 파일을 각각 만들어 관리합니다.

SaveSpot 네비게이션 버그 수정

Cooridnator 리팩토링 작업 중 누락되었던 SaveSpot 쪽 dismiss로직을 수정했습니다.

    func popToHome(spot: Spot?) {
        self.navigationController.presentedViewController?.dismiss(animated: true) { [weak self] in
            self?.finish()
        }
    }

present 되어있던 SaveSpot 뷰컨을 dismiss 시킨 후, completion handler를 통해 finish 메서드를 실행해주었습니다.

@SwiftyJunnos SwiftyJunnos added the ♻️ 리팩토링 코드 동작 방식 변경, 리팩토링 label Jan 10, 2024
@SwiftyJunnos SwiftyJunnos self-assigned this Jan 10, 2024
@SwiftyJunnos SwiftyJunnos linked an issue Jan 10, 2024 that may be closed by this pull request
3 tasks
@SwiftyJunnos SwiftyJunnos closed this pull request by merging all changes into iOS/release in a29b108 Jan 12, 2024
@SwiftyJunnos SwiftyJunnos deleted the iOS/task/LocalRecording-Refactoring branch January 12, 2024 11:54
Copy link
Member

@PushedGun PushedGun left a comment

Choose a reason for hiding this comment

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

중복되는 구조 통합하신 내용과 기타 버그들 처리하신 것 잘 보았습니다.
이런 버그들은 써보시면서 찾으신건가요..?

고생하셨습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
♻️ 리팩토링 코드 동작 방식 변경, 리팩토링
Projects
None yet
Development

Successfully merging this pull request may close these issues.

여정 기록 파편화 해결
2 participants