-
[올포원] - 3번째 리젝 (2.1.0 Performance: App Completeness)프로젝트/올포원 2023. 6. 26. 18:26728x90반응형
지금 원래 올렸던 "포켓몬도감Q"라는 앱은 4번째 리젝사유에 의해 수정하게 되었다. 자세한 내용은 이 다음 포스팅에서 올리도록 하겠다.
오늘은 대망의 3번째 리젝이다. 포스팅이 오래 걸린 이유는 3번째 리젝을 해결한 뒤에 4번째 리젝이 왔는데 4번째 리젝 사유를 해결하는데 시간이 좀 걸렸기 때문이다.. 오늘 시점으로 3번째 리젝을 해결한지가 1~2주가 됐는데, 다행히 잇슈를 모두 기록을 해놨기 때문에 바로 문제와 해결방법으로 포스팅을 할 수 있었다.(역시 J형 인간!)
일단 3번째 리젝 사유는 다음과 같았다.
거절 사유:
2.1.0 Performance: App Completeness
이렇게 왔다. 이번 문제는 간단하다.
당신의 앱은 문제가 있습니다.(버그가 존재합니다.)
음.. 이렇게 버그가 어디서 어떤 문제가 발생하는지 알려주는지 놀랐다. 워낙 애플이 IT업계에서 악명이 높아서 겁먹고 있었다. 같이 회신한 스크린샷은 이랬다.
음..?
원래 올포원앱의 실행단계는 다음과 같다.
앱 실행 > 포켓몬도감 리스트 Row에 필요한 데이터 RealmDB에 한번에 저장 > 실행 후 도감 리스트뷰 사용
앱을 실행하면 시작화면에서 최대 30초안에 데이터를 다운받아 로컬로 사용하게 된다. 근데 분명 데이터는 성공적으로 다운로드하는것은 다 확인한 부분인데 왜 리스트에 안뜨지..? 라는 생각이 들었다.
그러고 테스트 모드를 따로 제작해 DB데이터를 전체삭제한뒤 다시 앱을 실행해 보았다.(현제 존재하는 포켓몬 마리수 1010가 아닐경우 리스트를 초기화하는 알고리즘 적용) 근데 역시나 애플에서 보내준대로 처음 다운로드를 하고 메인화면으로 들어오니까 아무리스트도 안뜨는게 확인 되었다. 근데 또 앱을 종료했다가 다시 실행하면 리스트가 뜬다.
결론적으로는 "DB저장은 성공적으로 하지만 포켓몬 데이터 다운로드 후 첫 화면에서 리스트가 나오지 않는다." 이 문제였다.
사실 이 문제를 해결하는데는 큰 시간이 걸리지 않았다. DB저장은 ViewModel class에서 진행하고 View에서 이벤트 처리하는 과정을 살펴보면 되었다.
실질적인 원인은 다음과 같았다.
private func fetchData() { let pokeDex = PokeDex.findAll() pokeDexCount = pokeDex.count if pokeDexCount == 1010 { successDownload = true model = Array(PokeDex.findAll()) //빌드 5 이부분 추가 } }
데이터를 반복하여 저장할때 옵저빙되는 메서드이다. 포켓몬 마릿수카운팅을 하다 완료가 되면 이벤트를 주고 최초로 보여줄수 있는 model변수에 DB의 배열을 저장해야하는데 이 전에는 이 부분이 없었다.. 그래서 추가해주고 잘되는것을 확인했다.
완성도는 배포를 하기전에 당연히 생각해야하는 부분인데, 너무 안일했다. 빨리 내가 만든 앱을 배포하고 싶다는 마음에 테스트에 게을렀다. 다시는 이런 문제로 리젝 당하지 않기 위해 확실하게 해야겠다..
'프로젝트 > 올포원' 카테고리의 다른 글
[포케덱스] - Error: sessionTaskFailed (1) 2024.05.01 [올포원] - 4,5번째 리젝 그리고 배포 성공 (4.2&4.2.3 - Design - Minimum Functionality, 2.3.7 - Performance - Accurate Metadata) (1) 2023.07.07 [올포원] - 2번째 리젝(2.1.0 Performance - App Completeness,2.3.3 Performance - Accurate Metadata) (1) 2023.06.18 [올포원] - 1번째 리젝(Other) (0) 2023.06.16 [올포원] # 개요 (2) 2023.06.09