SwiftUI는 Controller를 없앴기에 완벽히 독립적인 View를 사용할 수 있습니다. ㄴ 그렇다면 MVVM으로 구현하기 진짜 꿀이겠네요! ㄴ 오 좋다!! 선언형 UI임과 동시에 View까지 독립적이라니! 하지만 MVVM을 활용하는건 오히려 모래주머니를 다는 행위입니다. ㄴ ?? 왜 ㄴ ??? 모래주머니를 왜 달아 이미 SwiftUI에서는 View에서 Property Wrapper를 사용하여 간단하게 데이터를 사용할 수 있게 해주었습니다. 이는 이미 View + ViewModel이라고 하네요. 그래서 ViewModel을 독립적으로 구현하는 행위 자체가 낭비다! 라고 합니다. ㄴ 그럼 비지니스 관련 로직들은? 상태관리는? View가 다하는거야? ㄴ 뭐가 어캐 되는 거임.. 그렇기에 TCA를 채택하였..
Publish, Behavior, Replay를 면접 질문으로 받았었는데,,.. 어버버 했던 기억이 트라우마가 되어 개념을 공부하고 직접 구현해보았습니다. 1. Publish 구독 이전의 이벤트는 모두 무시되며 구독 이후 이벤트만 발행한다. 2. Behavior 구독 시 구독 이전 가장 최근에 이벤트를 발행한다. 만약 구독 이전에 이벤트가 없었다면, 생성 시 받았던 초기값을 발행한다. 3. Replay 생성 시 BufferSize를 입력받고 구독 이전, BufferSize만큼의 이벤트를 받아둔 후 구독 시 해당 이벤트들을 발행한다. https://gist.github.com/rising-jun/0addc43aa0d402c587a13c91b714365a 공부하면서 느끼지만 ReactiveX에서 만들어준 구..
Moya를 사용하였습니다. 이유는 URLProtocol을 사용하지 않고 응답으로 Mock데이터를 받고 싶었습니다. 목적에 맞게 SampleData를 사용하여 MockData를 응답으로 받는 serviceStub를 구현하여 테스트하였습니다. 또 하나의 장점은 BaseAPI를 제공하였기에, URLRequest를 매우 편한 방법으로 사용하고, 재활용할 수 있었습니다. 얼마전 Alamofire내부 코드를 읽어보았습니다. - 올해 초 부트캠프를 하며 다른 조원의 PR을 보고 의구심을 갖게 되었습니다. '가장 네트워크쪽에 있을 Alamofire를 요청하는 부분이 View를 바로 설정할 수 있도록 응답이 main에서 실행된다..? 그럴리가 없는데..' 분명 이유가 있을것이다!! 내부의 코드를 읽고 주석을 읽어보니 경..