With the advent of cross-platform toolings such as React Native and Flutter, does it make sense for companies to invest in multiple native apps on ...
For further actions, you may consider blocking this person and/or reporting abuse
Why do you feel Microsoft has "dropped" Xamarin? I haven't used it myself but this is not the impression I've got from watching the overall Microsoft space.
On the separate issue of how wise it was to buy Xamarin, it is important to consider that cross platform Android/iOS development was only part of the reason for the acquisition. Experience and technology from Xamarin were crucial for creating .Net Core and thus making sure .Net remains relevant going forward.
I personally belive buying Xamarin has paid off tremendously.
I agree on using Xamarin experience for creating .Net Core but recent updates and version upgrades from Xamarin, IMHO, haven't been up to the mark.
Also, while I might have gone hyperbole on dropping it like a hot potato - it's hasn't received the kind of attention that other products like Azure or 365 are getting - both in terms of the advertisement or quality of builds. Compare it with tools like React, Angular or those on the lines.
"Microsoft dropped Xamarin like a hot potato in recent years and has instead moved its focus on Machine Learning."
I don't think you thought this one through friend. Makes no meaningful sense.
Notice how many people you triggered by this weird statement.
.NET Core and C# developers are potentially the most valuable in the market with Xamarin.Forms in the Microsoft arsenal.
As a business, it makes sense not to hire single trick ponies (native only, mobile only, web only etc.) and instead invest in upskilling my .Net/C# team to target a plethora of platforms with the mature Microsoft tech stack.
Xamarin is very mature and actually outperforms Flutter/React in many ways, and even native platforms in certain aspects. You read that right. Google is your friend to confirm.
Happy new year to all 🥳🥳🥳
Great article, well written, thanks for posting. Agreed , React Native and more recently Flutter are great Cross Platform technologies.
However, you made one false statement: “ Microsoft dropped Xamarin like a hot potato in recent years and has instead moved its focus on Machine Learning. “ . Microsoft has in fact invested more effort in the last year in Xamarin like never before to close the gaps. Hot Reload, Xamarin Form 4.x.
I think Xamarin popularity is in fact picking up.
Native won't die.
That's it.
True, it won't - all frontend frameworks we've seen so far have been a fad, some longer than others.
I liked the article overall but strongly disagree with your comment on Xamarin. Xamarin in my opinion offers the best of all the cross platform dev platforms. If you like the flutter approach, take that in Xamarin using Skia or use the amazing Xamarin Forms or even go fully native with better tooling! I think the biggest advantage with Xamarin is the huge collection of pre built packages already built for you!
I remember being young and naive making outrageous tech claims. It's one thing to be a fanboy and another to truly understand markets outside your own and business needs.
Not disrespecting your article. I do wish you the best on your ventures ahead. And keep an open mind.
Back in 2012 I started learning Android but faced frustration due to Sencha, Cordova, and hibrid apps using Angular. Until end of 2015 I went deep into Native while doing web developpment during the day. This possibility of alternative technologies taking over soon had alarmed new native developers since then.I dont regret my decision. I can feel confortable if I have to learn now Flutter whose language was a hipster back in 2012 with the rise of Angular, or learn Nativescript which is known for hitting Native libraries directly. Anyways there is room for any learning goal, just dont get trapped like in my case. All technologies are meant to die just like Adobe Flash and Flex. We need to be always flexible
True, your best bet is to learn and implement what is most suitable at the moment.
But because Native Development is not going away anytime soon, nothing is safer than that :)
I like the kotlin multi platform part but I wish you would have written a whole section about it.
Simon, you're right. Kotlin Multi Platform deserves much more mentioning - I'm currently doing some of my own digging on the same and would probably come up with some blog dedicated to just that in the coming weeks.
But thanks for pointing it out and thanks for reading my blog :)
That sounds great. I'm looking forward to it :)
My post comparing Kotlin Multiplatform (KMP) to Flutter, React Native, and Xamarin is a bit old now (KMP and Flutter are improving quickly) but I think it is still relevant dev.to/touchlab/how-does-kotlin-mu...
Please also have a look at other articles we've written focused on KMP dev.to/touchlab.
Thanks for the article, it was a good read.
Greetings to you guys at Touchlab. Some time ago Kevin Galligan introduced me to the KotlinXcodeSync plugin.
Every Expo SDK release (and the growth of the React Native community in general when it comes to packages with native as well as pure JS integrations) makes it easier and easier to never worry about writing native code. Add in Expo updates or CodePush, and you don't have to upload new IPAs/APKs to app stores and await their approval processes for updates which only touch non-native code.
Throw in React Native Web (already in Expo since SDK 33, though only truly useful IMO since 36 or 37) and Electron (at least until a desktop alternative can stick around to match in feature parity and stability, and easy to add to Expo), and you can build not only Android/iOS apps, but also PWAs and Windows/MacOS/Linux. For RN CLI or bare Expo projects, there is also Microsoft's React Native for Windows and MacOS (or you can build MacOS apps with Catalyst). NodeGui and Proton Native are options for all three desktops, mapping to native desktop UI primitives similarly to how RN does to mobile primitives.
I have built several projects with 100% JavaScript codebase (custom code, obviously not native community modules or the native scaffolding that you get just like you would with Flutter as I understand it) and up to 95% of it shared between all platforms.
As for Flutter, I have no interest in trying to hunt down or train Dart devs, just as I have no interest fragmenting my team into separate languages for each platform. I can go MUCH faster and cheaper than a 30% reduction with a tiny team of junior devs I can quickly ramp up, from the largest available talent pool (JS devs) on Earth.
I started mapping out simple examples for nodegui react too if anyones interested in getting started :P dev.to/jswhisperer/nodegui-react-c...
Nice.
Thank you, Bryan, for your kind words :)
I agree with you on PWAs, but unless iOS rolls out first-class support - native apps can't be ruled out. Things like having limited storage space, removing the space used if other apps start taking too much space, not having a default - add to home screen button and more. This could prove to be a non-starter for many.
Also, I believe it's not in Apple's best interest to support PWAs wholeheartedly else they will lose out on the service revenue that they are banking on since the dip in sales of iPhones. Let's see what the future holds :)
No, but I hope click bait will start to die.
😂
This is a funny little article. It's also a bit misleading because technically flutter is a native development platform (though react native isn't). The whole xamarin thing is wrong but enough people have said something regarding that.
The only technology that might potentially kill native wasn't even discussed in this article and is still a long way from that point (at least a decade). That would be WASM. In the future, wasm could define entire operating systems and could potentially be faster. With wasm sandboxing, you don't have to worry about kernel vs app memory or the different execution rings. But then if the OS uses wasm then everything written on top of it would also be native.
While Flutter is a native dev platform, it is still new so while the community is growing, a lot of tools, third party SDKs and others are still missing. Unless you're using google backed tools like firebase, you will still need to get your hands dirty with native code like one has to do with RN.
Also, WASM is still too far away to talk about. It's a great tool - like PWA but unless it receives first-class support from the OS and adoption by developers, it remains a fad.
There are and have been numerous technologies which possess the potential to disrupt but very few actually do!
Thanks, I've been waiting for this question and the answer is NO. C is and will continue to be the most direct, performant, compatible and standardized language for all forseeable future. C compiled (machine code) binaries run faster in emulators than any of the competitors on native systems. C bindings have direct, uncluttered access to more systems functions than any other API. They can be recompiled for any hardware. They do outperform all lesser languages by a degree of magnitude. We don't use middleware upon middleware, we access the buffers and parse the data directly based on the most common standards. The loss of convenience pays back sevenfold in degree of control and level of detail. Native rules because it is directly corellated to how machines work. I know this because I've programmed computers since they came with basic shells, and I've seen every development. Nothing will replace C any time soon, and any investment in other languages is futile because native will prevail as it has for the last forty years. You just can't reach that level of control and performance any other way.
I can't express how much i dislike react-native. It's so hard to develop something other than a simple to-do or fetch/display data app.
The dependencies hell is a thing.
It works for some, and not for others. I'm sure it has its pain areas!
But as an agency, we have been developing apps natively, with RN and Flutter and first class support has always been for Native.
What about PWAs? No mention at all?
PWAs like I mentioned in one of my previous comments still isn't a first class citizen on iOS platforms.
While I'm not denying the support for PWA, I believe it's not in Apple's best interests to do so as well. It wants to control the user experience better and wants that 30% revenue real bad as well.
PWAs are currently more of complimentary partners to mobile apps. I've not seen a single major product or marketplace which would have a PWA but not have a native mobile app
On Windows platform the answer is "Yes". Not even the new WPF, UWP replacement WINUI can pull this off. Microsoft proved it with Visual Studio Code built on Electron.
Electron is the future desktop ready to go today.
Xamarin is a dead end just like UWP. The sooner you accept it, the less it will hurt you.
Would have to greatly disagree with you there. Remember when folks stated WPF was dead over 10 yrs ago? Still here. The ability to maintain your business logic, front and backend with C# holds quite the advantage for prototyping and enterprise alike
No
Blatant lies about Flutter app sizes