Skip to content
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

Contribution #10

Open
rullyalves opened this issue Oct 15, 2019 · 6 comments
Open

Contribution #10

rullyalves opened this issue Oct 15, 2019 · 6 comments
Labels
good first issue Good for newcomers help wanted Extra attention is needed question Further information is requested

Comments

@rullyalves
Copy link

Greetings, I've been looking at this reactive programming package and really liked the idea of bringing a similar implementation of RxJS / RxJava, I was wondering how I can contribute to this, documentation, adding new operators or something that can help grow this library.

@renggli
Copy link
Owner

renggli commented Oct 16, 2019

Sure, any of these contributions are welcome. Also better tests, and finding and fixing bugs.

The code is working, but not in many regards not very complete. I think there is also space for various extension packages, i.e. to support different schedulers based on platform (HTML, Flutter).

IMHO, the current API is awkward, but I have started to use Static Extension Methods which will hopefully solve that problem with the upcoming version of Dart (Branch: extension-methods).

@renggli renggli added the question Further information is requested label Sep 10, 2021
@renggli renggli added good first issue Good for newcomers help wanted Extra attention is needed labels Oct 20, 2021
@renggli
Copy link
Owner

renggli commented Oct 20, 2021

Update 2 years later: The API has stabilized and with static extension methods it has become significantly better. Feature and test coverage is great. What is still missing are extension packages for particular platforms like HTML and Flutter.

@tsouza-squid
Copy link
Contributor

tsouza-squid commented Jul 3, 2023

What is still missing are extension packages for particular platforms like HTML and Flutter.

We are currently porting a complex typescript client to dart. The rx library has served us quite well, but now we are running into race condition issues when running the integration tests in Flutter (regardless of the actual mobile platform).

Can you please elaborate what are these missing extension packages for Flutter? We may contribute with it.

@renggli
Copy link
Owner

renggli commented Jul 3, 2023

I suspect when using this library in Flutter you need custom schedulers to run code in the right zones (threads), similar to how RxJava does in Android, and RxJs does in HTML. I have never used this library in Flutter or HTML, so it might at least require some documentation of how to make it work.

Note that there is also rxdart which seems to be much more widely used in Flutter, however it builds on top of the Dart Streams so the semantics might be different.

@tsouza-squid
Copy link
Contributor

tsouza-squid commented Jul 3, 2023

Note that there is also rxdart which seems to be much more widely used in Flutter, however it builds on top of the Dart Streams so the semantics might be different.

Our initial attempt was using rxdart, but eventually we had to switch due to the fact you've mentioned.

I will do some investigation, but I would be surprised if CurrentZoneScheduler, which is built on Zones, would require any change. AFAIK Zones should behave equally regardless of platform.

@tsouza-squid
Copy link
Contributor

tsouza-squid commented Jul 3, 2023

Update: It turns out the race condition was a bug in our code and rx seems to run just fine in Flutter (android and ios)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants