OpenCombine v0.12.0 Release Notes

Release Date: 2021-01-29 // 9 months ago
  • ๐Ÿš€ This release adds a new OpenCombineShim product that will conditionally re-export either Combine on Apple platforms, or OpenCombine on other platforms. Additionally, ObservableObject protocol is now available and working on all platforms.

    A bug with Timer(timeInterval:repeats:block:) firing immediately not accounting for the passed ๐Ÿ›  timeInterval is fixed.

    ๐Ÿ”€ Merged pull requests:

    • ๐Ÿ›  Fix Timer(timeInterval:repeats:block:) not accounting timeInterval (#196) via @grigorye
    • โž• Add OpenCombineShim product for easier importing (#197) via @MaxDesiatov
    • Implementation for ObservableObject with Mirror (#201) via @kateinoigakukun

Previous changes from v0.11.0

  • ๐Ÿš€ This release is compatible with Xcode 12.1.

    โž• Additions

    • Publisher.assigned(to:) method that accepts a Published.Publisher.
    • ๐Ÿ†• New Publisher.switchToLatest() overloads.
    • ๐Ÿ†• New Publisher.flatMap(maxPublishers:_:) overloads.
    • Optional.publisher property.
    • ๐Ÿ†• New _Introspection protocol that allows to track and explore the subscription graph and data flow.

    ๐Ÿ›  Bugfixes

    • โš  The project should now compile without warnings.
    • โšก๏ธ The following entities have been updated to match the behavior of the newest Combine version:
      • Subscribers.Assign
      • Publishers.Breakpoint
      • Publishers.Buffer
      • CombineIdentifier
      • Publishers.CompactMap
      • Publishers.Concatenate
      • Publishers.Debounce
      • Publishers.Delay
      • DispatchQueue.SchedulerTimeType.Stride
      • Publishers.Drop
      • Publishers.Encode
      • Publishers.Decode
      • Publishers.Filter
      • Publishers.HandleEvents
      • Publishers.IgnoreOutput
      • Publishers.MeasureInterval
      • OperationQueue scheduler
      • Published
      • Publishers.ReceiveOn
      • Publishers.ReplaceError
      • RunLoop scheduler
      • Publishers.Sequence
      • Subscribers.Sink
      • Publishers.SubscribeOn
      • Publishers.Timeout
      • Timer publisher

    Known issues

    • 0๏ธโƒฃ The default implementation of the objectWillChange requirement of the ObservableObject protocol is not available in Swift 5.1 and later.