Today I Learned/2024
24.08.26 Today I Learned
이도서
2024. 8. 26. 18:52
오늘은 RxSwift로 코딩을 시작했다. 처음 써보는거라 어색한 부분도 많은데 기능을 추가하고 액션을 넣을 때 코드가 좀 더 간결해지는 것을 느꼈다.
UIKit에서 UI와 로직을 연결하는 코드들을 바인딩해서 한군데서 처리하는게 좋았다.
그 부분의 코드를 보면
// MARK: - Setup Bindings
private func setupBindings() {
let tapProfile = UITapGestureRecognizer()
profileImageView.isUserInteractionEnabled = true
profileImageView.addGestureRecognizer(tapProfile)
tapProfile.rx.event.bind(onNext: { [weak self] _ in
print("프로필 이미지 클릭")
}).disposed(by: disposeBag)
let tapPuppy = UITapGestureRecognizer()
puppyImageView.isUserInteractionEnabled = true
puppyImageView.addGestureRecognizer(tapPuppy)
tapPuppy.rx.event.bind(onNext: { [weak self] _ in
print("강아지 이미지 클릭")
}).disposed(by: disposeBag)
addButton.rx.tap.bind { [weak self] in
self?.addNewContainerView()
}.disposed(by: disposeBag)
}
각각의 버튼 혹은 이미지를 누를 때 어떠한 액션이 나오는지를 setupBindings로 묶어서 처리했다. 여기에는 프로필이미지 누를때, 강아지 이미지 누를때, UIButton을 누를때 이렇게 3가지 액션이 있는데 이렇게 쉽게 정리가 되니까 RxSwift의 편의성을 느꼈다.