목록iOS/RxSwift (8)
clyne의 개발 기록

안녕하세요! iOS 개발자 CNOO 입니다~! 오늘은 RxSwift의 오퍼레이터 중, concat에 대하여 알아보겠습니다. 저는 개인적으로, 전수열님의 ReactorKit에서 mutate 함수 리턴할 때, concat을 애용하는 편인데요, concat에 대해서 자세히 알아보고자, 그리고, 제가 공부한 것을 공유드리고자 이렇게 포스팅 하게 되었습니다. RxSwift의 연산자를 처음 공부할 때는 저는 항상 공식문서와 내부 구현함수를 살펴봅니다. reactivex.io/documentation/operators.html ReactiveX - Operators Introduction Each language-specific implementation of ReactiveX implements a set of o..

안녕하세요. iOS개발자 CNOO입니다. 오늘은!!!! UIButton이 아닌, UIView에 클릭 이벤트를 추가하는 방법에 대해서 알아보고자 합니다! UIView를 상속받는 모든 View에 해당하는 방법이니까, 잘 보고 편하신 방법으로 구현하시면 되겠습니다. (사실 이 포스팅의 핵심은 RxGesture......예요.. 이거 엄청 좋습니다. RxSwift 와 ㄹㅇ찰떡궁합.) 샘플 화면 먼저 간단히 어떤 화면을 구현했는지 보겠습니다. 저는 간단히 파란 네모와 빨간 네모를 만들어서 클릭하는 이벤트를 적용해보았습니다. 클릭하면 아래와 같이 로그가 찍히는 예제입니다. 세가지 방법에 대한 설명을 모두 쭉 하고, 맨 아래쪽에 코르를 보여드리도록 하겠습니다. 방법1. Add UITapGestureRecognizer..

안녕하세요 iOS 개발자 CNOO 입니다. 오늘은 RxSwift의 .drive와 .subscribe의 차이점에 대해 알아보도록 하겠습니다~ 먼저 Drive의 공식 문서를 보시면 1. 오류를 내뱉지 않는다. 2. MainScheeduler에서 동작한다 (메인스레드 동작 보장) 3. 바인딩 되어있는 경우, 1회 동작을 보장한다. 정도가 되겠네요. 결론부터 말씀드리자면, Drive는 Main Thread에서 동작하는 것을 보장하기 때문에, UI 와 관련된 처리는 모두 Drive 로 처리해주시면 됩니다. 물론 subscribe를 사용하실 때도 Main Thread에서 동작하도록 슈거를 추가해주면 되는데, 해당 방법은 아래 예제를 통해 보여드리도록 하겠습니다. 심플하게 UITextField를 하나 화면에 추가해서..

안녕하세요 iOS 개발자 CNOO입니다. 오늘은 merge를 활용하여 버튼 두개의 이벤트를 처리하는 코드를 작성했던 경험을 공유하고자 포스팅하게 되었습니다. 1. 분리된 코드 (리팩토링 전) 아래 코드와 같이, 뭔가 정말 비슷하게 동작하는데.... 하나의 코드로 리팩토링 할 수는 없을까 고민하고 삽질해보았습니다. 먼저, 분리된 코드 먼저 보시죠 어차피 같은 이메일 보내기 동작인데, 두 번이나 쓸 필요는 없겠죠?? 2. merge된 코드 (리팩토링 후) 자! 여기서 우리는 merge라는 operator를 활용하여, 하나의 코드로 작성해보겠습니다. 아! 그 전에, merge가 어떻게 동작하는지, 간단히 마블 다이어그램부터 보고 가실게요 merge operator의 마블다이어그램 출처: .ReactiveX 홈..
안녕하세요~iOS 개발자 CNOO 입니다. 오늘은 RxSwift를 이용하여 UITextField, UITextView의 글자수를 제한하는 방법을 알아봅시다~ 1. Delegate 방식기존에 Delegate 방식으로 이벤트를 받아 처리하는 것은 아래와 같이 했었죠!닉네임 입력창의 글자 수 제한을 8자로 제한하는 코드입니다.이 방법은 많이 익숙하실 것이고, 검색하면 많이 나오는 코드죠!( 저도 어딘가에서 복사 붙여넣기 해서 만든 코드인거같네요...) 2. RxSwift 를 이용한 처리델리겟 방식도 처음엔 엄청 편하고 그랬는데,RxSwift 공부하면서 코드가 더 깔끔해져서 이제는 Rx코드만 쓰네요 ㅋㅋ아래는 인증번호 입력창을 6자로 제한하는 코드입니다. 이 코드는 어디서 배껴온건 아니고 제가 직접 짰어요!Rx..

startWith!!! Observable 시퀀스 앞에 원하는 값을 programmically 추가해주는 유용한 기능을 한다!! 구성하고 있는 화면 중에 아래와 같이 스터디장이 일일 공부시간을 수정하는 화면이 있는데, 코드는 다음과 같이 짰다. intPicker는 시간을 선택하는 UIPickerView고, minPicker는 분을 선택하는 UIPickerView이다 intArr에는 시간이, minArr에는 분이 10 ~ 50까지 들어있다!! 여기서 시간과 분을 모두 바꿔주어야만 combineLatest스트림에 EventControl이 전달되기 때문에 문제를 겪고 있었다. 이렇게, programmically 선택을 해주어도, 스트림에 전달되지는 않았다 ㅠ_ㅠ 그래서 열심히 삽질한 결과!!! 구세주 star..

모든 라이브러리가 그렇듯, 우리는 RxSwift를 공부하면서 가장 먼저, 그리고 가장 최우선적으로 참고해야하는 곳이 바로 공식 사이트 입니다. 그러나!!!!!! 이미 RxSwift를 공부하시기 시작한 분은 다른 포스팅에서 숱하게 보셨을테니... 저는 RxSwift를 공부하면서 스스로 깨달았던 부분들에 대해서 포스팅해보려 합니다. (그래도 공식사이트 링크 정도는 남겨두도록 하겠습니다 ㅎㅎ 저도 자주 들어가보곤 하니까 링크 하나 있으면 편하겠네요~ http://reactivex.io/ 기본적으로 공식사이트에는 아래와같이 An API for asynchronous programming with observable streams 라고 적혀있는데요.. 이 문장의 의미를 최대한 심플하게 이해하실 수 있도록 예제를 ..
안녕하세요 iOS 개발자 CNOO입니다. 3년동안 iOS개발을 하면서, 매번 MVC 패턴으로 설계되어있는 소스만 유지보수 하다보니, 현업에서 근무하는 동안 RxSwift의 필요성을 딱히 느끼지 못했던 것 같습니다. 풀타임으로 근무하고있는 현 회사에서는 마음대로 구조를 바꾸거나, 보안취약점 등의 이유로 제가 만든 작은 모듈 하나도 마음대로 붙이지 못해서 그런걸수도 있겠네요.. (금융업계다보니 개발하기에 굉장히 폐쇄적인 환경입니다 ㅠ_ㅠ) 개발자는 계속 공부하고 발전해나가야한다는 생각이 있어, 친한 동생이 창업한 작은 스타트업의 iOS 개발도 함께 진행중입니다. (렛터디 라는 소규모 스터디 플랫폼입니다. ㅎㅎ 관련 소개는 다른 카테고리를 참조해주세요~) 공식 오픈을 앞두고있는 신생 스타트업이라, 최신 라이브..