I agree with 1 & 2. Haven’t heard of RxRelay before and it definitely looks useful.

For 3, that can also work but from the way I designed LocationManager,connect() should be invoked by the caller before observing location updates. If we go with this design there should be a disconnect() call that calls removeLocationUpdates(). As I mentioned in the post, this decision was deliberate to simplify the function since I was demonstrating the use of Subjects.

Developer Relations Engineer at Google | Author of: http://bit.ly/2rb27p0 & http://bit.ly/2O7to5u

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store