Skip to content

Instantly share code, notes, and snippets.

Daniel Tartaglia danielt1263

Block or report user

Report or block danielt1263

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View SKProductsRequest+Rx.swift
//
// SKProductsRequest+Rx.swift
//
// Created by Daniel Tartaglia on 8/28/19.
// Copyright © 2019 Daniel Tartaglia. MIT License.
//
import RxSwift
import RxCocoa
import StoreKit
@danielt1263
danielt1263 / ClearingDebounceTests.swift
Created Aug 22, 2019
Works like `debounce` except if an empty string is pushed in, it will emit immediately.
View ClearingDebounceTests.swift
class Tests: XCTestCase {
var scheduler: TestScheduler!
var result: TestableObserver<String>!
var disposeBag: DisposeBag!
override func setUp() {
super.setUp()
scheduler = TestScheduler(initialClock: 0, resolution: 0.1)
result = scheduler.createObserver(String.self)
View ObservableResultTransforms.swift
//
// ObservableResultTransforms.swift
//
// Created by Daniel Tartaglia on 5/10/2019.
// Copyright © 2019 Daniel Tartaglia. MIT License.
//
import RxSwift
/**
@danielt1263
danielt1263 / Coordinator.swift
Created Mar 30, 2019
A simplified RxFlow system
View Coordinator.swift
//
// Coordinator.swift
// RxFlow
//
// Created by Daniel Tartaglia on 2/13/19.
// Copyright © 2019 Daniel Tartaglia. MIT License.
//
import Foundation
import RxSwift
View SKPhysicsWorld+Rx.swift
//
// SKPhysicsWorld+Rx.swift
//
// Created by Daniel Tartaglia on 21 Jan 2019.
// Copyright © 2019 Daniel Tartaglia. MIT License.
//
import RxSwift
import SpriteKit
@danielt1263
danielt1263 / RetryingTokenNetworkService.swift
Last active Sep 13, 2019
The TokenAcquisitionService automatically retry requests if it receives an unauthorized error. Complete with proof that it works correctly.
View RetryingTokenNetworkService.swift
//
// RetryingTokenNetworkService.swift
//
// Created by Daniel Tartaglia on 16 Jan 2019.
// Copyright © 2019 Daniel Tartaglia. MIT License.
//
import Foundation
import RxSwift
View AcceptRejectItems.swift
//
// AcceptRejectItems.swift
//
// Created by Daniel Tartaglia on 9 Jan 2019.
// Copyright © 2019 Daniel Tartaglia. MIT License
//
import RxSwift
struct Input {
View ThrottleUnlessChanged.swift
//
// ThrottleUnlessChanged.swift
//
// Created by Daniel Tartaglia on 6 Jan 2019.
// Copyright © 2019 Daniel Tartaglia. MIT License.
//
import RxSwift
extension ObservableType where E: Equatable {
View RxCache.swift
//
// RxCache.swift
//
// Created by Daniel Tartaglia on 12/20/18.
// Copyright © 2018 Daniel Tartaglia. MIT License.
//
import RxSwift
final class Cache<Key: Hashable, State> {
View Combining Recipes.md

Recipes for Combining Observables in RxSwift

Several operators exist to combine multiple observables into one. This document shows the basics of the various combining operators and shows some more advanced recipes using them.

Combine Latest

The combineLatest operator is used whenever you have two or more observables emitting values, and you want access to the latest value emitted from each of them whenever one of them emits a new value. It can be used, for example, to combine a username and password to make a login request:

func example(username: Observable<String>, password: Observable<String>) {
    let credentials: Observable<(String, String)> = Observable.combineLatest(username, password)
You can’t perform that action at this time.