-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Released Episode 3, discussion: RxJava with its core developer David Karnok #25
Comments
Thanks for the episode, nice improvement from the previous and thanks to David for all the interesting info. Now I'm even more puzzled about RxJava 2. From the discussion I understand it's a big change for developers of the RxJava 2 library, but for actual users of the library I don't understand if there will be any advantage, besides the performance gains of using a better architecture below. Is there any other noteworthy difference? |
Let's ask David! cc @akarnokd // As I understand, for users there will be more types in the API: Thanks for the feedback! |
Back in last September, RxJava 2.x had more overloads of common operators with error-delay and buffer-sizing options. Now RxJava 1.x API is catching up. The primary benefit is the native Reactive-Streams compliance that let's you talk to Akka-Streams and Reactor-Core directly (among other libraries). The second advantage is that you can build non-backpressured sequences via |
Thank you for creating the podcast. One comment that I have is that in the beginning I got a bit distracted with the particular accent of yours, but this lasted just a moment as I got to enjoy the content a lot. Plus I myself have "an accent". Please continue addressing hard topics in-depth since we seem to lack them in Android scene. P. S. Is there any place that the community could suggest topics? |
Hi, @jaggernod
Huge
Yeah, hope I'll eliminate my accent one day. Anyway, I'll try to speak less in the episodes, so this should help too haha.
Will try, btw podcast will be changed in near future, hope you'll like the change, unfortunately I'm very busy at the moment and will be in such state for some time, but I hope we'll deliver new episode in next few weeks. Regarding suggestions for new episodes I've created an issue for that #34, please feel free to add something there. Thank you for listening and feedback! |
What are the particular, non intro, topics you want to read/hear about? |
Hi David, As for what other RX related I'd like to hear is:
Thanks a lot. |
Not much. You'll get more meaningful stacktrace entries because massively reduced amount of anonymous inner classes. I'm debugging RxJava all the time and usually, the top of the stacktrace points to where problems come from: the user provided code. Smaller cases are when the developer's expectations wasn't met such as backpressure exceptions and single() exceptions. The debugging problem I encountered was with RxNetty where the code contains hundreds of similarly looking sequences with exit points. Setting a breakpoint in some class and seeing the stacktrace didn't help much identifying where the particular sequence was assembled in the library. So it was not about where the value came from but which sequence am I currently in. In theory, the RxJava hooks allows one to wrap Observables and Subscribers and you can add wrappers that capture the current stacktrace when the operators were assembled. You can then look at the variables in the debug window and locate code more easily.
I personally haven't encountered any use for window(). You can have a look at Intro to Rx for some examples. The use I can imagine is to go parallel with fixed-length windows: range(1, 1000).window(16).flatMap(w -> w.observeOn(Schedulers.computation().map(...))) There are also the boundary-controlled version of window where you can take other observables and then open and close windows: PublishSubject<Integer> record = PublishSubject.create();
PublishSubject<Integer> stop = PublishSubject.create();
events.window(record, v -> stop).flatMap(w -> ...).subscribe(...) Then you wire up |
Main problem is when source emits on the different thread that subscribe chain was established on, then you have no reference to the user code in the stacktrace. But we're currently successfully solving it with similar solution ReactiveX/RxJava#3521 |
Thank you guys for the answer to the questions so quickly! And the |
Got it, ok, will try. Currently working on a project where whole On Fri, 15 Apr 2016, 13:02 Paweł Polański, [email protected] wrote:
|
👍 |
@artem-zinnatullin are you working on MVI like Cycle.js. I'm trying to do the same thing. My idea comes from this blog of @sockeqwe: http://hannesdorfmann.com/android/model-view-intent |
Not exactly, we have MVVM (without data binding) On Fri, 15 Apr 2016, 15:30 Thanh Le, [email protected] wrote:
|
Interesting, I don't like data binding too. My work is on progress but I still have some difficulties when trying to make it fully functional. |
These were two very interesting and nice episodes, thanks to you and David! |
I'd like to know - if I'm a beginner coming to RxJava for Android development, how should I decide which version to learn - 1 or 2? They are similar, but I'd rather focus on the one that will be most useful in the near future. Thank you for this episode! |
@IgorGanapolsky definitely pick v2! |
Episode was divided into two parts, second part will be released in a few days after first.
Discussion before episode.
Show notes for Part 1.
The text was updated successfully, but these errors were encountered: