And these percentages shift regionally, too. In the US, iOS has a bigger market share (56%) than Android (43.5%), while the opposite is true in South America and Asia.
This has led to the rise of cross platform mobile development as a diversification measure. Originally, when developing a mobile app, you had to choose your platform carefully; considering the location and preferences of your target audience. But even when you have chosen a platform (or platforms) to focus your energies on, there’s another big decision to be made: how.
In native application development, you’ve got three major options. You could build a dedicated app for each platform, use a cross platform app development framework to re-use code for each platform, or build a progressive web application (PWA).
In this guide, we’ll explore each of these approaches; helping you decide which is right for you.
Would you like to receive all the latest insights from us?
What is a native app?
A native application is one that’s developed specifically for a target platform, using that platform's preferred programming language and tooling. For iOS, this means Swift. For Android, you could use Kotlin or Java.
Apple and Google offer a range of native app development tools and resources to encourage developers to build apps for their platforms. This includes standardized interface elements, development environments (Xcode and Android Studio), design guidelines, and various libraries that make native development easier.
Advantages and disadvantages of a native app
Reasons to choose a native app include:
Speed: As native applications are built specifically for their target platforms, they are faster and more reliable than their cross-platform counterparts.
Functionality: Native applications get direct access to hardware, such as the camera, compass or accelerometer. Apple also gives sole access of some features to native applications, for example, notifications.
Quality: Native applications effortless blend into their target platform, making the design consistent and the application easy to use. Users tend to prefer native applications, even if they don't understand the technology underneath.
But there are drawbacks to native development, too. Such as:
Cost: You'll need to build a specific mobile app for each platform. Your iOS code will not work on Android.
Specialist: Native applications need developers who know Swift, Kotlin or Java.
Native app example
The most popular applications out there are typically native, because the team budget allows dedicating resources to every specific platform. Some arbitraty names are Twitter, Pokemon Go and Waze.
What is a cross platform app?
A cross platform app runs on multiple platforms with only small modifications required.
Advantages and disadvantages of cross-platform applications
Cross-platform apps bring a number of advantages to the table, including:
Cost: Code can be shared between all your target platforms, reducing development costs and making cross-platforms apps cheaper to develop than native ones. Instagram published stats that revealed the amount of code shared between their iOS and Android apps was over 90%. This might also be one of the key decision factors for organizations that aren't focused around maximizing their profit.
Speed: It is often quicker to build a React Native app than a native app.
But with cross-platform development, you lose out on:
Flexibility: A cross-platform framework makes some decisions for you, and therefore adds some limitations to your project. For example, it’s difficult to build custom UI elements with React Native and certain device features will need native code to work properly.
Quality: Cross-platform frameworks can produce an app that feels inconsistent with the target platform when compared with a native app.
Performance: Cross-platform apps are slower than native applications.
What is the best cross platform app development framework in 2021?
Should you choose to push ahead with a cross-platform build, there are three major choices for cross platform app development in 2021.
Pros of React Native app development:
Speed: React Native provides various ready-made components, helping speed up development. The React Native community is huge, which makes it easy to find help and documentation online, too. You can create a React Native app very quickly compared to most other options.
Multi-platform: React Native can be reused on both Android and iOS, saving development costs. As the same code is used on both platforms, adding new features is easier as well.
Cons of React Native app development:
Native still required: If you need access to various hardware features, such as the camera, GPS or accelerometer, you might need to write native code to access these.
Quality: React Native applications are quite performant, but still are slower than a well-optimized native app.
Vue Native is a community open source project, allowing Vue developers to build native applications. Importantly, it compiles to React Native, so you can use a Vue developer to build a React Native application.
Pros of using Vue Native:
Talent: If your development teams specialize in Vue, Vue Native lets them build mobile applications using their existing skills and tooling.
Independence: If Facebook's involvement in React Native is an issue, Vue Native is an MIT licensed alternative.
Cons of using Vue Native:
Small community: Vue Native has a much smaller community than React Native. This means not as many resources are available, making it much more difficult to find a person experienced with Vue rather than a React developer.
Quality: A Vue Native app will always feel slower than a well-optimized native app.
We'll save the technical differences for a future article, but NativeScript works differently from Vue Native and React Native and provides a more native-like experience for developers.
Whereas React Native uses a bridge to empower native functionality, NativeScript provides direct access. This means you can use CocoaPods and Android SDKs within NativeScript.
Pros of using NativeScript:
Licensing: The core of NativeScript is licensed under the business-friendly Apache 2.0 software license.
Cons of using NativeScript:
Community: NativeScript has a significantly smaller community than React Native. However, they do offer paid support plans.
Quality: A cross-platform app, even with NativeScript's direct access to native APIs, will be slower than a well-optimized native app.
- Wait, you said there are three choices. What is Flutter?
Flutter is another recent addition to the cross platform app development space, initially released by Google in 2017.
Written in their own Dart programming language, Flutter allows developers deploy native applications on mobile and web platforms using a single codebase.
Pros of using Flutter:
Level of nativeness: Having been well-integrated with core Android and iOS hardware since the first release, Flutter aims to provide a native-like level of experience that would be hardly distinguishable from a true native performance in cetrain cases, like running graphics on iOS devices.
Community and Ecosystem: Google supplies plenty of peripheral tools and a great development ecosystem for a quick start with Flutter. Beyond that, there's is an open-source community of over 100k developers using and contributing to the framework.
Cons of using Flutter:
Immaturity: Alsough having a great start for a 4-years-old framework, Flutter - and it's main language Dart - are still young and unstable, and your project might have to prepare for a lot of breaking changes in the future.
Size: A Flutter app doesn't compare well with other frameworks in terms of disk space taken. This is a price you pay sometimes for reaching the marking in less time. In any case, Flutter app development can be a great option for an early MVP.
Examples of cross-platform apps
Many popular applications are built with cross-platform technologies, including Uber Eats, Instagram and the Bloomberg app.
What is a progressive web app?
A Progressive Web App (PWA) is the fastest road in cross platform mobile apps development, and a midway point between a mobile accessible website and a conventional mobile app.
The key differences between a native applications and a PWA are how the user accesses them. Whereas native and cross-platform applications are found on an App Store, PWAs are accessed via a web address. PWAs cannot be listed on the iOS App Store. However, they can be listed on the Google Play Store — if specific PWA requirements are met.
Advantages and disadvantages of progressive web apps
The key benefits of a PWA are:
Speed: You can build a PWA that works everywhere, including on Android, iOS and other web-connected devices. The latest version of Chrome of the desktop includes enhanced features for PWAs, including the ability to install it.
Cost: As only one code based is needed, development costs are reduced.
The disadvantages are:
Functionality: Your device feature set is limited with a PWA. For example, PWAs on iOS cannot use push notifications. Instead, you'll need to build your notification method. If your app relies on device-specific features, such as GPS or the camera, we'd recommend you do not use a PWA.
Quality: As PWAs don't use the native UI of the platform, they will feel inconsistent, leading to poor user experience.
Notably, the founder of Facebook, Mark Zuckerberg said:
“The biggest mistake we’ve made as a company is betting on HTML5 over native,”
He was referring to the original Facebook mobile app, which was built as a web app back in 2012. Web technology has moved on since then, but it suffered from slowdowns and other issues, allowing their native app based competitors to gain market share at Facebook’s expense.
Examples of progressive web apps
Many web publishers and companies are using PWAs to enhance their existing websites, such as the Financial Times, Twitter and Pinterest. However, these run alongside their existing applications.
So, what is the best way to create a native app in 2021?
If we’re honest, the answer to this question is very specific to your needs and requirements for your application:
If you need a prototype to show customers and get feedback, go for the fastest option that has the features you need. For simple apps, this could be a PWA.
If you need access to hardware features (such as the camera, GPS or compass), restricted iOS features (push notifications, payments, Healthkit) or need high levels of performance (such as AR, VR or video games) a native application is the only option.
If you want your app to be listed on the iOS App Store, you'll need to pass strict and constantly changing App Store acceptance criteria. In our experience, it is easiest to meet these criteria with a high-quality native application. However, any of the hybrid app development tools we have listed should be just fine if you follow platform guidelines while still making it cross-platform.
If your app is in a hyper-competitive segment, we'd recommend a native app. In these segments, the quality difference between a cross-platform app and a native app could be the difference between success and failure.
If you are considering cross platform development for your product while aiming for native application experience for your customers, there are many things to consider. Feel free to get in touch with us if you would like more guidance on your way. We’ll help you map out every stage of your product design and development journey.
Follow us on social media for more insights
Our goal is to align with your goals and make the technology work for you.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form
Featured Case Studies
Streamlining workflow to save resources and minimize risks in Construction industry