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

[홈] 데일리 문제 리스트 화면 구현 #94

Merged
merged 15 commits into from
Sep 14, 2023

Conversation

0inn
Copy link
Contributor

@0inn 0inn commented Sep 6, 2023

closed: #73
closed: #93

홈 애니메이션 이슈 해결

애니메이션 시간을 상수로 넣어놔서 몇 번 반복하면, 애니메이션과 아이콘이 정확하게 매칭 안되는 이슈
-> repeatforever() 대신, TCA 구조를 사용해 애니메이션 토글 구현

  1. toggleAnimation 액션 전달
  2. 애니메이션 시간동안 sleep(0.5)
  3. toggleAnimation 액션이 들어오면, 해당 변수가 false가 되면 아이콘 업데이트

시작하기 / 데일리 분기

testResultId == nil

로 확인해서 분기처리 해뒀습니다.


데일리 문제 풀기 전 데일리 문제 푼 후

남은 작업

  • 푼 사람 없을 때, "아직 ~" 분기 처리
  • 문제 풀이 시작 시, 웹뷰 이동

기존에 시간 상수값 넣어서 계산하던 방식 개선
- 시간이 지날수록 애니메이션과 icon 갱신 시간이 달라지는 이슈 발생
- 애니메이션 시점을 Store 받아 icon 업데이트하는 방식으로 수정
- 시작 화면
- 데일리 리스트 화면
@0inn 0inn added the enhancement New feature or request label Sep 6, 2023
@0inn 0inn requested review from k906506 and enebin September 6, 2023 15:29
@0inn 0inn self-assigned this Sep 6, 2023
@0inn
Copy link
Contributor Author

0inn commented Sep 6, 2023

엥. 데일리 문제 푼 후 상단 타이틀이 다르네. 수정해둘게요 ~!

Copy link
Contributor

@k906506 k906506 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 53 to 60
return .run { send in
repeat {
for icon in icons {
await send(.setIcon(icon))
try await self.clock.sleep(for: .seconds(1.595))
await send(.toggleAnimation(icon))
try await self.clock.sleep(for: .seconds(0.85))
}
} while true
}
Copy link
Member

Choose a reason for hiding this comment

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

Simulator.Screen.Recording.-.iPhone.14.Pro.-.2023-09-07.at.14.50.43.mp4

요 부분이 StartView init 마다 중첩돼서 탭 전환할 때마다 위에 캡처처럼 애니메이션이 깨지는 것 같음ㅋㅋ
제 생각엔 while true를 조절할 수 있게 만들거나 withTaskCancellation 써서 실행중이면 취소시키고 새걸로 돌리는 식으로 하면 해결 될 듯?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

이거 좀 확인한 결과, 마이페이지 탭 넘어가도 홈 탭의 Feature가 죽지 않아 생기는 이슈였음 . .
그래서 홈의 뷰들에서 onDisappear action 추가해서 해당 뷰 사라질 때, 실행중인 task들을 cancel 해줬어 !
다만, 이게 진행중이던 icon이 이어서 진행되는데 괜찮을까 ?

Simulator.Screen.Recording.-.iPhone.13.mini.-.2023-09-07.at.16.51.03.mp4

Copy link
Member

Choose a reason for hiding this comment

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

@0inn ㅇㅇ 상관 없을 것 같은데?

Copy link
Member

Choose a reason for hiding this comment

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

그거 + 혹시 모를 케이스 대비에서 애니메이션 시작 전에
guard isAnimating == false else { return } 하나 걸어주셔도 괜찮을 듯?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

이거 적용하면 애니메이션 적용이 잘 안돼서 . . 추후에 수정 다시 할게요 !

@enebin
Copy link
Member

enebin commented Sep 7, 2023

와 너무 잘해주셨음!!!! 코멘트 단 거 하나만 확인해주면 될 듯ㅎㅎ

@0inn
Copy link
Contributor Author

0inn commented Sep 13, 2023

  • 문제 풀이 웹뷰 진입
  • 문제 푼 사람 없을 경우 분기 처리

까지 완료했고,

  • 문제 풀이 결과 페이지 연동
  • 공유하기 (이거 지금 안되는데 url 때문인가 ?)
  • 말풍선

따로 브랜치 파서 작업하겠읍니다 . . !
@enebin @k906506

@0inn
Copy link
Contributor Author

0inn commented Sep 13, 2023

@enebin
Copy link
Member

enebin commented Sep 14, 2023

굿입니다. 일단 머지 할게요~

@enebin enebin merged commit f5d9653 into develop Sep 14, 2023
1 check passed
@enebin enebin deleted the feat/home-daily-tests(#93) branch September 16, 2023 05:58
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.

[홈] 데일리 문제 리스트 화면 구현 [홈] 애니메이션 수정
3 participants