microsoft / microsoft-ui-xaml

Windows UI Library: the latest Windows 10 native controls and Fluent styles for your applications
MIT License
6.28k stars 675 forks source link

Discussion: Have you seen real projects using WinUI? #6791

Closed omikhailov closed 11 months ago

omikhailov commented 2 years ago

I heard that Windows 11 preinstalled apps are made with WinUI 2, and they are being developed by a team from the Chinese office, but it would be interesting to know how and where folk use WinUI elsewhere. Do you know about commercial projects built with WinUI? What kind of apps were they? Was it a good experience?

P.S. Sorry for the flooding, I'm just curious.

shelllet commented 2 years ago

I have developed a simple rpa tool by c++/winui3, but I would like to say that the current progress and featurs of winui3 cannot develop commercial applications, image

llothar commented 2 years ago

I'm listening to a lot of solo developers in the independent app scene (former known as shareware). And i can answer with a clear no. At the moment nobody i know is even planning to go this way.

dongle-the-gadget commented 2 years ago

Well there are many production apps currently using WinUI 2, not sure about WinUI 3 though.

levinli303 commented 2 years ago

I have a simple unarchiver app written in WinUI3, also available on Microsoft Store. It's cross platform, sharing some objective-c(++) code under the hood with iOS/macOS. The UI part is entirely WinUI3. It is lacking some features for sure (drag and drop virtual file without needing a dll extension), but mostly it is ok as an unarchiver.

https://www.microsoft.com/en-us/p/easy-unarchiver/9nkl1jq5c62v

MEK3DK commented 2 years ago

As others here say WinUI 3 is not ready for commercial applications.

We did an investigation into WinUI 3, whether we could start changing some apps to use WinUI 3 instead of WPF, but there are a lot of features missing and the amount of bugs makes it unrealistic.

WinUI 3 is only for hobby apps atm, my best estimate is 2 years untill it might be ready, depending on what resources Microsoft apply.

fredemmott commented 2 years ago

Hobbyist with a cross-platform (mostly non-UI - UI mostly Qt, little bit of wxWidgets) background; I just ported my app from wxWidgets to WinUI3 with C++/WinRT.

There's a lot of rough edges in winui, winui's documentation, and MSIX, especially when not distributing in the MS store. MSIX is not part of WinUI, but there's such a bias towards 'packaged' apps in WinUI and the App SDK that it feels fair to bundle.

Overall, Qt is leagues ahead on documentation and raw power/usability, but I'm avoiding it given I'm not confident in their current stance on open source. Compared to wx, winui makes the easy stuff hard and the hard stuff easy. It's much easier for me to make something work with wx, but once I have something working, much easier to make it look good and feel usable with winui (except for title bars).

Concretely:

Ecosystem things:

I'm mentioning these as if I stuck with wxWidgets, 'statically link everything' is a very practical approach, avoiding all of these issues. While WinUI3 isn't the source of these problems, using WinUI3 means that they do become problems I need to address, and need to be weighed as part of 'is winui3 worth it for my app?'.

Despite all of that: I'm happy overall with the results, and would probably do it again for a hobby app, but I definitely wouldn't consider it for a larger project - or any project with multiple developers - at the moment. If I were working on a commercial C++ project with a windows GUI, I'd use Qt.

image

StephenLPeters commented 2 years ago

@ryandemopoulos FYI

wherewhere commented 2 years ago

Mine! Mine! Mine! APK Installer mmexport1637245499866.png However, I use it only because it can use process. In fact, I don't like Windows App SDK at all. It write like UWP, looks like UWP. But it doesn't feel like UWP. What we need is a UWP which has the same permission and functions as WPF. Not a WPF which only looks like UWP. I want UWP back šŸ˜­.

ryandemopoulos commented 2 years ago

This is good timing, so thanks for starting the discussion @omikhailov -- our community call next week will talk to this a bit. We have a couple partnerships with substantial apps (Fortune 500 companies that aren't Microsoft) happening right now, but I can't share specifics due to agreements with those companies. One or perhaps both of those apps will ship this year and we'll be able to talk about them once they are public.

As mentioned, most of the inbox apps in Windows use WinUI 2 today -- one of them is very close to being converted to WinUI 3 already, and others will move to WinUI 3 over time. Tune in to the Wednesday call next week as we'll be releasing a new roadmap for the WinAppSDK and talking more about how we're prioritizing getting WinAppSDK and WinUI 3 into more industry-leading apps this year.

wbokkers commented 2 years ago

Xelion is using WinUI 3 for their Windows app. It's a big app. You need a Xelion account to run it, so there's nothing I can show you. https://appinstaller.xelion.com/winapp/v8/

float34 commented 2 years ago

@ryandemopoulos

one of them is very close to being converted to WinUI 3 already, and others will move to WinUI 3 over time

Do you mean that internal Windows apps that are currently "Win32/UWP + WinUI 2" (e.g. Settings, Store, Paint, the shell) will be converted to "Win32/WPF/etc. + WinUI 3" over time? Thanks.

JanRajnoha commented 2 years ago

I'm currently creating cash system in WinUI 3 and sometimes it is really hard to solve problems :/ on the other hand, every time i found solution

charlesroddie commented 1 year ago

key logistical features are currently only available on windows 11 insider builds, and it's unclear if they will ever be available on windows 10, e.g.: support for automatic updates: https://docs.microsoft.com/en-us/windows/msix/app-installer/auto-update-and-repair--overview

Support for automatic updates has always been the key advantage of MSIX. I think this may be a misunderstanding of the confusingly worded documentation, and that the doc banner ("The following article discusses settings currently available in Windows Insider build 22415 and newer") really means that "this page applies to Windows Insider build 22415: some of these features work on Win10 but we are not telling you which ones!".

fredemmott commented 1 year ago

@charlesroddie thanks :D the documentation on schema versions is missing entries, and there's basically no docs on which features work on which windows versions...

I need to do some more testing, though provisionally, https://github.com/OpenKneeboard/OpenKneeboard/blob/29214c012ac95024419c858daeb38b3e43956222/autoupdate/preview.appinstaller is fine back to 19044.1288 (I don't have access to earlier version). Some notes:

octaviordz commented 1 year ago

Since documentation is mentioned in this thread, has that improved? I'm trying to find WinUI3 documentation without much success. I see the documentation on the API but, is there any high level documentation for example on how the layout system work, what is the designed way to compose the controls?

Thanks.

fredemmott commented 1 year ago

Iā€™m still using winui 3 for my hobby project, but this is only because as a hobby project I donā€™t currently have the time to rewrite the UI layer.

there are many bugs - even crashes - for over a year; it seems that they are only worked on if they affect a company that is partnering with Microsoft.

Open source seems to not just be delayed but no longer even talked about, so I have no expectation that I will be able to contribute fixes.

To me itā€™s no longer an issue of ā€œwinui 3 has a few rough edges, mostly docsā€: if you use winui 3, thereā€™s a fair chance youā€™ll eventually hit a case where your app crashes, and thereā€™s nothing you can do about it; my app currently has 2 different known crashes due to known winui 3 bugs without workarounds. Winui 3 is not suitable for real world apps unless you have a contractual relationship with Microsoft to support your use.

wbokkers commented 1 year ago

In App Center I can see that only 0.1 to 0.15% of the users or our Xelion app see crashes. We have 30k active users. Currently, we don't get many support tickets about crashes.

So, WinUI 3 can be successfully used in a real world app. But there is still room for improvement.

fredemmott commented 1 year ago

So, WinUI 3 can be successfully used in a real world app

Yeah, it depends on what features you use, and what your app does; but there isn't a way to find out if your app design is possible to do in winui 3 without crashing except by trying it and seeing if you're lucky. That - combined with known crashes in winui3 not being fixed - makes it a strong "do not recommend", even if there are some apps that don't need the features that crash.

wbokkers commented 1 year ago

I can almost safely assume that our app is among the most complex WinUI 3 apps available. We use almost every corner of the WinUI3 library. It's not a simple forms over data app.

tajbender commented 1 year ago

Iā€™m still using winui 3 for my hobby project, but this is only because as a hobby project I donā€™t currently have the time to rewrite the UI layer.

Well, coming from WinForms I never used XAML before, so it was a hard time for me..

However, with some patience I've learned some patterns and I love the layout system, as I love Hot Deploy and Hot Reload. So sure, it's a lot of try & error.

But there are Open Books, published by Microsoft, and - no joke - https://www.bing.com/search?q=chatgpt can help, too! šŸš€

fredemmott commented 1 year ago

I can almost safely assume that our app is among the most complex WinUI 3 apps available. We use almost every corner of the WinUI3 library. It's not a simple forms over data app.

The facts are that there are known crashes in WinUI3, in the issue tracker here, acknowledged by Microsoft, and not showing signs of being worked on. I'm glad your app doesn't happen to trigger them.

My meaning is not "only simple apps can be done in WinUI3" - it's "doing a complex app in WinUI3 is a risk - you might get lucky, or you might be in an unfixable hole".

wbokkers commented 1 year ago

I agree there's lot of rough edges and much room for improvement. But I am not just feeling lucky I didn't run into an issue. I ran into many issues... and fixed them one way or another. This is far from ideal. WinUI 3 should be stable in all circumstances and it isn't.

llothar commented 1 year ago

Well the sad fact is that the good old rule that a new software technology still needs 5 years to be useable and 10 years to mature are real. WinUI3 is in year 1.5 now. So we need patient to see it become bug free.

By the way, Swift-UI is almost as unuseable (more stable, but it still lacks so many features) as WinUI3 and both companies have almost unlimited money they could throw at the projects. But they know it wont help to speed things up. At least Swift-UI and UIKit is not fully interoperable in both ways. We still cannot host a good old win32 control inside a XAML.

tajbender commented 1 year ago

time passes, updates pass

legistek commented 1 year ago

First off, WinUI is based off of tech that was first released in 2012 - WinRT - so the "it takes time" excuse doesn't work. They had to reboot it twice because it was a commercial and technological failure. WinUI3 is in fact the third flavor of WinRT but so far appears to be faring no better than its predecessors. Someone at the company seems determined to keep the tech alive at all costs when all evidence is that it should've been scrapped 10 years ago.

Plus they appear to be very slow to respond to bugs, for example this one. In no other Microsoft repo that I've ever submitted a bug to have I gone a week without any contact from an official project member.

The most frustrating part is that they HAD an amazing, mature, versatile framework for commercial applications - WPF - but rather than modernize it they put it out to pasture in favor of something newer and shinier. Had half the resources spent on WinRT and its progeny been poured into modernizing WPF we'd be in an amazing place right now.

At the end of the day, one cannot escape the conclusion that third party application development for Windows is not even close to a top strategic priority. At this point they're just going through the motions, and barely doing so at that. Windows
ceded the consumer market a long time ago other than for games, and the business market will put up with LOB apps built on obsolete frameworks until the last stragglers move to the web. The big players - Office, Adobe, etc.. - who have a strong strategic interest in modern desktop apps can afford to make their own proprietary frameworks and probably would do so no matter what.

WinUI3 is strike 3. It's time to look elsewhere for solutions.