Hacker News new | ask | show | jobs
by apayan 3708 days ago
tl;dr. The success of Unity can't be used as an indicator that cross-platform frameworks are good for productivity/utility apps.

Xamarin and Unity don't have anything in common, other than the fact that Unity uses C# for scripting (on an ancient runtime).

Cross-platform app development frameworks are generally awful because they don't tightly integrate with the native look and feel of every platform. Video games don't even try to achieve native looks on any platforms. They're always full screen works of art, without any hint of a UIButton (iOS) or TextView (Android).

2 comments

I too hate cross-platform schlockware but it sounds like you are not familiar with the technology.

"controls are mapped to platform-specific native user interface elements; for example, a Xamarin.Forms Entry becomes a UITextView on iOS, an EditText on Android, and a TextBox on Windows."

https://www.xamarin.com/forms

Interesting. I was unaware that Xamarin maps widgets like that. Thanks for enlightening me. :-)

How does it abstract away the more fundamental differences between platforms Activities/Fragments vs. UIViewControllers?

You win some you lose some. With Fragments Xamarin actually extends support to earlier Android devices. Less of an issue now, but there was a time when this actually extended platform reach, reduced code, and simplified training/upgrades.

For some things it's about the common talk-to-the-backend code, not true-code-once across iOS/Android...

I don't think Unity does it any more, but it wasn't that long ago when Unity used Xamarin to be able to run on iOS, Android and PS4. Now they do it with il2cpp I think.

Also, it seems you have no idea what you're talking about. Xamarin gives you access to the same native APIs that you use when developing a native app. You still need to know the native API if you want to build an iOS app. Xamarin.Forms helps, but doesn't support everything.