Kean Future Versions Save

Streamlined Future implementation

1.4.0

4 years ago
  • Add Linux support - #12, by Joseph Heck
  • Increaes mininum supported platform requirements to iOS 11.0 / watchOS 4.0 / macOS 10.13 / tvOS 11.0
  • Increase minimum supported Xcode version to Xcode 11

1.3.0

4 years ago
  • Remove FutureCompatible.swift from the framework

1.2.0

4 years ago
  • Fix Xcode warnings – 9
  • Add Installation Guide and API Reference
  • Remove CocoaPods support
  • Drop the X

1.1.1

4 years ago
  • Add a version number compatible with Swift Package Manager

1.1

4 years ago
  • Replace custom Future.Result type with Swift.Result

1.0

4 years ago
  • Add Swift 5.0 support
  • Add SwiftPM 5.0 support
  • Remove Swift 4.0 and Swift 4.1 support
  • Remove iOS 9, tvOS 9, watchOS 2.0, macOS 10.10 and macOS 10.11 support

0.17

5 years ago

Refined on method to attach callbacks. There are just two minor changes:

  • Completion closure signature is now () -> Void instead of (Result) -> Void. Completion is designed to be used in addition to success and failure to do things like hiding activity indicators. That's why the Result variant never really made sense. If you'd like to use Result instead, use future.materialize().on { result in }.
  • Add a func on(success: (Value) -> Void) method. Now future.on { } (with a trailing closure) is inferred by the compiler to add success closure. Previously, it used to attach completion closure. This change makes it a little bit nices to attach callbacks to futures that can't produce errors (Future<_, Never>).

There is also a change in the project structure. We now use a single multi-platform target instead of four separate targets - one for each platform.

0.16

5 years ago
  • Add Future initializer which takes a throwing closure: init(catching body: () throws -> Value). This feature was added in the first FutureX PR #1, thanks to @moto0000!
  • Add castError variant which takes an error type as an argument
  • Add Scheduler.default which can be used to change the default scheduler which is Scheduler.main

0.15

5 years ago
  • on no longer returns Future to enable some wiggle room in the future
  • CancellationToken.noOp renamed to CancellationToken.none.
  • Add FutureCompatible and FutureExtension

0.14

5 years ago
  • Method observe(on:) is more flexible, it can now be used to runs transformations like map, tryMap on a specified queue (and actually any other transformations too, it composes really well with any of them).
  • Instead of a convenience Future { succeed, fail in } we now have Future { promise in } which is consistent with the regular way you create Promise/Future pair and also more flexible and performant.
  • Inline the first callback in Promise. It's very often when there is only one callback for each Promise. These operations are now up to 15% faster.
  • Implement CustomDebugStringConvertible for Promise