Just noting some differences between cljc matrix and flutter-mx as I go along:
md/make in cljc
md/make in f/mx
Seems to be no :obs . in f/mx.
Is :watch the same thing? Seems to be, but I don't know if there are differences.
edit:
this: https://github.com/kennytilton/flutter-mx-sandbox/blob/f4deab3309332d673cea8db3f911eafbb2d3b124/src/tiltontec/example/x020_reactive_stream.cljd#L46
seems to imply they are not the same.
Re :obs vs :watch, I am as we speak conforming both code bases to support either. Backstory: :obs (short for observer) has long been my preferred label, but it is controversial because most reactive libraries use "observer" for "dependent". But now I have decided not to swim upstream and switch to :watch, hoping that is easier to sell as code which can see dataflow but act only outside dataflow.
Mind you we have with-cc (short for with-integrity [:change..] which is a mechanism by which an observer/watch can enqueue dataflow changes for execution in the next dataflow sweep.
btw, Yes, overall you may find isolated differences between CLJC and CLJD Matrix. I especially need to implement synapses (anonymous Cells), and have not really tested laziness.
My goal in the spring was to move fast and see if Flutter+CLJD+Matrix would even fly. Seems to be OK. 🙂
Now I am focused on supporting f/mx users and documentation. So let me know if anything like streams gets in your way and I will jump right on it.
As for
(md/make a-matrix
:prop (cI :hello))
...where did you see that? Looks like a typo or sth.
Speaking of make, I got a little funky with the syntax: we can optionally provide a type (namespaced keyword) followed by an even number of alternating initarg keywords and values. If we omit the type, we get :tiltontec.cell.base/Model.Ah, it was a typo --- mine! 🤦🏻
🤣
Another backstory is that CLJD is not so friendly with type-based dispatch, so not sure how much we will do with that Matrix type (which gets stored as :mx-type in meta of the model atom).