5 ms·
In hindsight, I should have adopted used this in the past for the apps of my startup, instead of going for the Xamarin.Forms route. Why do I say this? Because
by siwatanejo 3y ago
In hindsight, I should have adopted used this in the past for the apps of my startup, instead of going for the Xamarin.Forms route.
Why do I say this? Because the migration from Xamarin.Forms to MAUI was (actually, _is_, as it's not really 100% finished yet) a horrible PITA.
Let alone the migration from .NETFramework to .NETCore (now called "dotnet" since v5) which delayed us months if not years (but people that used Avalonia would be affected by this too; so the way to dodge all this would have been choosing Flutter or ReactNative, I guess).
That being said, the main reason why I chose Xamarin.Forms over Avalonia at the time is because the latter didn't have Mobile support. How's Avalonia's mobile support now? Even if the port is 100% complete, I always thought "well, XF/Maui are centered around mobile, making desktop just be an after-thought", which to me is an advantage because I prefer better UX for mobile by default, and require devs to spend extra effort for desktop support (instead of the other way around); given that desktop usage of apps is declining day by day.
- jeroenhd 3y agoI've only ever seen mobile mentioned as "coming soon", but honestly, I don't think porting over the GUI library will make turning an application into a mobile one any easier. A mouse+keyboard design just doesn't fit a mobile screen well, you're going to need to redesign and reimplement large parts of your application regardless of what platform you pick. You'll probably get tablets working easily, but for mobile phones you'll need to put in the annoying grunt work. I do like Avalonia for actually bringing a cross-platform .NET GUI to Linux and for that purpose it works quite well. I'm sure the toolkit will end up working fine for mobile just fine, as long as you design your application for the different form factors you may end up running on. Porting Xamarin Forms to Avalonia is going to be a hell of a lot easier than porting it to Flutter or React Native, but you'll still end up putting significant effort into the process if you want it to succeed. Avalonia's big money-maker is their drop-in replacement platform for WPF, which allows you to basically take an old WPF application and turn it into a Windows/macOS/Linux/web application with two lines of code, if you're willing to pay the price. Perhaps they'll add some kind of auto-mobile-form-factor conversion to that system as well?
- siwatanejo 3y ago> Avalonia's big money-maker is their drop-in replacement platform for WPF, which allows you to basically take an old WPF application and turn it into a Windows/macOS/Linux/web application with two lines of code, if you're willing to pay the price. Perhaps they'll add some kind of auto-mobile-form-factor conversion to that system as well? Ah interesting, I didn't know this. > A mouse+keyboard design just doesn't fit a mobile screen well, you're going to need to redesign and reimplement large parts of your application regardless of what platform you pick. I think you're understanding this backwards. I'm not aiming to port a desktop app to a mobile app, I'm aiming to choose a UI toolkit that works fine in mobile by default and requires tweaks in your app to make it work in desktop (rather than choosing a UI toolkit that works fine in desktop by default but requires tweaks in your app to make it work in mobile).
- rapsey 3y agoThis is a pipe dream and will remain one.
- rezonant 3y agoWhy? The web does it pretty easily.
- siwatanejo 3y agoThe web? That's the opposite of what was requested here. Most websites look good on desktop but require tweaks to be seen properly on mobile. Not the other way around.
- rezonant 3y ago> Most websites look good on desktop but require tweaks to be seen properly on mobile. This is a weird take. Most web browsing these days is done on a mobile device. Even HN, with its table-based layout, works completely fine on a phone, because it has to- at some point someone put in the minimum to make it work nicely on a mobile screen (basically one meta attribute and perhaps a few CSS media queries). You can build a single web app (without detecting the user's device and switching versions) that scales from the smallest phone to a theater screen thanks to media queries and CSS. It's even a best practice manifested as "Mobile First Design" that it's better to build a mobile web app first, and get that right, then use responsiveness and media queries to iterate that into a desktop version. I personally think this is a debateable proposition, but it seems weird to state that "most look good on desktop but require tweaks to be seen properly on mobile", when it is in fact the case that most websites and apps are designed for mobile first. The web is fully capable of delivering an appropriate experience across all form factors, on websites and on web apps. If the web can do it, I don't think it's a pipe dream to capture that capability in a non-web native/cross-plat UI framework designed to do what the web is already doing today. Admittedly CSS is big and crazy and insanely powerful because it has to be, and is probably overkill outside of HTML (though I've seen some UI frameworks approximate it), but a middle ground is definitely possible if you think creatively about it. Now "possible" and "it exists" are two different things- that's why the web is such an alluring platform: It is probably the single most powerful and flexible user interface framework (in a sense) ever designed.
- anaisbetts 3y ago> How's Avalonia's mobile support now? A promising future but not production-ready afaik
- xmichael909 3y agoYes, I so wish I had gone with Avalonia 3 years ago. I now have a Xamarin.Forms app that is at the end of life, and MAUI media player options are dismal.
- PH95VuimJjqBqy 3y agothe move from framework to core should be smooth outside of a few areas. - webforms/asp.net framework won't move over easily - windows GUI apps won't move over easily - some windows specific API's didn't come over (such as WPF). If your app falls into any (or multiple) of the above then you definitely would have experienced pain, but in general the move is pretty smooth.