About two years ago, just after migrating my CatchUp side project to RxJava 2, I started a branch called “boundObservers” to try out an idea I had for RxLifecycle-style automatic disposal of streams.
I rewrote it from scratch a few times after, and a couple months later we had pulled it in to Uber for our internal RxJava 2 migration. After some more internal iterations, we open sourced it as AutoDispose in the spring of 2017 and the rest is history!
Today, I’m excited to announce AutoDispose 1.0
This is actually two releases (to ease migration for Android users)
- The project now targets Java 8 bytecode, with the expectation that projects are either on Java 8 or (if on Android) use D8 via Android Gradle Plugin 3.2.0.
- Support library 28.0.0/Arch Components Runtime 1.1.1
- Kotlin 1.2.71
- RxJava 2.2.2
- RxAndroid 2.1.0
- More sample recipes for AndroidX ViewModels and Fragments
- Same as RC3 + fully migrated to AndroidX.
- 169 PRs (153 merged)
- 91 issues
- 14 releases
- 20 contributors (9 Uber, 11 external)
- 90% Java, 10% Kotlin
- 1500+ stars
- ~30k LoC
- ~47kB (core autodispose artifact jar)
- 297 methods (core autodispose artifact with D8)
No major plans currently! It spent so long in development that I feel really good about the API surface area as it stands today. I do want to release a lint artifact at some point, so that’s maybe something for 1.1.0 :).
AutoDispose isn’t the first open source project I’ve done, but it’s one of the most special to me. It’s a culmination of everything that makes the open source (as well as Android!) community great, with strong influences from previous collaborations in RxLifecycle, new collaborations with RxJava and the Android framework team, and all the community contributions that have come along the way.
This was originally posted on my Medium account, but I've migrated to this personal blog.