TIL - 2024.04.17 수요일

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

 오랜만에 SwiftUI에 대해서 다시 공부를 했다. 오늘 중점적으로 다룬 부분은 ViewModifier이고, 커스텀을 통해 보일러 플레이트 코드를 줄이고 body 부분을 깔끔하게 코딩할 수 있다는 것을 학습했다. 또 작년 내내 SwiftUI를 사용했지만, 프리뷰가 보여야지 View객체를 오른쪽 마우스로 눌렀을 때 V, H, Z 스택을 embed 할지, 또 Extracted SubView 할지 선택할 수 있는 옵션이 나온다는 것을 이제 알게 되었다.

 그리고 RxSwift에서 Single로 네트워크 통신을 할 때, 통신이 실패해도 왜 .success로 먼저 처리를 한 다음에 실패를 받는지 이제 이해를 했다. 만약 바로. failure로 처리를 해버리면 onError로 코드가 빠져버려서 스트림이 끊겨버린다. 예를 들어 버튼을 눌러 사진을 불러오는 것이었다면, 에러 발생 시 버튼의 subscribe가 끊겨서 이후에 버튼을 아무리 눌러도 인터넷에서 사진이 불러와지지 않는다. 즉 와이파이가 잠깐 잘 안돼서 에러가 발생했다가 다시 빵빵해져도 안 되는 것이다. 이런 경우를 막기 위해. success로 먼저 처리를 하는 것이다.

  • SwiftUI
    • ViewModifier
    • Extracted SubView
    • View Rendering vs init
  • RxSwift
    • Single에서 네트워크 통신 실패를 single(.success(.failure(Error)))로 처리하는 이유(onError로 빠지지 않게 해서 구독이 끊기지 않게 하기 위해)

· 어려웠던 내용 😵😵‍💫

  • Single을 활용해서 네트워크 통신을 하고 있는데, 이때 네트워크 통신이 실패했을 때와 성공했을 때를 분기해서 rx로 처리하고 싶은데, 처리하기가 쉽지 않다
  • 네트워크 통신을 할 때, Error Handling 역시 어떻게 하는 게 효율적 일지 모르겠다.

· 궁금한 내용과 부족한 내용 ⁉️🤔

  • 아직 map과 flatMap을 잘 모르겠다.... 언제, 어떻게 사용해야 할지 

 

 

'# TIL (Today I Learned)' 카테고리의 다른 글

TIL - 2024.04.19 금요일  (0) 2024.04.19
TIL - 2024.04.18 목요일  (0) 2024.04.18
TIL - 2024.04.16 화요일  (0) 2024.04.16
TIL - 2024.04.15 월요일  (0) 2024.04.15
TIL - 2024.04.12 금요일  (0) 2024.04.13