Choice of FRP library
Whilst RxJS has significant overlap with Kefir and BaconJS it is not considered FRP, and is as such unfit for the purposes of this project. It does however have many abstractions and layers that would possibly simplify some of the logic in this application, and may warrant investigation in the future.
A library called flyd also looks very exciting, and I will most likely attempt an implementation in flyd after Kefir.
- Many streams with timers causes large performance issues, a single timer that is filtered/mapped is much faster.
- Streams all end up combined to be mapped to a view, the streams need to be properties at this point otherwise the stream with no value will block everything else.
- Making a stream to represent two things e.g. Left AND Right arrow presses is probably a bad idea and will cause awkward behaviour. Create two streams and merge them instead.
poolmust be created, consumed, and the stream added to the pool after the dependents have subscribed. Other implementations like Sodium abstract the pooling technique
- A current limitation (possibly just of Kefir) is that all streams must be
Properties(streams with an initial value, simply). This is because when many streams are merged the resulting stream will not have any values until all the streams it is comprised of have a value.