I just wanted to say thanks for the interesting library @lilactown. I like your thinking around efficiency/compatibility with React as well as favoring JS interop over library magic. I got bitten a few times in Reagent and I just want something simple and predictable now, so I'm taking a look at using helix.
Reagent is great, I was doing well with it when I was still in CLJS/re-frame land, but when I started to use react-navigation and had to rely on props, things got messy for me.
thank you for the kind words! 😄 yeah, I have been using reagent/re-frame professionally for a couple years now. I currently help maintain a ~50k LOC re-frame app at work. a lot of that experience went into helix
that being said, we're still learning and building so if you run into things that aren't working right / think could be better, please let me know!
Awesome, thank you! I'm definitely just learning for now but if I find something I will bring it up.
Oh to be clear, it was react native where I was having issues. Routing on mobile is not nearly as nice as on the web. 😞
yeah routing is something that my team and I really struggled with when I was doing a lot of react native stuff
we ended up doing a sort of hybrid where routing was native, and each screen was it's own fragment / viewcontroller that would mount a react native view inside of it
it was awful. would not recommend
Ooh ow. I went with react-navigation, which was fine once I learned how to translate it to CLJS. It forced to me to start using props to grab navigation state/methods though, and then I got tripped up by having to translate between JS and CLJS maps, knowing when I could destructure and when I couldn't, etc. Probably just the fact that I'm new to this, but the mental overhead of translating between CLJS and JS was too much on top of learning everything else.
Oh and adapt-react-class I think, knowing when I'm dealing with an actual react component vs my own.
yeah, it's hard when all of that work is happening behind the scenes and isn't clearly documented
helix tries to be very clear about when it's converting to/from CLJS and JS, and tries to do the minimal amount of that as possible
yeah that's what I like. Even if you have to do interop more than you would like, it's better to be clear what is going on imo.