Live data from Hacker News

Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

news.ycombinator.com

51–60 of 89 posts

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#51
Xamarin (native) used to be my go-to technology for cross-platform mobile apps, but Microsoft has absolutely driven it into the ground since the acquisition. Looks like they only care about MAUI, for which I couldn't care less given the horrible user and dev experience.

The motto for Xamarin used to be "you can do all the same stuff you can do natively, with day one support". Not anymore, and it's disheartening to see.

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#52
For .NET cross-platform UI there are:

MS frameworks:

- MAUI (ex Xamarin.Forms) which is similar to React Native as it's controls use native widgets for rendering.

- MAUI Blazor which is similar to Electron and Tauri as it uses web view to render widgets.

- MAUI.Graphics.Controls (experimental) which is similar to Flutter as it uses Skia to render it's controls.

Non-MS frameworks:

- Avalonia

- Uno

Both Avalonia and Uno are similar to Flutter as they use Direct2D, Skia, etc for rendering. Quick comparision I just found: https://github.com/robloo/PublicDocs/blob/master/XAMLFramewo... Note, that it's already a bit outdated as Avalonia 11 is adding support for mobile and WebAssembly.

Avalonia was more focused on desktop (Windows, Linux, macOS) until recently. Android, iOS, WebAssembly is still in preview. However it does support embedded platforms, like Raspberry Pi, Torizen. It's also able to run without a desktop environment. https://dev.to/avalonia/turning-it-up-to-11-34jn

Uno I think was more focused on mobile in the beginning and expanded from there to other platforms.

All of these frameworks are build around XAML. There is some support for using C# instead of XAML, but most docs/examples are for XAML. Search 'C# Markup' for more more details.

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#53
Making a choice based on popularity of the tool might be the wrong approach. If making a choice is even needed.

If I would start something now I would most definitely go for Swift/SwiftUI and Kotlin/Jetpack Compose. I find that productivity, developer experience are best with those as soon as one gets the hand of them.

Also, these are the only ones to be guaranteed to be around long-term. While any of the cross platform options sound interesting, there is no guarantee they will be around.

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#54
post #38

Earlier quoted context omitted.

Yes, it's a "basic" chat app. Like google is a "basic" search engine, how hard can it be to make something like that? Just make it go search?

Comparing teams to google is a bit meh. There’s nothing special about that app other than how crap it is. A poorly written tool made by inexperienced devs.

Teams is also very bloated (or "full featured" depending on how you want to spin it) compared to other chat apps, which does make it special by comparison.

Teams is trying very hard to make itself a platform, and it supports telephony in a way that other chat apps don't. I can be reached on my work Teams account via a dedicated phone number, and the account includes a bunch of Viva applications and pretty deep integrations with Office, SharePoint, and Power Platform.

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#55
post #27

As mentioned Xamarin is now MAUI[0] The only app I know of using it is Bitwarden[1] [0] https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui [1] https://github.com/bitwarden/mobile

I've deployed an MAUI-app to production. I chose MAUI since the rest of the stack is dotnet and we have ready built SDKs in dotnet to communicate with the backend, so I had a functioning login page up and running in minutes. It was a very frustrating experience in the early days, but as MAUI has matured it's now a pleasure to work with. It is not as feature rich as some other frameworks, but it fulfilled our needs.

No post body was provided.

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#56
post #16

Earlier quoted context omitted.

As a user with a finite amount of memory on my computer, I also regret them choosing Electron.

They should hire better engineers, perhaps those with more experience than just leet code. The apps i built using electron for some clients have none of the issues teams has. I mean come on, teams is a basic chat app, how difficult is it to optimise it?

(bit of self-promotion)

They do have a React version on WebView2 that is (supposedly) much better, but it's only for personal accounts right now, though that could change [1].

Thankfully their internal API is fairly self-documenting, so I've been looking into creating my own Teams client if you're interested [2]. We'll see if it'll have been an effort in vain depending on how well Microsoft Teams 2.0 goes.

[1] https://www.techradar.com/news/a-new-generation-of-microsoft...

[2] https://blog.opercom.co.uk/posts/news-13-08-22/

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#57
post #48
post #39

Earlier quoted context omitted.

It doesn't run on Linux. Not sure how they can call it "cross platform" if it doesn't run on Linux. Maybe across Microsoft's platform.

It's for front-end development. There are ~0% use cases for a linux UI outside of development tools and maybe database monitoring tools?

There are plenty of people who daily drive linux that would disagree with there being "zero use cases"

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#58
post #16

Earlier quoted context omitted.

As a user with a finite amount of memory on my computer, I also regret them choosing Electron.

They should hire better engineers, perhaps those with more experience than just leet code. The apps i built using electron for some clients have none of the issues teams has. I mean come on, teams is a basic chat app, how difficult is it to optimise it?

Teams is integrated with lots of other products such as AD, O365... It's far from a "basic chat app". I am sure the app you wrote does not have millions of users daily, either.

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#59
post #29

You might want to consider how much Microsoft uses it in their own products before choosing to use it. This article describes the situation pretty well: "not even Microsoft, literally the people who own Xamarin, use it in any of their big products like Teams, Outlook, and the list goes on. Instead, they reach for native development or Electron. So we can just tie a bow in it and have a minute's silence for another en…

Those products predate the purchase of Xamarin and are web products in their latest form. It's not that surprising or telling.

Which applications have Microsoft chosen to build with Xamarin?

Re: Ask HN: Are you using .NET to write cross-platform desktop or mobile apps?

#60
post #35
post #33

Earlier quoted context omitted.

None of those products, as apps, predate Xamarin. Outlook for Mobile was an acquisition; Xamarin existed at the time. Teams Mobile apps are native and built while Xamarin existed; not using Xamarin.

Xamarin existing and MS touching it are different things, though. It's only been "official" for a short time and only after Microsoft acquired it. Rewriting the history as if Xamarin was an option from the beginning is disingenuous.

Microsoft acquired Xamarin on Feb 24, 2016 https://en.wikipedia.org/wiki/Xamarin

Microsoft announced Teams March 17, 2017, with a launch date of the end of 2018 https://news.microsoft.com/announcement/teams-platform-intro...

Make of that what you will.

Post reply on HN