일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RxSwift
- SwiftLint
- gcd
- ios
- 웹뷰
- Realtime Database
- remote config
- UIButton
- autolayout
- SwiftUI
- Apple
- 라이트모드
- LazyHStack
- subscript
- swipe
- 다크모드
- string
- Java
- UITabBarController
- UIScrollView
- Swift
- Observable
- NavigationLink
- Alamofire
- Firebase
- 문자열
- Android
- github
- WebView
- dictionary
- Today
- Total
목록RxSwift (15)
점진적 과부하 개발 블로그
RxSwift RxTest 알아보기 RxTest Observable에 가상의 시간 개념을 주입 임이의 Observer를 통해 subscribe 여부 관계 없이 검증 가능 //가상의 시간 흐름 생성 let scheduler = TestScheduler(initialColck: 0) TestScheduler를 사용해 가상의 시간 흐름을 생성합니다. // 원하는 시점에 Event가 발생하는 Observable create (구독의 여부와 관계없이 이벤트 발생) let observable = scheduler.createHotObservable([ .next(1, "가), .next(1, "가) .next(1, "가) ]) // 원하는 시점에 Event가 발생하는 Observable 생성 (구독이 시작되어야 정..
Swift UnitTest, Nimble 알아보기 Unit Test 컴퓨터 프로그래밍에서 소스코드에 특정 모듈이 개발자가 의도한대로 잘 작동하는지를 검증하는 절차 하나를 통째로 테스트하는게 아니라 유닛을 만들어서 테스트를 하기때문에 Unit Test라 지칭한다. XCTest Xcode에는 Xcode에 대한 성능 테스트, UI 테스트, 단위 테스트 등 만들고 실행할 수 있게 해주는 XCTest 라는 프레임워크가 있습니다. XCTestCase 테스트 케이스 테스트 방법 성능 테스트 등 을 정의하기 위한 기본 클래스 이 클래스를 통해서 테스트를 실행하기 전에 초기상태를 준비하고 테스트가 완료된 후에 정리까지 수행 class func setUp() 테스트 케이스가 시작되기 전에 초기상태를 사용자 정의할 수 있게..
RxSwift 데이터 처리 private func bind() { let blogResult = searchBar.shouldLoadResult .flatMapLatest { query in SearchBlogNetwork().searchBlog(query: query) } .share() let blogValue = blogResult .compactMap { data -> DKBlog? in guard case .success(let value) = data else { return nil } return value } let blogError = blogResult .compactMap { data -> String? in guard case .failure(let error) = data else..

Swift Kakao API 연결하기 앱 등록하기 내 애플리케이션 -> 애플리케이션 추가 하기 저장 후 들어가보면 여러가지 앱키들을 제공하고 있다. 문서에 들어가 iOS를 선택하시면 여러가지 문서들이 뜹니다. 저는 다음 검색 API를 사용할 것이기 때문에 Daum 검색 - 개발 가이드에 들어가 보겠습니다. 내리다 보면 블로그 검색 API가 나옵니다. 아까 발급받은 REST API KEY를 입력을 해야 결과값을 받아옵니다. postman으로 테스트를 해보겠습니다. header에 Authorization을 추가해줍니다. KakaoAK REST API KEY값을 입력 값을 잘 가져오는걸 확인할 수 있습니다. Xcode에서도 사용할 수 있게 등록을 해주겠습니다. Xcode에서 info.plist에 URL typ..

RxSwfi의 에러 관리 RxSwift의 에러 관리 Catch 기본값 defaultValue로 error 복구하기 retry 제한적 또는 무제한으로 재시도 retry하기 Catch func catch(_ handler:) -> RxSwift.Observable enum MyError: Error { case anError case criticalError } Observable.create { $0.onError(MyError.anError) return Disposables.create() } .catch { error in switch error as! MyError { case .anError: return .just("괜찮") case .criticalError: return .just("뻥!")..
RxCocoa 알아보기 Cocoa Framework Foundation ApplicationKit(UIKit) iOS 뿐만 아니라 macOS나 iPadOS처럼 애플 생태계에 운영체제 영역을 만들려면 필수적으로 사용되야 하는 Framework이다. RxCocoa Cocoa Framework를 Rx에서 사용할 수 있도록 Rx로 감싼것을 RxCocoa라고 합니다. Binder Driver Signal extension Reactive where Base: T {} Binder 생성자는 값을 만들어내고 수신자는 만들어진 값을 수신하고 처리한다. 수신자는 값을 반환할 수 없다. Binder 생성자(Observable) -> 수신자(Binder) X
RxSwift TimeBased Operator 정리 replay 버퍼링 연산자들은 과거에 요소들을 subscirber에게 다시 전송하거나 잠시 버퍼링을 두고 줄 수 있다. // 버퍼링 연산자들은 과거에 요소들을 subscirber에게 다시 전송하거나 잠시 버퍼링을 두고 줄 수 있다. print("---replay---") // let 인사말 = PublishSubject() let 반복하는기계 = 인사말.replay(1) // 버퍼의 개수만큼 최신순서대로 값을 받을 수 있다. 반복하는기계.connect() 인사말.onNext("1. 안녕") 인사말.onNext("2. 아니") 반복하는기계 .subscribe(onNext: { print($0) }) .disposed(by: disposedBag) rep..
RxSwift Combining Operator startWith 초기값을 붙이고 싶을 때 사용 같은 타입을 사용해야 된다. 위치 상관없이 먼저 호출된다. print("---startWith---") // 초기값을 붙일때 사용 let 노랑반 = Observable.of("잼민1", "잼민2", "잼민3") 노랑반 .enumerated() .map({ index, element in return element + "잼민" + "\(index)" }) .startWith("선생님") .subscribe(onNext: { print($0) }) .disposed(by: disposeBag) concat 방출 순서를 보장해준다. print("---concat1---") let 노랑반아이들 = Observable..