membrane

https://github.com/phronmophobic/membrane
Lyderic Dutillieux 2021-03-04T13:01:31.082200Z

Hi, I've been looking at membrane this week, and I really like the approach, thanks for the good work and inspiration regarding Functional UIs ! I am about to make a multi-platform local-first app ( Local First explained here : https://www.inkandswitch.com/local-first.html) I want it to run on desktops, mobiles and tablets. As anyone already done a multi-platform project with membrane ? How would one architecture the code to target multiple patforms ? (Note : I may need an online demonstration within the browser, not a must but a nice thing to have)

Lyderic Dutillieux 2021-03-08T10:21:14.097400Z

Thanks a lot, that's a very realistic point of view. Regarding building quickly, it sure matters to me. Electron & html/css/cljs was my first choice, but what you are building is really appealing. I guess I will iterate, make a quick prototype with the least coupling possible, and migrate to membrane for a V2 for example, because I can feel the value proposal of membrane 😉 Thanks again

😁 1
Lyderic Dutillieux 2021-03-04T13:36:31.082700Z

I guess that the online demonstration is doable with webGL

phronmophobic 2021-03-04T19:54:59.083100Z

From your description, your use case is what membrane was designed for. However, membrane is still relatively new and might not be the best fit depending on your goals and what you're building. There's not currently any framework that bundles common approaches and best practices. Membrane might be a good fit for UIs that aren't well supported by existing UI libraries. Building cross-platform libraries with clojure(script) isn't that common, but I think the most popular option is html/css/clojurescript with electron for desktop and something like apache cordova for mobile. If time to market is important for you, then I think the html/css/clojurescript approach will get you up and running more quickly. If flexibility and customization are important for you, then membrane might be a good fit. For web, there are two backend options: webGL and vdom. Membrane is currently prioritizing desktop support since multiple great options that target the web already exist. For mobile, there's no currently supported backend in membrane. Mobile can still be targetd via the web backends + apache cordova. There are future plans to write backends for mobile using graalvm+skia, but there's no timeline for that yet. > How would one architecture the code to target multiple platforms? Most UI libraries impose significant constraints on how your application is structured. Membrane does not. Membrane can adapt to the architecture that makes sense for your use case.

👍 1