ReactiveCocoa

ReactiveCocoa

A framework for composing and transforming streams of values

Member Since 8 years ago

Experience Points
0
follower
Lessons Completed
0
follow
Best Reply Awards
14
repos
Activity
Oct
5
1 week ago
started
started time in 1 week ago
pull request

NachoSoto pull request ReactiveCocoa/ReactiveSwift

NachoSoto
NachoSoto

Signal.Event: changed to `@frozen`

This enum isn't expected to change. It's important to mark it as @frozen so that clients don't get warnings whem compiling with BUILD_LIBRARY_FOR_DISTRIBUTION, which might be required in a future version of Carthage supporting Catalyst. (See https://github.com/Carthage/Carthage/pull/3235).

Checklist

  • Updated CHANGELOG.md.
pull request

NachoSoto pull request ReactiveCocoa/ReactiveCocoa

NachoSoto
NachoSoto

SUPPORTS_MACCATALYST

Checklist

  • Updated CHANGELOG.md.

See also https://github.com/ReactiveCocoa/ReactiveSwift/pull/840. This is necessary to build with the future version of Carthage.

pull request

NachoSoto pull request ReactiveCocoa/ReactiveSwift

NachoSoto
NachoSoto

SUPPORTS_MACCATALYST

Checklist

  • Updated CHANGELOG.md.

This is necessary to build with the future version of Carthage.

Sep
30
2 weeks ago
Sep
29
2 weeks ago
Activity icon
issue

danya61 issue comment ReactiveCocoa/ReactiveSwift

danya61
danya61

Support await / AsyncSequence

I haven’t tried the new betas yet, but I imagine the prevalence of @MainActor in iOS 15 will bring issues to current uses of ReactiveSwift. Specifically, I imagine you won’t be able to just do this:

producer
  .observe(on: UIScheduler())
  .start { [label] in label.text = $0  }

Feature request:

for await value in producer.start() {
  self.label.text = value
}

Unfortunately for try await would mean we lose error type information, so I would propose this API produces Result<Value, Error>, or a sequence of Value if Error is Never.

I’ll probably work on this throughout the week, but other thoughts are appreciated!

References:

Other ideas:

  • Being able to create SignalProducers using async:
SignalProducer<Int, MyError> { observer, disposable in
  observer.send(value: await f1())

  guard !disposable.isDisposed else { return }

  do {
    observer.send(value: try await f2())
  } catch {
    observer.send(error: error)
  }
}
  • Or simply just one async function:
let producer = SignalProducer<Int, Error>(asyncFunction: f)
  • New collect overloads:
let values: [Int] = await producer.collect()
let result: Result<[Int], MyError> = try await producer.collect()
danya61
danya61

What process? Back-deploy concurrency

Activity icon
fork

inderashah007 forked ReactiveCocoa/ReactiveObjC

⚡ The 2.x ReactiveCocoa Objective-C API: Streams of values over time
inderashah007 Updated
fork time in 2 weeks ago
Sep
28
2 weeks ago
started
started time in 2 weeks ago
started
started time in 2 weeks ago
started
started time in 2 weeks ago
Activity icon
fork

andyccc forked ReactiveCocoa/ReactiveCocoa

⚡ Cocoa framework and Obj-C dynamism bindings for ReactiveSwift.
andyccc Updated
fork time in 2 weeks ago
started
started time in 2 weeks ago
Sep
27
2 weeks ago
Sep
25
3 weeks ago
Sep
24
3 weeks ago
Activity icon
issue

mluisbrown issue comment ReactiveCocoa/ReactiveSwift

mluisbrown
mluisbrown

Support await / AsyncSequence

I haven’t tried the new betas yet, but I imagine the prevalence of @MainActor in iOS 15 will bring issues to current uses of ReactiveSwift. Specifically, I imagine you won’t be able to just do this:

producer
  .observe(on: UIScheduler())
  .start { [label] in label.text = $0  }

Feature request:

for await value in producer.start() {
  self.label.text = value
}

Unfortunately for try await would mean we lose error type information, so I would propose this API produces Result<Value, Error>, or a sequence of Value if Error is Never.

I’ll probably work on this throughout the week, but other thoughts are appreciated!

References:

Other ideas:

  • Being able to create SignalProducers using async:
SignalProducer<Int, MyError> { observer, disposable in
  observer.send(value: await f1())

  guard !disposable.isDisposed else { return }

  do {
    observer.send(value: try await f2())
  } catch {
    observer.send(error: error)
  }
}
  • Or simply just one async function:
let producer = SignalProducer<Int, Error>(asyncFunction: f)
  • New collect overloads:
let values: [Int] = await producer.collect()
let result: Result<[Int], MyError> = try await producer.collect()
mluisbrown
mluisbrown

@NachoSoto I guess @danya61 is referring to this PR which I think is the last piece in back porting concurrency to older OSes. (looks like it will be iOS 13, macOS 10.15).

Activity icon
issue

NachoSoto issue comment ReactiveCocoa/ReactiveSwift

NachoSoto
NachoSoto

Support await / AsyncSequence

I haven’t tried the new betas yet, but I imagine the prevalence of @MainActor in iOS 15 will bring issues to current uses of ReactiveSwift. Specifically, I imagine you won’t be able to just do this:

producer
  .observe(on: UIScheduler())
  .start { [label] in label.text = $0  }

Feature request:

for await value in producer.start() {
  self.label.text = value
}

Unfortunately for try await would mean we lose error type information, so I would propose this API produces Result<Value, Error>, or a sequence of Value if Error is Never.

I’ll probably work on this throughout the week, but other thoughts are appreciated!

References:

Other ideas:

  • Being able to create SignalProducers using async:
SignalProducer<Int, MyError> { observer, disposable in
  observer.send(value: await f1())

  guard !disposable.isDisposed else { return }

  do {
    observer.send(value: try await f2())
  } catch {
    observer.send(error: error)
  }
}
  • Or simply just one async function:
let producer = SignalProducer<Int, Error>(asyncFunction: f)
  • New collect overloads:
let values: [Int] = await producer.collect()
let result: Result<[Int], MyError> = try await producer.collect()
started
started time in 3 weeks ago
Activity icon
issue

danya61 issue comment ReactiveCocoa/ReactiveSwift

danya61
danya61

Support await / AsyncSequence

I haven’t tried the new betas yet, but I imagine the prevalence of @MainActor in iOS 15 will bring issues to current uses of ReactiveSwift. Specifically, I imagine you won’t be able to just do this:

producer
  .observe(on: UIScheduler())
  .start { [label] in label.text = $0  }

Feature request:

for await value in producer.start() {
  self.label.text = value
}

Unfortunately for try await would mean we lose error type information, so I would propose this API produces Result<Value, Error>, or a sequence of Value if Error is Never.

I’ll probably work on this throughout the week, but other thoughts are appreciated!

References:

Other ideas:

  • Being able to create SignalProducers using async:
SignalProducer<Int, MyError> { observer, disposable in
  observer.send(value: await f1())

  guard !disposable.isDisposed else { return }

  do {
    observer.send(value: try await f2())
  } catch {
    observer.send(error: error)
  }
}
  • Or simply just one async function:
let producer = SignalProducer<Int, Error>(asyncFunction: f)
  • New collect overloads:
let values: [Int] = await producer.collect()
let result: Result<[Int], MyError> = try await producer.collect()
Sep
23
3 weeks ago
started
started time in 3 weeks ago
started
started time in 3 weeks ago
Sep
22
3 weeks ago
Activity icon
issue

NachoSoto issue comment ReactiveCocoa/ReactiveCocoa

NachoSoto
NachoSoto

Build error when using ReactiveCocoa via Swift Package Manager

If I add ReactiveCocoa as a dependency using Swift Package Manager, when I import ReactiveCocoa I get the error: Missing required module 'ReactiveCocoaObjC'

I tried adding ReactiveCocoaObjC as a product in Package.swift in a fork of the repo, and then adding ReactiveCocoaObjC as a dependency in Xcode, in addition to ReactiveCocoa, but that didn't seem to make any difference.

I suspect that this is either an Xcode or SPM bug, but I'd love to know if anyone has a workaround.

NachoSoto
NachoSoto

I'm encountering this right now too. For some reason not in the main app target, but on extension targets :/

started
started time in 3 weeks ago
Sep
21
3 weeks ago
Activity icon
fork

testwebhook1 forked ReactiveCocoa/ReactiveCocoa

⚡ Cocoa framework and Obj-C dynamism bindings for ReactiveSwift.
testwebhook1 Updated
fork time in 3 weeks ago
Sep
20
3 weeks ago
started
started time in 3 weeks ago
started
started time in 3 weeks ago
Sep
17
4 weeks ago