DEV Community

Cover image for Mobile development in 2021 …an opinioned point of view
Matteo Bonifazi
Matteo Bonifazi

Posted on

Mobile development in 2021 …an opinioned point of view

The mobile development ecosystem in 2021 won’t change too much from what we’ve seen in 2020. Mobile solution companies are now more focused on stabilizing the platform than launching new ones. In 2021 developers will face again the same question point, independently if the new project will start from scratch or not…

going native or cross-platform?

The war between the native & cross-platform to develop mobile applications is still there…actually we could say there is no war anymore since they represent sides of the same coin. According to the mobile application needs both solutions are able to achieve good quality for the end-user.
The native platform (Kotlin for Android and Swift for iOS) always guarantees the best app performance and look&feel; nevertheless cross-platform like ReactNative, Flutter, Xamarin, Cordova, etc. still find good space in the market for mainly two reasons: price & competence wise.

  • Price-wise. Cross-platforms are promoted by their reseller as a panacea to cut about 50% development cost to develop a new mobile product. If this excuse works well for non-technical folks, like the marketing or sales department, it doesn’t fit at all when the development team is involved too. Cross-platform might generate some savings ( around 20%), exchanging for compromised about performance, functionality, compatibility, and scalability of the whole solution. Most of the time the saving may be bigger if there is an integrated mobile team instead of re-shaping developer frontend and backend developer from other teams.
  • Competence-wise. Most customers choose a cross-platform solution to build a mobile app because it is closer to the technology stack already included in the team. For instance, the Technology team based on Microsoft stack is more favorable to a solution based on Xamarin ( so C#) that can already be shared inside the team itself.

What platform chooses in 2021?

The right answer is “..it depends..”.

Swift & iOS development

Swift in mentioned like the powerful and intuitive programming language for macOS, iOS, watchOS, tvOS and beyond.

Nowadays Swift represents a programming language with a good fit. Developers love it and Apple is still pushing updates and new features. With the 5.3 release, it is compatible with Mac, Linux, and Windows trying to become a real cross-platform language.
For iOS development, making a mobile app for iOS is pretty stable. The new development features introduced by Apple in the last release are no-core for the development. SwiftUI, on the field since 2019, is a big thing but there are still some concerns in the development community because it’s not production-ready in most of the cases.
The next step and the hope for iOS development in 2021 is to increase and upgrade features in the IDE because XCode needs to get some big updates to support modern iOS development.

Kotlin & Android development

A modern programming language that makes developers happier.

The marriage between Google and JetBrains performs perfectly well from the developer's perspective. Kotlin adoption is not a problem anymore ( developers were fed up about Java, even if it still easier to get as a language) and Android Studio gets better release after release. Also, the Android fragmentation issue is promising if we compare it to the previous Android release. Of course, the problem is not fixed; there are still several misleading behaviors on Bluetooth stack, Video playing, and so on, but the road is getting better.
A new compatibility problem will face up the developer in 2021. Making mobile application compatible with Huawei device, services & App Store. According to different countries, Huawei has got between 15% and 20% of the device market share. With the Huawei US ban and the rise of Harmony OS, new Huawei devices do not have Google Play Services, and this forces Android developers to recalibrate Android applications for those devices. However, the Chinese giant starts in 2020 a big campaign to support developers and companies to make mobile applications compatible with Huawei services.

React Native

Learn once, write anywhere. A framework for building native apps using React.

This framework is the connection between javascript and mobile developer. Therefore after 5 years from the launch, we are still at 0.63 version…so it means we are no stable and still not clear when it would be.
Even if this is not stable yet, developers over the world ( with Facebook first) uses that in the large scale application. The ecosystem is pretty stable with companies goes in and out of the platform.
React Native brings React’s declarative UI framework to iOS and Android. It was innovative and this approach has been re-used by other mobile platform natives ( Jetpack Compose for Android and SwiftUi for iOS).
Choose it if you or your team already know React and javascript.

Xamarin

.NET developer platform with tools and libraries specifically for building apps for more or less every user touchpoint.

If you have a Microsoft stack based on C# plus .NET and you want to create a mobile app or app in general, Xamarin is the solution to go multiplatform (Android, iOS, tvOS, watchOS, macOS, and Windows). The question: ” Does it make sense to start a mobile project in Xamarin even if I’m not in a .NET stack environment? “ We can easily answer “No sense at all”. Visual Studio IDE and Microsoft resources make a healthy environment to work with Xamarin for .NET Developer.
In 2020, Microsoft unveiled .NET Multi-platform App UI (MAUI), a single-stack UI framework that supports all modern workloads: Android, iOS, macOS, and Windows (but not Linux, other than possible “community” driven support). MAUI will be an extension of that effort, featuring a cross-platform API to leverage native features and UI controls on supported platforms while allowing for more code sharing across them and deployment to targets including the desktop, emulators, simulators, or physical devices. Microsoft’s plan is to make it available with the release of .NET 6 in November 2021.
What does it mean for Xamarin? It’s still not clear; there is indeed not so much information regarding the porting of the existing Xamarin mobile app. Maybe nothing maybe we need to create from scratch all mobile app.

Flutter

Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.

When Google announced in 2017 the new cross-platform framework Flutter, all Google and Android fan-boy developers got a wet blanket. Might Flutter kill Android native development? In 2021 we can frankly say “No at all”. Even if Flutter, based on Dart languages, is supported by Google, it has got a distinct path from the Android native development.
Flexible UI, native performance, and fast development push the Flutter platform to be compatible cross-platform ( web, mobile, and desktop). This platform has to recover the gap from Xamarin and React Native, that came earlier on the field. Dart language doesn’t help because it is not so much used in all of this.
Nowadays Flutter seems the platform for Android developer who wants to develop a cross-platform solution. In 2021 the big next step for the Flutter platform is to engage more “no Google fanboy” developers to enlarge the developer base.

As we have read, 2021 brings to the mobile developer and aspiring several ways to develop a mobile application, but there is just one rule that works:
Only end-users make the success of mobile applications and they don’t know how apps are built.

Top comments (2)

Collapse
 
weitzhandler profile image
Shimmy

Hi Matteo and thanks for your comprehensive comparison.
For a .NET developer, writing an Android-only app. Does it make sense to learn flutter or Kotlin for that, or better stick to Xamarin.Forms?
Thanks

Collapse
 
hassan_k_a profile image
.

I have to say one of the most interesting article I have read today. thanks a lot.