matrix

chromalchemy 2023-02-05T06:01:48.356869Z

Here are some notes on gskinner Flutter project state management. https://blog.gskinner.com/archives/2020/09/flutter-state-management-with-mvcs.html > As we built this out, we were impressed with how, in many ways, Flutter is the perfect fit for this type of architecture: > • Data Injection & View Binding: Provider is widely used, and gives an excellent method of dependency injection and view binding in one which are the backbones of any robust architecture. > • Strong coupling between declarative and imperative view code: The mix of declarative and imperative code all in the same file, along with the easy view binding API, eliminates much of the need for ViewControllers or Mediators for your views. > • Async support: Dart’s async language support is extremely robust. You don’t have to worry about anything getting GC’d before it’s done, and no messy event listeners or callbacks to deal with. Async Commands combined with Async Services are basically a dream to code. > What’s next? > We’ve thought about releasing a micro-framework, but really there’s nothing to release… The implementation is so simple, and Provider is really doing most of the work for us, we’re not even sure what a framework would look like. from Flutter desktop app architechure overview https://blog.gskinner.com/archives/2020/09/flokk-how-we-built-a-desktop-app-using-flutter.html#architecture

👀 1
🙏 1
kennytilton 2023-02-05T13:16:01.838629Z

I looked at the code for the gskinner Hello World https://github.com/gskinnerTeam/flutter-mvcs-hello-world and was struck by the boilerplate. Of course, thx to Facebook and Flux and then Redux, boilerplate seems normal and, worse, necessary. So folks just type it all in. 🙂 I think Matrix, Mobx (original), and lately SolidJS are challenging that conventional wisdom. Was your take different? The other thing that stands out is that they built their state system atop another state system, Provider, which seems limiting. Reminds me of trying to build a reactive CLJ framework atop the ratom. Ratoms do not work together, so we get glitches in Reagent, inter alia. Thx for the links, though!

chromalchemy 2023-02-05T18:58:46.393459Z

I defer you your take, and ability to see the trees from the forest w regards to state. 🫡 I recognize Gskinner, he has strong animation pedigree. He was prominent in Flash community in it’s heyday, and had I think the leading performant https://gskinner.com/libraries/gtween/ (which was later https://createjs.com/tweenjs in the early HTML5 days). Look like google sponsored him to do a bunch of Flutter demos, from which he released the Flutter Animate lib. In the article I grazed across some notes of re-implemented components for performance concerns. So he is not just beholden to vanilla flutter…

kennytilton 2023-02-05T20:07:33.164019Z

Ah, yes, @zenflowapp just alerted me to the flutter animate lib. I might be wrapping that after I get this web/mx announcement done. I love pretty pictures! Of course now I have web/mx wrapping SVG thx to a nudge from @dawdler... too many toys!

kennytilton 2023-02-05T21:01:45.713479Z

I just pushed a fresh Web/MX with improved examples, which took more time than I expected, I guess because I am getting a little fussier for the announcement. Ready now I think to write an announcement. Prolly not tomorrow, knowing me and my struggles with terseness. 🙂

👀 1