반응형
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️입니다. 오늘은 Share 에 대해 알아보도록 하겠습니다. . Share에 대해 알아보기 전! Observable의 간단한 특징 하나만 보고 가도록 하겠습니다. . - Observable은 Subscribe 될때마다 Create을 호출해 Observable을 생성합니다. - Observable은 Subscribe를 한 횟수만큼 Subscription 시퀀스를 생성됩니다. . . 이러한 사실을 기억하고 Share에 대해 알아보도록 하겠습니다. 1. Share 1-1. Share 사용 X 바로 소스를 통해 확인하도록 하겠습니다. [ 코드 ] // API 요청이라고 가정 let reqAPI = Observable.of(100).debug("reqAPI(No Share..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️입니다. 오늘은 Traits에 대해 알아보도록 하겠습니다. 1. Traits 이란. UI 처리에 특화된 Observable 직관적이고 작성하기 쉬운 코드에 도움이 되는 Observable .asObservable 사용시 다시 기본 Observable로 돌아갈 수 있음. 2. Single 1개의 요소를 포함하는 Observable Success(value) 이벤트 또는 Error 이벤트를 한번만 방출합니다. Success = Next + Completed 로 볼 수 있습니다. 즉 Success 가 발생하면 해당 single 은 종료됩니다. 즉 하나의 원소나 에러를 방출하도록 보장된 Observable 의 변형입니다. Single.create { single in s..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️입니다. 이번 포스팅에서는 Debounce 와 Throttle에 대해 알아보도록 하겠습니다. 1. Debounce 입력 > 입력 안되고 대기 > 일정 시간 후 입력 주로 텍스트 필드 입력에 사용 소스 ( 버튼 클릭 이벤트에 적용 ) debounceBtn.rx.tap.asDriver() .debounce(.seconds(3))// 3초 대기 입력 .drive(onNext: { [weak self] in self?.debounceCount += 1 self?.debounceLabel.text = "\(self?.debounceCount ?? 0)" }) .disposed(by: disposeBag) 2. Throttle 입력 > 바로 입력 > 대기 주로 중복 입력 방..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂입니다. 이번 포스팅에서는 Observable에서 파생된 Driver라는 개념에 대해 알아보도록 하겠습니다. 1. Driver Driver는 기본적으로 Observable에서 파생 Driver은 Main Thread에서 작업하고 싶을 때 Observable 대신 사용할 수 있습니다. . . 즉! UI 작업에 적합하다~ . . Observable 의 경우, 기본적으로 Background Thread에서 작업하므로 Main Thread에서 작업을 하기 위해서는 별도의 명시가 지정해줘야 하지만 Driver는 그러지않아 보다 편리하게 사용할 수 있습니다. . Driver로 변환하고 싶을 때 asDriver() 을 사용하면 된다. 1. asDriver 의 경우 asObser..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️ 입니다. 이번 포스팅에서는 Subject에서 파생된 Relay라는 개념에 대해 알아보도록 하겠습니다. Subject에 생소하신 분들은 아래 포스팅을 참고해주시면 감사드리겠습니다. [ RXSwift ] Subject 안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️ 입니다. 이번 포스팅에서는 RxSwift에서 자주 사용하는 개념인 Subject에 대해 알아보도록 하겠습니다!! 1. Subject Observer 이자 Observable 입니다. Observe beanistory.tistory.com 1. 개요 Relay의 경우 RxSwift에서 제공되는 것이 아니라 RxCocoa에서 제공하고 있습니다. 왜냐하면 Relay를 사용하여 UI 이벤트를 쉽게 구현하고 처리할 ..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️ 입니다. 이번 포스팅에서는 RxSwift에서 자주 사용하는 개념인 Subject에 대해 알아보도록 하겠습니다!! 1. Subject Observer 이자 Observable 입니다. Observer 이기 때문에 하나 이상의 Observable을 구독할 수 있으며, 동시에 Observable 이기 때문에 새로운 항목들을 방출할 수 있습니다. 여기서 나오는 Observer과 Observable에 대해 짧게 정리하고 가겠습니다. Observable란, 비동기 이벤트를 관찰이 가능한 형태로 만든 것으로, 해당 이베트가 발생했을 시 항목을 방출합니다. Observer란, 내가 원하는 비동기 이벤트를 방출하는 Observable이 있을 경우, 해당 Observable을 구..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️ 입니다. 이전 포스팅에서는 RxSwift에 Operator에 대해 알아보았습니다. [ Swift ] RxSwift 입문 1편 ( Observable, Subscribe ) 안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️ 입니다. 실제 업무를 진행하면서 RxSwift에 대해 접해볼 기회가 없었습니다. 다만 요즘 트랜드를 보면 RxSwift 사용이 점차 많아지는 것을 확인할 beanistory.tistory.com 이번 포스팅에서는 RxSwift에서 자주 사용되는 Operator에 대해 알아보도록 하겠습니다. 자~! 그럼 고고씽~! 1. Create 가장 먼저 Observable을 생성하는 Operator에 대해 알아보도록 하겠습니다. 1-1. create 가장 기본적으..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️입니다. 오늘의 포스팅은 URLComponents에 대해 알아보도록 하겠습니다. 1. 개요 간단히 말하여 URL을 구성하는 구조라고 볼 수 있습니다. 예를 들어 GET https://[hostname]/beani/test 위 URL을 기반으로 GET 방식을 통해 통신을 하고 싶다고 가정해봅니다. GET 방식이기 때문에 파라미터는 아래와 같이 URL 쿼리 스트링으로 들어가게 됩니다. GET https://[hostname]/beani/test?key1=\(value1)&key2=\(value1) 이런 식으로 요청할 수 있습니다. 위와 같이 URL String 뒤에 붙여서 사용할 수 있으나 오늘 알아보는 URLComponents를 사용하면 좀더 간단하고 실수 없이 ..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️입니다. 오늘의 포스팅은 펼침이 가능한 UITableView 만들기입니다. 흔히들 Expandable UITableView 라고도 불리지요~ 실무에서 해당 기능을 사용을 하게 되었고~ 정리를 해보았습니다. Full Code 는 맨 하단에 Github 링크 올려놨으니 참고 부탁드립니다 ㅎㅎ 1. 프로젝트 구조 프로젝트 구조는 다음과 같습니다. 초록색 : Dummy Data를 위한 데이터 소스 빨간색 : 화면 출력을 위한 ViewController 소스 2. 소스 간단한 프로젝트 구조를 알아보았으니 작성된 소스에 대해 알아보도록 하겠습니다. 2-1. StoryBoard 간단히 TableView만 생성 후 ViewController에 연결합니다. 2-2. Model c..
안녕하세요🐶 빈지식 채우기의 비니🙋🏻♂️ 입니다. 실제 업무를 진행하면서 RxSwift에 대해 접해볼 기회가 없었습니다. 다만 요즘 트랜드를 보면 RxSwift 사용이 점차 많아지는 것을 확인할 수 있었고 "개념이라도 알아야 실제 써먹던가 하지..." 해서 공부를 하게 되었습니다. 이번 포스팅 부터는 RxSwift 에 대해 제가 공부한 것들을 차근 차근 포스팅 하려고 합니당! 1. 개요 한가지 샘플 코드를 소개하면서 포스팅을 시작하도록 하겠습니다! //URL을 통한 데이터 수신 로직 func downloadJson(urlString: String, completion: @escaping (String) -> Void) { guard let url = URL(string: urlString) else {..