RxSwift v3.1.0 Release Notes

    • โž• Adds changed property to ControlProperty that returns ControlEvent of user generated changes.
      • textField.text.changed.map { "User changed text to \($0)" }
    • โž• Adds optional overloads for from operator. let num: Int? = 3; let sequence = Observable.from(num)
    • ๐Ÿ‘Œ Improves UIBindingObserver by tolerating binding from non main dispatch queue. In case binding is attempted from non main dispatch queue it will be automagically dispathed async to main queue.
    • ๐Ÿ‘‰ Makes control property naming consistent for UIDatePicker, UISearchBar, UISegmentedControl, UISwitch, UITextField, UITextView (value property + value alias name).
    • โž• Adds missing extension to UIScrollView.
      • didScroll
      • didZoom
      • didEndDecelerating
      • didEndDragging
      • didScrollToTop
    • ๐Ÿ“‡ Renames refreshing to isRefreshing.
    • โž• adds UIWebView extensions:
      • didStartLoad
      • didFinishLoad
      • didFailLoad
    • โž• Adds UITabBarController extensions
      • willBeginCustomizing
      • willEndCustomizing
      • didEndCustomizing
      • didSelect
    • โž• Adds UIBarButtonItem extensions
      • title
    • ๐ŸŽ Performance optimizations
    • ๐Ÿ‘Œ Improves data source behavior by clearing data source proxy when forwarding delegate is nil.

    Anomalies

    • ๐Ÿ›  Fixes anomaly caused by UITableView invalid state caching of previous data source even after the change. Binding of reactive data source now triggers layoutIfNeeded that invalidates that internal cached state.
    • ๐Ÿ›  Fixes issue with race in AnyRecursiveScheduler. #995