RxTimelane

RxTimelane provides RxSwift bindings for profiling RxSwift code with the Timelane Instrument.

Contents:
Usage
Note: To observe the output of using TimelaneCombine you need to install the Timelane Instrument in advance. More information at: http://timelane.tools.
Import the RxTimelane framework in your code:
import RxTimelane
Use the lane(_)
operator to profile a subscription via the TimelaneInstrument. Insert lane(_)
at the precise spot in your code you’d like to profile like so:
downloadImage(at: url).
.lane("Download: \(url.path)")
.assign(to: \.image, on: myImageView)
Then profile your project by clicking Product > Profile in Xcode’s main menu.
Select the Timelane Instrument template:

Inspect your subscriptions on the timeline:

For a more detailed walkthrough go to http://timelane.tools.
API Reference
lane(_:filter:)
Use lane("Lane name")
to send data to both the subscriptions and events lanes in the Timelane Instrument.
lane("Lane name", filter: [.subscriptions])
sends begin/completion events to the Subscriptions lane. Use this syntax if you only want to observe concurrent subscriptions.
lane("Lane name", filter: [.events])
sends events and values to the Events lane. Use this filter if you are only interested in values a subscription would emit (e.g. for example subjects).
Additionally you can transform the values logged in Timelane by using the optional transformValue
trailing closure:
lane("Lane name", transformValue: { value in
return "Value: \(value)"
})
Installation
Swift Package Manager
I . Automatically in Xcode:
- Click File > Swift Packages > Add Package Dependency…
- Use the package URL
https://github.com/icanzilb/RxTimelane
to add TimelaneCombine to your project.
II . Manually in your Package.swift file add:
.package(url: "https://github.com/icanzilb/RxTimelane", from: "2.0.0")
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate RxTimelane into your Xcode project using CocoaPods, add it to your Podfile
:
pod 'RxTimelane', '~> 2.0'
Carthage
Not supported. More info
Demo
This repo contains a simple demo app. To give it a try open RxTimelaneExample/RxTimelane.xcodeproj and run the “RxTimelaneExample” scheme.

License
Copyright (c) Marin Todorov 2020
This package is provided under the MIT License.
RxTimelane
RxTimelane provides RxSwift bindings for profiling RxSwift code with the Timelane Instrument.
Contents:
Usage
Import the RxTimelane framework in your code:
Use the
lane(_)
operator to profile a subscription via the TimelaneInstrument. Insertlane(_)
at the precise spot in your code you’d like to profile like so:Then profile your project by clicking Product > Profile in Xcode’s main menu.
Select the Timelane Instrument template:
Inspect your subscriptions on the timeline:
For a more detailed walkthrough go to http://timelane.tools.
API Reference
lane(_:filter:)
Use
lane("Lane name")
to send data to both the subscriptions and events lanes in the Timelane Instrument.lane("Lane name", filter: [.subscriptions])
sends begin/completion events to the Subscriptions lane. Use this syntax if you only want to observe concurrent subscriptions.lane("Lane name", filter: [.events])
sends events and values to the Events lane. Use this filter if you are only interested in values a subscription would emit (e.g. for example subjects).Additionally you can transform the values logged in Timelane by using the optional
transformValue
trailing closure:Installation
Swift Package Manager
I . Automatically in Xcode:
https://github.com/icanzilb/RxTimelane
to add TimelaneCombine to your project.II . Manually in your Package.swift file add:
CocoaPods
CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate RxTimelane into your Xcode project using CocoaPods, add it to your
Podfile
:Carthage
Not supported. More info
Demo
This repo contains a simple demo app. To give it a try open RxTimelaneExample/RxTimelane.xcodeproj and run the “RxTimelaneExample” scheme.
License
Copyright (c) Marin Todorov 2020 This package is provided under the MIT License.