If I were to start doing smartphone development...

If I were to start doing smartphone development, would it be worth learning a cross-platform framework like Xamarin first? Or is that better for people who are already currently a native developer? Would it be better to pick one platform to learn in the meantime and then branch out from there?

Attached: maxresdefault[1].jpg (1280x720, 39K)

It's the best if you want to use the Native UI and native APIs and you want to share Code between Android and iOS. You can share a lot of code and Libraries like MVVMCross even allow you to share the abstract View Logic via the Model-View-Viewmodel pattern.

The development itself will be significantly less polished than what the native Toolkits for iOS and Android have to offer.
And now that iOS has SwiftUI and Android has Jetpack Compose, doing UI the old MVC way and without stateful hot reload feel like it takes 15 times longer, especially thanks to all the boilerplate you'll have to write. And in Xamarin, there's an extra level of indirection since the C# wrappers you have aren't actually what the platform creates underneath, so enjoy some low level weirdness.
Developing for iOS in Particular with Xamarin still sucks. You either need a mac in your network that you SSH into from Visual Studio and use Xamarin's shitty interface builder (Unless your team is smart enough to build the UIs in code) or you have to use Visual Studio for Mac, which is absolute garbage and doesn't even offer SourceLink, which you ABSOLUTELY need to debug code that uses third party libraries.
Also, there's less documentation than there is for native code. You can usually adapt that native code well. But if not, tough luck.

Many companies start with Cross Platform toolkits, whether it's React Native, Xamarin, Cordova or even just Dropbox' C++ binding generator eventually figure out that it's not worth the hassle and to just write the app two times in the platforms' native toolkits, which, as weird as it may sound, usually ends up being less work.
The only that kinda works is Flutter, but that makes using native APIs really inconvenient and still lacks polish a bit. Also, Xamarin also allows you to make GTK, Mac and Windows (Forms, WPF and UWP) and Avalonia apps.

I can't tell you if it's worth learning. It's not a silver bullet. But it does have its advantages.

Use Flutter.

Hell! No! Xamarin is 1000x better!

Ok. Explain why

Thanks for the insight user!

It's pure native and there are jobs.

How does an app made with Flutter and Xamarin compare in terms of

>app size
>performance
>lag

Mostly 2x or 3x better with Xamarin.
I am comparing Xamarin native binding, not Xamarin.Forms.

Kivy

>Open source Python library for rapid development of applications
that make use of innovative user interfaces, such as multi-touch apps.
quick rundown?

have you used it?

We're using Xamarin at my work, and it's a major pain in the ass. Doing stuff on the platform-specific level is the major source of annoyance. A lot of times when finding a native solution to a problem, you'll have to figure out on your own how exactly to fit that solution into your project, which can waste a lot of time.

Mobile development is not for weak devs.

hurr durr

Did you compare with native development with Swift/Kotlin and using two separated environments: Android Studio and XCode without any shared logic?

Xamarin is dead,
Learn Flutter, or else Ionic/Cordova if you don't mind the slouchness.

Xamarin is probably more alive than Dart or Flutter and the next .Net conf will probably destroy "nice" features implemented in Dart 2.5 and Flutter 1.9. You can't compare native Xamarin with stupid Skia based Flutter or retarded web based solutions like Cordova.

>2019
>Comparing .net core aka the fastest cross platform technology with stupid webkit for RN and 2d renderer for Flutter.

Open complex Xamarin project on VS2019: 11s.
Open similar Swift project on XCode: 113s.
Open similar Kotlin project on Android Studio: crashed 2 times and waste more than 10 minutes just to be able to edit something. Oh and 32GB RAM is not a meme.

I tried both Flutter and Kotlin and even with having to write a bridge application to access any device hardware components, Flutter is still much more enjoyable to write for me.

If Androids Jetpack Compose I might reconsider, but until then I decided to stick with Flutter.

no idea what's up with the Xamarin guy itt.
Would be nice to at least hear some actual arguments and not just this.

Embrace Xamarin and the superior C#.
If you need Flutter like quality apps, use Xamarin.Forms, but enjoy fatty executable.

I've been hearing this from retarded .NET backend devs since 5 years ago when they drooled over mono.
Then Xamarin proved itself unreliable with all those bugs and quirks. THEN IT WAS BOUGHT BY M$ AND PAID SUPPORT WENT OUT OF THE WINDOW.

Please stop lying to yourself, I'm a mobile dev, there are no jobs demanding Xamarin anywhere, it's fucking dead, and it is going to stay dead because neither Google nor Apple will let others take full advantage of their platform for free.

>lets pick a technology for its loading time
Open main.java on notepad, 0.00001s

.NET 5 is going to change your mind, dude.

Yes, VS and .NET are amazing.

Xamarin is Mexican technology, I wouldn't touch it with a 10 ft pole.

M$ makes more money with Android and iOS than Google or Apple. They contributed much more than any other in the expansion of the mobile.

This

You should use ".net developer" not "xamarin" or "xamarin mobile".
Now you can cry, retard.

>2020 is near
>using google's shit.

Listen M$ fanboi, it doesn't work like that. It doesn't mind how good .NET framework or C# become.

The problem with Xamarin (and also Apache Cordova, React Native) is that they are never up to date in term of new OS features and bugs in the native APIs they build upon. THIS IS BY DESIGN. Like I said Google can't allow an stable enough API such that other people build better tools circumventing their own and take advantage of them. So they change APIs each year, some years twice, and they also introduce bugs and qwirks.

Cross platform framework makers just can't cope, they just can't commit enough devs to support EVERY old and new native API in existence. In the case of Cordova it's just Javascript kids releasing crappy plugins and forgetting about them. In the case of Xamarin and React native, there is what there is, if it works then Ok, if not you can submit some issue and good luck having it solved in months if at all.

So then flutter is the best

I think he said native Kotlin and native Swift are better than anything else.