Implementing an Elmish.MAUI library

Hello everyone,
I have been using the Elmish.WPF library for building a desktop application for my current startup. Now, it looks like we will need more mobile solutions including Windows tablets, as well as iOS and Android apps. The obvious choice would be .Net MAUI, but as far as I know, there is no F# + Elmish implementation for MAUI available. Since my development experience with Elmish.WPF has been so positive, I would like to find out what it would take to build my own Elmish.MAUI library? I consider myself a competent programmer, but I have never done any library or framework development before. Any thoughts or inspiration would be greatly appreciated. I plan to share the library with the community.

Kind regards

Welcome Eurochxir!

Did you check out Fabulous.MauiControls? I’ve never built a UI app with F#, but I’m under the impression that Fabulous is the main idiomatic F# library for (non-web) UI, and that it supports MVU (what Elm does), and that it now supports MAUI.

1 Like

Checkout Avalonia.FuncUI, it is great. It provides a light MVU wrapper for Avalonia. Avalonia is cross platform, though the WASM target is a bit lacking currently.

https://avaloniaui.net/
https://github.com/fsprojects/Avalonia.FuncUI

There is also Platform Uno in the same space, but I have alway found Avalonias approach better.

https://platform.uno/

2 Likes

Thank you for your comment :).

Yes I have. I did little work with Fabulous but I have gotten my feet wet enough to say that I am surely going to use it in my next cross platform mobile solution.

Thank you for your comment :).

Avalonia is certainly on my watch and as of now has Fabulous.Avalonia in active development! It is my first choice for cross platform desktop development. Jetbrains Rider IDE for example, which I personally use as well was written using the Avalonia framework.