Closed Kypsis closed 2 weeks ago
Partially done. We are for now present on pub.dev as unlisted package.
Any updates on this?
Hopefully late Q1 or early Q2 2024.
Folks are starting to talk about moon_flutter on twitter. Hoping to see this on pub soon.
There are multiple reasons why it has not yet left unlisted status on pub. The obvious one is that some core components like Card, Slider, Stepper etc are still missing. There's also some juggling with internal priorities and acceptance criteria. But the bigger issue as we are getting close to 1.0.0 release and looking back at the whole journey holistically is that we are not 100% happy with the end result quite yet.
What we have currently is not majorly improving on what Flutters Material is doing. Yes we are exposing more parameters like animation duration and curves, yes the theming isn't a nuclear option of wrapping the app with some sort of MoonApp
, yes composing ThemeExtensions
is flexible and overridable (if clunky with the nested copyWith
calls) and yes we have incorporated, expanded, fixed and been inspired by a lot of community solutions. But we are still currently swapping one restrictive way of doing things (Material) with another maybe less restrictive way.
The way you build, theme and compose widgets in Flutter is imho fundamentally flawed and just does not play well with things like consuming composite design tokens (this is almost a non-issue with web technologies and React Native StyleSheet approach). I have expounded more on this topic in this now closed Flutter PR comments: https://github.com/flutter/flutter/pull/142151#issuecomment-2010282434 (probably need to expand to see all the conversation). We have also strayed pretty far from the ideal of creating a headless UI approach in Flutter we initially set out to do.
For the past month or two we have been rolling ideas how to keep the opinionated Moon specifics (like theming) separated from the core of the component library. So that we can get back to have the core be as headless as possible, fulfill internal criteria and yet still allow the possibility for the community to build their own theming solution around it if so desired. Regardless which approach we decide upon, 1.0.0 will be breaking change in one way or the other. Though hopefully not too breaking and with proper deprecation approach.
Saw this on twitter and I'm super excited for this 🔥
We have released v1.0.0 but the package will remain unlisted until v2 as currently v1 has way too many solutions centered around our corporate internal customer needs. V2 should be something that is more flexible, composable and themable.
Publish moon_flutter to pub.dev and attain as high pub score as possible (documentation, best practices, test coverage etc).