https://github.com/ReactiveX/RxSwift/blob/master/Documentation/Why.md
RxSwift 깃헙에 왜 Rx 사용하는 지 나오는데 이걸 설명하는 어떤 아저씨가 직관적이고 한 줄로 아래의 코드를 쓸 수 있다고 이야기 한다.
greetingLabel에 두 개의 텍스트를 묶어서 하나의 스트링으로 만들어 뿌려주는 간단한 코드다.
1
2
3
|
Observable.combineLatest(firstName.rx.text, lastName.rx.text) { $0 + " " + $1 }
.map { "Greetings, \($0)" }
.bind(to: greetingLabel.rx.text)
|
cs |
근데 이거 Objective-C나 그냥 Swift에서도 한 줄로 대충 쓸 수 있다.
1
|
[self.greetingLabel setText:[[NSString alloc] initWithFormat:@"Greetings, %@ %@", firstName.text, lastName.text]];
|
cs |
Objective-C 코드도 이렇게 한 줄로 쓰면 되는데, 뭔가 다른 무엇이 있기는 하겠지.
(Objective-C의 경우 이런 형태로 중괄호가 연이어 감싸는 모양으로 한도 끝도 없이 길게 코드를 쓸 수가 있기도하고, 변수명을 읽고 바로 이해할 수 있는 이름으로 하는 것이 직접적으로 이야기하지는 않지만 약간은 룰이어서 보통 코드 길이가 길어진다.)
뭔가 내 심사가 배배꼬여서 그런건지 사실 비동기 이벤트 처리 방식으로 원하는 작업을 공정화하여 간단한 코드로 구현한다는 점에 대해서는 별로 할 말이 없기는 한데, 기존에도 혹은 일부분은 오히려 기존이 더 직관적일 수 있지 않나 하는 생각이 든다.
아무튼 육개월 넘게 백수로 계속 게임하고 놀다보니 너무 심심해져서 학습도 할 겸 코딩을 좀 다시 해볼까 생각이 든다.