TIL - 2024.03.28 목요일 (개인프로젝트 25일차)

· 성취/개선/학습한 내용 🏆

  • RxSwift
    • BehaviorSubject
    • bind
  • UIViewAinamtor -fractionComplete

· 경험한 이슈 😫

  • Animation을 활용해서 CollectionViewCell의 색을 점차 바꾸는 작업을 했었다. 그런데 앱이 백그라운드로 바뀌었을 때 애니메이션을 멈추고, 다시 포그라운드 상태로 돌아와서 재개하니 애니메이션은 실행되는 건지 아닌지는 모르겠지만 애니메이션이 다 끝난 상태로 cell의 색이 다 변경이 되어 있었다. 추측을 해보자면 UIViewPropertyAnimator은 원본을 복사해서 애니메이션 효과를 주는 것인데 앱이 백그라운드 상태로 가버리니 UI를 변경하는 애니메이션은 끝내버리는 것 같다. 정수형 변수나 실수형 변수를 바꿔주는 애니메이션은 그대로 멈출 수도 있지만, UI는 백그라운드 상태로 가버리는 순간 조정을 할 수 없게 돼버리는 것 같다. 그래서 이를 해결하기 위해 진행상황을 변수로 기록하고, 진행상황에 따라 Cell의 색을 변경하고 남은 시간을 계산해 마저 애니메이션을 주는 작업을 통해 해결을 했다. 

· 모르는 부분???? 🥺

  • UI는 왜 앱이 백그라운드 상태로 가면 원하는 시점에 멈추지 않고 끝나버리는 걸까?

· 기술적으로 어려웠던 부분 😵😵‍💫

  • 애니메이션 다루기 + 백그라운드 / 포그라운드 상태까지 고려를 하다보니 예상치 못한 버그가 많이 발생했다. 또 애니메이션이 하나가 아니라 여러 개이고 또 두 가지 상태에서 이 부분을 다루다 보니 고려해야 하는 부분과 순서가 굉장히 많아서 어려웠었다.

· 생각보다 덜/더 걸리는 작업과 그 이유  😱/🥴

  • 우선 애니메이션을 너무나 쉽게 생각했던 것 같다. 그래서 고려할 점이 이렇게 많고 상황을 다 고려해서 코딩해야한다는 점을 간과하고 시작해서 생각보다 더 오래 걸리는 것 같다.

· 느낀점 🌟

 애니메이션.... 너무나도 어렵다... 하지만 제대로 사용만 할 수 있다면 가시적으로 줄 수 있는 임팩트가 크고, 코딩하는 나도 재미를 느끼는 기술이다. 이번 경험을 통해 다음에 애니메이션을 사용할 땐 좀 더 효율적으로 할 수 있고 공수산정도 더 객관적으로 할 수 있을 것 같다.