Rx는 MVVM 디자인 패턴에 특화되어있다. 한 쪽 방향으로 쉽게 Observing 할 수 있는 구조로 되어있기 때문이다. RX 와 MVVM를 같이 사용할 때의 장점 MVVM 패턴을 사용하게 되면 ViewModel로 비지니스 로직을 분리할 수 있게 되고, test를 쉽게 할 수 있다는 있다. 또한, 보통 프론트와 모바일 파트는 기획 및 설계가 이루어지면 디자인, 백엔드(서버)의 개발이 이루어진 후 개발을 들어간다. 하지만 MVVM 패턴을 이용하게되면 목업정도의 데이터 구조와 API 구조를 알고 있다면 먼저 개발을 진행하고 완성된 개발 스펙에 맞게 converting이 가능하도록 해준다. 예를 들어, API요청을 Rx를 사용하지 않고 callback(completion: @escaping) 형태를 사용해 ..
RxCocoa 란? UIKit의 View에 RxSwift 요소들을 Extension으로 접목시킨 라이브러리 Bind subscribe에서 onNext로 오는 값을 대입해주는 것. 순환참조 없이 사용할 수 있다. binder binding 할 수 있는 타입 subscribe와의 차이점은, Error의 컨트롤 가능여부 이다. UI는 반드시 MainThread에서 동작해야하므로 항상 observeOn(MainScheduler.instance)를 추가 해주어야한다. onError, onCompleted, 그리고 dispose가 되면 스트림이 끊어지게 된다. 비지니스 로직에서는 에러와 완료 처리가 필요하지만, UI에서 스트림이 끊어지면 다시 그 UI를 사용하지 못하게 되므로 주의 해야한다. catchErrorJu..
RxSwift에서 가장 중요한 요소 중 하나인 Observable에 대해 알아보겠습니다. Observable란? 구독할 수 있는 스트림 형태의 값, 해당 값을 생성시에 들어오는 값을 Observer가 관찰하고 있다가 값을 방출해준다. 사실 개념만 봐서는 이해가 잘 안될 수 있습니다. Observable을 공부해본 결과 Observer와 Observable이라는 개념이 존재합니다. Observer는 값을 관찰하고 있다가 스트림으로 값을 보냅니다. Observable는 받을 수 있는 값들을 모아 스트림을 만들고 해당 값을 가지고 있습니다. Observer에도 2가지 형태의 Observer가 존재 합니다. 첫번째는, Observable 생성시에 값이 들어오는 것을 추적하는 Observer. 값이 들어오면 방..
RxSwift에 대한 공부를 시작하려고 합니다. 먼저 왜 RxSwift를 사용해야하는지, 왜 RxSwift에 관심을 갖게 되었는지 말씀드리고자합니다. 네트워크를 통한 데이터 통신이 잦아지면서 비동기 처리를 해야했고, 탈출 클로저(@escaping)을 통한 completionHandler 처리를 해주어야 했습니다. 하지만 비동기 처리의 중첩 등의 이유로 탈출 클로저를 통한 함수 생성은 복잡하기도 하고 사실 매번 만드는데 조금 귀찮아지기도 했습니다.... 그래서 비동기 처리를 쉽고 간결하게 할 수 있는 방법을 찾아보던 도중 비동기 프로그래밍을 위한 라이브러리를 알게 되었습니다. 비동기 프로그래밍을 위한 라이브러리는 대표적으로 Promise, Bolt, RxSwift 이 있습니다. UIKit과 함께 사용됩니다..
- Total
- Today
- Yesterday
- Apple
- certificate
- 동적계획법
- 코테
- rxcocoa
- RxSwift
- TextField
- 아키텍처
- Push
- Clean Architecture
- 프로비저닝
- remote
- 코드사이닝
- CSR
- ios
- dip
- MVVM
- APNS
- 클린아키텍처
- MVC
- TabBar
- Crossing Boundaries
- relay
- 프로파일
- Rx
- provisioning profile
- subject
- 프로비저닝 프로파일
- notification
- Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |