Uno platform: Build single-codebase applications across all platforms
github.com
github.com
It even seems to generate proper HTML, instead of using a canvas like some other solutions, which sidesteps a plethora of issues.
That said, loading the gallery meant 24 MB of assets, 6 MB with compression still, which does feel kind of heavy. That said, I kind of understand why, seeing as dotnet.wasm was about 12 MB of that (a bit above 2 MB when compressed).
So in a sense, we're getting close to being the same size as React, Angular and Vue applications, though still an order of magnitude off, which may not be good enough for some.
That said, loading the front page of Reddit (new design) is also about 7 MB of content, so clearly people prioritize the content/looks over download sizes, though the overhead of WASM solutions still cannot be ignored.
On the desktop, however? It feels to me like more non-packaged-webapp options are nice, even like JavaFX/OpenJFX since the performance and resource usage of those can still be better than that of a packaged browser. One might also suggest to always try to use the native options, but I'll take what I can get.
I'm generally pro-C# and reducing developer effort however it rubs me the wrong way when simple UIs have lag.
About the payload size of the app, this is still very much a work in progress on all fronts, whether it being missing WebAssembly features, size optimizations on the dotnet front, or linking/trimming (IL and native) opportunities on Uno's generated code side.
On the performance side, threading is coming, AOT (IL to Wasm) is improving significantly in .NET 7 and more coming in .NET 8 to reduce the size of the payload by using newer WebAssembly features (albeit at the expense of older browsers).
As for the menus and toolbars, you can take a look at some our our live samples here: https://playground.platform.uno/#menubar
We know that Wasm-only apps will still be at a disadvantage for while when compared to JS frameworks simply because browsers are offering a lot out of the box (standard JS library, GC, Runtime, HTML layouting/rendering, more advanced JIT, etc...) but that gap may eventually narrow down as Wasm evolves, making the porting and development of webapp using many established language ecosystems an attractive choice.
I think the problem with XAML is, that it is not really declarative. Declarative would be: "I want a list/detail view, and the detail view has the following actions." and then you apply a theme for look&feel. Rather, you quite explicitly place rectangles, borders, and so on, in a scene. In UNO, a button doesn't translate to a HTML button, but to four nested <div>s and a <p>.
I'm just wondering... does anyone actually have success using any of these frameworks from a context other than Visual Studio on Microsoft Windows?
I'm on a Mac, install .NET through Homebrew, and use Rider when I dabble with C# stuff, and I've just never had a smooth experience getting ANY of these things to work. Even for "Hello World" test apps. MAUI, Avalonia, Uno, I'm probably forgetting another one. None of them actually work on my machine.
I always get the feeling that someone, somewhere, at one point got "Hello World" working on a Mac... wrote up a doc saying that it's supported... and then the doc immediately fell out of date. I feel like the only Mac user on earth touching any of these things every time I experiment with them.
https://platform.uno/docs/articles/get-started-rider.html?ta...
I was able to get through the .NET install, and "uno-check" process without much issue.
However, the screenshots on this page show a Solution file with a "MyApp.macOS" project inside. I generated the "MyApp" skeleton project using the verbatim bootstrap command "dotnet new unoapp -o MyApp"... but the generated solution does not include a "MyApp.macOS" project inside.
After a lot of experimenting, I discovered that the WASM-based implementation actually does run. Even though it requires me to enter my root password every time it starts the development HTTP server (WTF?).
I mean... a fresh install, following the published instructions step-by-step verbatim, should produce a "Hello World" skeleton project that matches the doc. Just saying.
Sorry if I wasn't clear -- as you mentioned, Microsoft and others are barely supporting non-Microsoft platforms.
> then the doc immediately fell out of date
Not sure how I can be responding more directly to what you wrote... there's a lot of motion right now! No one will keep up (polished DX) without significant funding. This means non-Microsoft platforms don't get the love they need (not priority #1 for Microsoft, and no one else is close).
https://docs.microsoft.com/aspnet/core/blazor/hybrid/tutoria...
With XAML I can make the page actually look how I want, master styles control templates and so one on, with Web I have given up on that, better leave the designers turn a div soup into a combo box with the right behaviours, assuming enough CSS magic is added to the potion. Then rince and repeat for every browser on the support matrix.
The native app version of the app generally fares better, even we still have some improvements to make here (the new Android 13 JNI improvements are likely to help us a lot).
Edit: I reloaded right after posting the above, and the gallery loaded immediately as a result. Something's wrong with the loader.
I doubt there's anything you can do. It will probably work fine for corporate intranet sites and back office apps with some aggressive caching.
If Java is more popular than C# (which pretty much every survey confirms), how come Codename One didn't pick up more traction. What did Codename One do wrong?
Notice that this isn't true for games which interact with the hardware directly in C. Only for high level UI stuff.
I understand that Hacker News is a place where "... written in Rust!" is often a sure technique for making a post reach the front page. But the reality is that implementation language has very loose coupling with real-life success.
As far as these cross-platform frameworks go, being written in a popular language guarantees nothing. I've pointed out before there's a bunch of random obscure frameworks out there that use Python that have fairly low traction. Which always made me wonder why they were being created in the first place.
https://news.ycombinator.com/item?id=25490496
There even was a PHP one.
https://this-is-r-gaurav.medium.com/build-mobile-apps-with-p...
I have a pretty non trivial commercial app in Xamarin Forms (currently just Android) and we really never found any showstoppers. (Talks to other devices via usb/ble, talks to the cloud and does realtime display state and live mapping etc.)
if you have been following bugs in xamarin you would have known. It's good that you haven't encounter any that's blocking, but for those who did it's very frustrating
it seems like it's catching up to MAUI as well, look at the number of issues that's growing for the past 4 months...
Or maybe I'm confusing with MAUI
> The Uno Platform is a UI Platform for building single-codebase applications for Windows, Web/WebAssembly, iOS, macOS, Android, and Linux.
Meaning Windows, Web/WebAssembly, iOS, macOS, Android, and Linux. So, no consoles.
But it looks good for many back-office applications.