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] 환경설정 앱 버전 정보 셀 로직 추가, 강제 업데이트 기능 추가 #201 #203 #205

Closed
wants to merge 2 commits into from
Closed

Conversation

skkimeo
Copy link
Contributor

@skkimeo skkimeo commented May 22, 2022

반영 내용


  • 이전에 정의했던 Result Enum 의 이름을 CustomResult 로 변경했습니다.
    • Swift 내장 Result 타입과 중복되어서...멍청한...코드...

강제 업데이트 로직을 추가했습니다.

  • 설치 버전과 앱스토어 버전 체크를 위해 VersionChecking 프로토콜을 선언하고 이를 상속하는 VersionMananger 객체를 선언했습니다.
  • 업데이트 기능은 VersionUpdating 프로토콜에 선언하고 뷰컨트롤러의 익스텐션이 상속하도록 했습니다.
  • 우린..서버가 없으니까...ㅠ 굉장히 더럽게 앱스토어 엔드포인트에서 받은 릴리즈 노트를 파싱해서 필요 시 강제 업데이트 하도록 로직을 짰습니다...
    • 앱스토어 릴리즈 노트 작성 시 주의가 필요하며 파싱 메서드 위에 // MARK 로 안되는 예시 상세히(...) 달아두었습니다.
  • 파싱 결과 강제 업데이트가 필요한 경우 선택지가 업데이트 뿐인 알림을 띄우도록 했습니다.
  • 백그라운드에서 포어그라운드로 돌아올 때마다 강제 업데이트 유무를 확인하도록 했습니다.
    • 앱을 시작할 때만 강제 업데이트 유무를 확인하면 백그라운드에서 다시 실행되는 경우가 누락되므로..
  • 인터넷 연결이 안되는 등 업데이트 유무 자체를 확인할 수 없는 경우에는 그냥 앱을 계속 사용하도록 했고, 강제 업데이트가 필요함을 확인했는데 링크 오류 등으로 업데이트를 못하고 있는 경우에는 유저에게 앱을 종료한다고 알리고 종료 버튼을 누르면 앱을 종료하도록 했습니다.
  • 인터넷 연결 상황에 따라 정보를 받아오는 작업이 매우 느릴 수 있으므로 URLSession 을 사용해서 백그라운드에서 데이터를 받아오도록 했습니다.

환경설정 버전 정보 셀에 로직을 추가했습니다.

  • 이를 위해 VersionChecking 프로토콜을 선언하고 이를 상속하는 VersionMananger 객체를 선언했습니다.
  • 어차피 강제 업데이트 확인 때문에 백그라운드 -> 포어그라운드로 올때마다 앱스토어 버전 정보를 갱신하므로 경설정에 들어올 때마다 서버에서 정보를 받아서 확인할 필요는 없다고 생각해서 여기서는 강제 업데이트 확인 때 받아온 정보를 확인해서 업데이트 유무에 따라 적절한 안내 문구를 나타내도록 했습니다.
    • 최신 버전을 사용 중입니다 <-> 업데이트가 필요합니다.
  • 인터넷 연결 상황에 따라 정보를 느리게 받아올 경우에 대비해 항상 현재 설치된 버전 정보를 일단 나타내도록 했습니다.
  • 모종의 이유로 업데이트가 필요한데 앱스토어 연결이 안되는 경우 그냥 직접 앱스토어에서 업데이트 해달라는 알림을 띄우고 확인을 누르면 알림만 닫히고 앱은 그냥 사용할 수 있도록 했습니다.

나름대로 예외 사항 고려한다고 했는데 더 이상은 못하겠어요....ㅋㅎㅋㅎㅋㅎㅋㅎ 약간 러다이트 운동 생각남ㅠ

@skkimeo skkimeo added the enhancement New feature or request label May 22, 2022
@skkimeo skkimeo requested a review from 2unbini May 22, 2022 12:53
@skkimeo skkimeo self-assigned this May 22, 2022
@skkimeo
Copy link
Contributor Author

skkimeo commented May 22, 2022

문제 발견...🥲

@skkimeo skkimeo closed this May 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant