Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a MAUI target #747

Closed
Happypig375 opened this issue May 20, 2020 · 14 comments
Closed

Add a MAUI target #747

Happypig375 opened this issue May 20, 2020 · 14 comments
Labels
s/waiting for external This issue is currently blocked until an external factor is resolved t/enhancement New feature or request

Comments

@Happypig375
Copy link

It is the next evolution of Xamarin.Forms targetting all of .NET. https://github.com/dotnet/maui

We should investigate before the .NET 6 release on how to support it.

@TimLariviere
Copy link
Member

Yes, absolutely.

For the time being, I don't think we can do anything about it. MAUI is currently a clone of Xamarin.Forms, and I'm guessing a lot will change until the targeted release of November 2021.

Regarding the "single project - several platforms", I'm hoping the F# tooling in the various IDEs will follow the C# tooling because that will be the major blocking point for a Fabulous.MAUI.

Aside from that, Fabulous is mostly reading to accept a new framework like this one.

@TimLariviere
Copy link
Member

An interesting link showing what MAUI could be: dotnet/maui#28

@PureWeen
Copy link

Excited to see how this could influence Fabulous!!

Maybe Fabulous could shift away from having to just clone wrapping forms elements? Go a bit more in the direction of Comet and having it's own syntax.

@TimLariviere
Copy link
Member

@PureWeen It will be interesting to see what this restructuring will enable!
Adapting MVVM-focused controls to the MVU style is head-scratching at times...

Comet seems to share a lot of similarities with Fabulous, except that Fabulous don't provide its own abstraction over what a control is. Comet is a lot like Xamarin.Forms on this point.
Fabulous is more akin to a MVU-enabler for existing UI frameworks.

So, depending on the actual implementation of MAUI, I think Fabulous will still need to clone wrap the various controls so we can provide our own syntax and diffing logic, while not having to reimplement all the platform renderers.

@TimLariviere TimLariviere added s/waiting for external This issue is currently blocked until an external factor is resolved t/enhancement New feature or request labels May 29, 2020
@laibulle
Copy link

laibulle commented May 19, 2021

Interesting, it seems that peoples are pretty sure that fabulous will implement MAUI. dotnet/maui#115 (comment)

@JustinWick
Copy link

Have any decisions been made on whether or not we are getting MAUI support in Fabulous?

@TimLariviere
Copy link
Member

@JustinWick Fabulous will support MAUI. You can see the progress here https://github.com/TimLariviere/Fabulous-new
At the same time, we're completely re-architecturing the internals of Fabulous to enable a bunch of new features (better View API, better performance and many other).

Once we figure out everything, I hope to make a compatibility layer to more easily migrate from Fabulous v1 to v2.

Anyway we're still at a very early stage.
We should be close enough to a stable release when MAUI goes live in Q2 2022

If you want some insights on Fabulous v2:

@dsyme
Copy link
Collaborator

dsyme commented Oct 3, 2021

@TimLariviere That is fantastic news!

@JbmOnGitHub
Copy link

@TimLariviere .NET MAUI RC2 is released now ; How much work would it take to plug Faboulus on it ?
I admit I don't realize all that this implies !

@TimLariviere
Copy link
Member

@JbmOnGitHub Plugging a new framework to Fabulous is pretty straightforward. It's mainly about writing wrappers for the new framework to be usable in the view function. This is time consuming but fairly easy to do.

With MAUI though, there is a difficulty to solve first.
Unlike XF, MAUI gives us interfaces (IButton, ILabel, IStackLayout) so we need to figure out how to implement those to work with Fabulous internals (widgets & attributes).

Once it's done, we will be able to start adding wrappers to all controls and we will release preview versions of Fabulous.Maui.

@ChristophSchmidpeter
Copy link

ChristophSchmidpeter commented Jul 24, 2022

@TimLariviere The fabulousfx/FSharp.Mobile.Templates Readme lists MAUI already as a target. Does this indicate that one can build Fabulous apps with MAUI already, or has it only been added for future use?

When I try to compile the MAUI project I get:

Error	WMC9999	Specified argument was out of the range of valid values.
Parameter name: The language 'F#' is not supported	FabulousMaui

@TimLariviere
Copy link
Member

@ChristophSchmidpeter You can't use Fabulous with Maui yet.
Support for it is underway in #919, but to be honest there are many issues with Maui right now so it is making it difficult for us.

Regarding the error you're seeing, it has been reported here: fabulous-dev/FSharp.Mobile.Templates#21

@ChristophSchmidpeter
Copy link

@TimLariviere Thank you for the info and great to hear that support is already underway :)

@TimLariviere
Copy link
Member

Maui is now supported. Please see https://github.com/fabulous-dev/Fabulous.MauiControls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
s/waiting for external This issue is currently blocked until an external factor is resolved t/enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

8 participants