https://github.com/shadowmanpat/rxnamer.git
https://github.com/ReactiveX/RxSwift
import RxSwift
import PlaygroundSupport
import Foundation
PlaygroundPage.current.needsIndefiniteExecution = true
let disposeBag = DisposeBag()
let numberSeq = Observable<Int>.just(5)
//let numberSubscriptiion = numberSeq.subscribe(onNext: { (int) in
//print(int)
//}, onError: { (error) in
//print(“error \(error)”)
//}, onCompleted: {
//print(“onCompleted”)
//}) {
//print(“onDispose”)
//}.disposed(by: disposeBag)
let helloSEquence = Observable.from([“h”,“e”,“l”,“l”,“o”])
//
struct Player {
var score: Variable<Int>
}
//Publish subject
var publishSubject = PublishSubject<String>()
publishSubject.onNext(“hello”)
publishSubject.onNext(“before”)
let pubSubscription = publishSubject.subscribe(onNext: { (value) in
print(value)
}, onError: { (errorr) in
}, onCompleted: {
}) {
}
publishSubject.onNext(“after”)
//behavior subject
var behaviorSubject = BehaviorSubject(value: “Value A”)
let sub1 = behaviorSubject.subscribe(onNext: {
print(“Subsctiption 1 : \($0)”)
})
behaviorSubject.onNext(“value b”)
behaviorSubject.onNext(“value C”)
let sub2 = behaviorSubject.subscribe(onNext: {
print(“Subsctiption 2 : \($0)”)
})
//replay subject
var accountSubject = ReplaySubject<Double>.create(bufferSize: 3)
var acountManager = accountSubject.subscribe(onNext: { (amount) in
print(“ammount \(amount)”)
}, onError: { (err) in
}, onCompleted: {
}) {
}
accountSubject.onNext(12.23)
accountSubject.onNext(299.3)
accountSubject.onNext(80.3)
accountSubject.onNext(29934.3)
accountSubject.onNext(80.6543)
var lastTreeTransaction = accountSubject.subscribe(onNext: {
print(“late three \($0)”)
})
//variables
//var variable = BehaviorRelay<Bool>(value: true)
//
//
//variable.asObservable().subscribe(onNext: {
//print(“variable $0”)
//})
//map
let formatter = NumberFormatter()
formatter.numberStyle = .spellOut
Observable<NSNumber>.of(123,23,543,65)
.map {
formatter.string(from: $0) ?? “”
}.subscribe(onNext: {
print(“\($0)”)
}).disposed(by: disposeBag)
//flatmap
struct Game {
var price : Double
}
let overwatch = Game(price: 33.3)
let sett = Game(price: 23.23)
let gameSubject = PublishSubject<Game>()
gameSubject.subscribe(onNext: { (game) in
print(“game \(game.price)”)
}, onError: { (eroor) in
}, onCompleted: {
}) {
//}
//gameSubject.flatMap{
//$0.price
//}
gameSubject.onNext(overwatch)
gameSubject.onNext(sett)
let ?? = Player(score: Variable(80))
let player = Variable(??)
player.asObservable()
.flatMap { $0.score.asObservable() }
.subscribe(onNext: { print(“score: \($0)”) }) //score: 80
.disposed(by: disposeBag)
// Fliter
var disposeBag = DisposeBag()
Observable.of(“nikos”, “agas”,“steve”, “jobs”).filter { (string) -> Bool in
string.starts(with: “n”)
}
.subscribe(onNext: {
print($0)
})
.disposed(by: disposeBag)
//zip
let carMakes = Observable.of(“bmw”, “Bugatti”,“Lotus”)
let carModels = Observable.of(“320”, “Veyron”,“Elise”)
Observable.zip(carMakes,carModels) {
$0+” “+$1
}.subscribe(onNext:{
print(“\($0)”)
})