RxSwift

    iOS 에서 Void Observable 테스트 코드 작성하기

    RxSwift 에서 다음 이벤트로 값을 전달할 필요가 없는 경우에는 Void Observable 를 사용합니다. 그리고 테스트 코드를 작성하기 위해서는 RxTest 에 있는 TestScheduler 를 이용하여 가상 시간의 이벤트들을 방출하는 옵저버블을 만들고, XCTAssertEqual 을 통해 events 를 비교하게 됩니다. Bool Observable 은 문제 없이 테스트 가능하지만 여기서 Void Observable 에서 문제점이 발생하게 됩니다. .next 로 들어가는 요소는 Equatable 을 준수해야 하기 때문입니다. RxSwift 저장소에서 해당 문제가 논의되며 PR이 올라왔었지만, 현재는 메인 저장소에 반영되지 않았습니다. 이를 해결하는 방식은 크게 2가지가 있습니다. 1. 별도의 테..

    iOS MVVM 패턴 구현 정리 ( with RxSwift )

    현재 MVVM + HelperClass 로 구현된 프로젝트를 RxSwift 로 리팩토링하는 작업을 진행하고 있는데, 작업에 참고할 best practices 를 찾는 과정에서 서로 다른 구현 방식들을 보게 되었습니다. 이를 통해 MVVM 은 적은 코드로 각 컴포넌트들을 쉽게 분리할 수 있다는 장점이 있지만 개발자의 관점에 따라서 구현에 차이점이 있다는 것을 알게 되었습니다. ( 특히 MVVM은 마이크로소프트에서 특정 플랫폼에서 사용되도록 고안된 디자인 패턴으로, 각자 iOS 프레임워크 환경에 맞게 적용하는 단계에서 차이가 발생했다고 생각했습니다. ) 이번 게시글에서는 iOS 에서 각 회사, 단체에서 어떻게 MVVM 구현하였는지 정리하고자 합니다. 데이터 바인딩 종류 1. RxSwift 를 이용한 바인딩 ..