-
Notifications
You must be signed in to change notification settings - Fork 163
Interstellar 2.0 #23
Comments
Hi |
Great, it sounds good, |
@JensRavens Do you have any ideas or specifics on how one could contribute to v2? I see there's a branch and I'm wondering what next steps the community could help you take – we're happy to help with such a useful library! |
Hey Ash, nice to see you here! I've been pretty much heads down in ruby over the last few weeks, but I'll have some more time for Swift now. Currently I hope to get some feedback over the design decisions of v2. Dropping Signal in favor of Observable is a needed, but rather drastically. Also I'm really unsure how to handle Observables on subscribe and if they should keep notifying the observer on subscribe. This is helpful in most circumstances but can possible introduce unintentional memory leaks. Making that optional could possible make the whole thing pretty bloated (and the main advantage of this library is it's small size and easy usage). Same for unsubscribing. So mostly I'm looking for a wishlist of features from the library's users how Interstellar should work in the next version. |
@JensRavens Would you consider adding UI Bindings in a separate, dependent project (InterstellarUI for example) so that those among us who'd like to subscribe to events from UITextFields, UIButtons etc. are able to do so? |
Yep. My first reflex was to add it as a cocoapods subspec. But as I'm planning to use Interstellar also on Server Side Linux apps, it might be best to move it out of the core (there's already a divide between Interstellar Core and the Warpdrive extensions). |
@JensRavens Cool, I'll take a look at the v2 branch and provide some feedback – does here work? For code-level feedback, a PR from that branch into master makes sense, but it might be early for that. Do you consider the v2 branch at all ready for testing in production? For UI bindings, I think moving to another repo makes sense. RxSwift has RxCocoa as a second podspec in the repo, and it works okay for them (but I think it's a little messy). Totally a personal preference though. |
@ashfurrow It's should be pretty stable, but expect some changes during the next weeks (making the subscribers subclasses of an abstract base class is not what I would like to do in the long term, but that shouldn't affect the public api). For the UI-bindings: I've already came up with a nice name: Holodeck (which completes Interstellar and Warpdrive). |
@JensRavens Holodeck is a cool name, I like it :) |
@JensRavens care to elaborate a bit more on:
Love the simplicity of Interstellar over RAC/RxSwift. |
@JensRavens Could you comment on following suggestions/questions ?
|
@anaglik Observables by now should support everything that was supported by signal - and more (merging is currently discussed in #39). The old version of |
Thanks for quick reply! |
I've had this situation too, where I want an array of indiscriminate observer tokens to unsubscribe from later. |
Here's a short update: v2 is now fully tested and documented and I think it's ready for production (I think @ashfurrow is already using it). If there are no objections I'll release it just in time on friday for my Interstellar workshop in Zürich. Here's a the list of awesome new stuff:
|
@JensRavens When do you plan to move v2 into master? |
This issue is collecting all feature requests that require a breaking change to the public API of this library. Please discuss features in the corresponding issues (linked in the description):
Signal<T>
andResult<T>
. This also adds support for non-failing signals and fixes the naming of some methods (flatMap
becomesthen
, soflatMap
is free to do a real flat-mapping). Should flatMap be map? #15Signal<Void>
. This might require to get rid of sending the initial signal value on subscribe. What's the right way to have a signal take no input #13The text was updated successfully, but these errors were encountered: