The choice between building a pure native mobile app to run on either the Android or iOS mobile operating systems or a cross-platform web app that runs in a browser is one of the first big questions to be answered before any mobile app development project can begin. This is a brief introduction to the pluses and minuses of the two approaches. Which best fits the needs of your next project –native vs web apps?
Native mobile applications are developed on the unique codebase of the operating system (OS) the app will run on–Android or iOS. If you are building two native apps, one for Android devices and one for iOS devices, you work with different SDKs (Software Development Kit) and programming languages in parallel – usually Java or Kotlin, and sometimes Python, C# or C++ for Android and Objective-C or Swift for iOS.
A native mobile app only runs on the OS it has been built for, which means the app will have to be recreated from scratch if you want or need to make it available to both iOS and Android users.
Can We Help You With Your Next App Development Project?
Flexible models to fit your needs!
That’s the downside – you will need to fund two separate software development teams to build, iterate upon and maintain your iOS and Android mobile apps. That means dedicating more resources and, ultimately, accepting significantly higher costs.
Much of an app’s UI/UX and design work can be replicated between iOS and Android versions but two entirely different codebases in different languages and using different tools need to be created. And ultimately, it is the development rather than design work that accounts for the lion’s share of costs associated with first building and then maintaining and iterating on an app.
But many app owners still prefer to take on the additional cost and allocation of other resources that developing both native Android and iOS mobile apps. Why? Native apps also offer advantages that, in some circumstances, are judged strategically significant enough to swing the balance.
Native apps have an edge on hybrid equivalents when it comes to performance for a few reasons. The first is that they harness the processing power of the device, usually a smartphone or tablet, they are designed to run on, rather than rely on a browser. For simple, light apps, the resources offered by a modern browser can be more than enough to provide for a great user experience. But for heavier apps that use a lot of resources, being able to tap directly into a device’s processor can make a meaningful difference to performance or even be necessary.
Processing power is not the only dependency a mobile app can have on device hardware. Many apps also, for example, make use of a mobile device’s camera. Touch ID (fingerprint security), microphone, GPS and accelerometer are other device hardware elements an app may need to work with to offer its full range of functionalities.
Because native mobile apps run directly on a device’s OS, they can more directly connect (via APIs) to the different elements of its hardware. The benefit of that is especially pronounced for iOS apps because Apple designs both its hardware and OS in a closely integrated way. The Android OS, meanwhile, is a Google product and runs on the hardware of many different brands of mobile devices, from Samsung to Huawei and HTC. The OS is still usually well integrated with the hardware but not quite as perfectly as is the case with Apple products where the OS and devices are both developed by the same company.
Web apps can still access and make use of a device’s hardware but have to do so through an additional layer of abstraction because they run on a browser, which runs on an OS, which is overlaid on the hardware. Workarounds are required and do have an impact on performance, to a greater or lesser extent depending on the hardware demands of the app’s functionality.
However, if the app being built doesn’t need to access and work closely with a device’s hardware, the difference between a native and hybrid web app can, thanks to improvements in contemporary browsers, be negligible when modern hybrid frameworks like React Native or Flutter are used. However, a native app will still usually be the better option if the app does need to work closely with the hardware of the devices it will run on.
A further addition to the pro column in favour of native vs web apps is that the former can run asynchronously. In layman’s terms that means dynamic information is stored locally on the device itself and updates by syncing with the information stored on a server. Modern frameworks like Flutter and React Native and features of the mark-up programming language HTML5 now go a long way to enabling web-based apps achieve something similar. However, native apps still have an edge here.
A sometimes overlooked additional strength of native apps is the distribution and accessibility advantage of being eligible for inclusion in official app stores – Android’s Google Play and Apple’s App Store. These two app libraries, which account for the lion’s share of app downloads globally, only permit the inclusion of native apps. An app being available in Play, the App Store, or both, makes it easier for users to access and install and can hugely increase download numbers for apps that target the general public as users. An app’s inclusion can have a big say in its relative success, especially if addressing a competitive market.
The downside to a native app being distributed through either Play or the App Store is that Google and Apple subsequently take a significant cut, typically 30%, of any income generated by an app over the entire history of its use.
The advantage of native apps is they typically provide for a faster, smoother and more reliable user experience when functionality is more complex and resource demands are high. They also benefit from the distribution and popularisation advantage of being eligible for inclusion in the official Android app store Play and Apple’s App Store. The downside to native apps is usually higher costs and time-consuming development, especially if both Android and iOS versions are to be developed.
When does IT Outsourcing work?
(And when doesn’t it?)
As previously mentioned, web apps, also sometimes referred to as cross-platform apps, run on a browser and are, as a result, device agnostic. The app will run in the same way regardless of whether it is accessed from a device with an Android or iOS operating system.
However, the most contemporary web app development technologies allow for something of a halfway house between traditional web and native apps – hybrid apps, also referred to as progressive web apps.
There are also tools and frameworks that can be used to develop an app in a different programing language than that native to the platform. Upon packaging, code is converted into native platform code. This approach simplifies app development for both Android and iOS and also means a single core app can be configured for both operating systems. Adjustments and a degree of fine-tuning do have to be made between Android and iOS versions but the bulk of the codebase.
The most popular technologies for developing hybrid apps are Flutter and React Native followed by Ionic. These technologies allow for almost the same level of performance as native apps in many circumstances (less so if the app interacts closely with the device’s hardware) and provide tools for testing and tracking app operations.
The tool choice isn’t quite as diverse as it is for Android and iOS native mobile development. Limited access to open-source libraries is among the shortcomings of wrappers but the most popular open-source options like the three mentioned are quickly catching up.
Hybrid or progressive web apps (PWAs) offer a combination of the strengths of native apps and traditional web apps (WebView covered in the next section) as well as, inevitably a combination of their weaknesses. Let’s first address the strengths of the hybrid PWA approach.
While more expensive to develop than standard web apps, a progressive web app will still be significantly cheaper to build than native apps. They are built using web development technologies more developers are familiar with, making it cheaper and easier to hire a development team. And because the majority of the code base of hybrid apps able to run on Android and iOS is the same, only one main build is needed. And one development team will in most cases handle both versions of the app.
Progressive web apps built using the modern frameworks of Flutter, React Native and Ionic overcome many of the disadvantages associated with the ability of web apps to efficiently make use of device hardware. Hybrid apps still fall short of native apps in this regard but if especially close and intensive use of device hardware is not integral to the app’s functionality the difference in speed and reliability can be minimal.
The speed of a hybrid app is still reliant on the browser it operates on which means it can never be quite as fast and responsive as a native equivalent. But if a high-quality hybrid app is not especially heavy the difference can also be barely noticeable with a fast internet connection.
The App Store and Google Play both now admit high-quality hybrid apps alongside native apps. They are, however, pickier when it comes to hybrid apps and pay close attention to quality and performance before giving them the green light.
Most of the cons have already been mentioned alongside the strengths of PWAs. To briefly recap, they are:
The Apache Cordova framework was created for this approach. The open-source framework provides a set of tools and plug-ins that allow easy packaging and development of traditional web apps. It also offers a rich choice of interfaces for communication between WebView sessions and platforms, which allows these apps to use hardware features like the camera, though performance cannot be expected to match native alternatives when working with the device’s hardware. But again, a cross-platform app can be developed for Android and iOS on just one codebase, optimising development costs.
A weakness of WebView apps is they are often restricted to a generic interface have limited access to the device’s hardware. Interactions with mobile hardware are possible only via plug-ins. Web apps can be a good choice for content-serving websites for which a smoother mobile experience than provided by simply a responsive web page is a strategic requirement.
Check out our case study for Viabuy, an e-payments platform we built a hybrid app for using React Native. By adding K&C custom plug-ins to RN standard features, we’ve got an app UI and operations that are totally native. Just take a look: the K&C team managed to create a custom Android plug-in for the fingerprint feature, which worked perfectly on almost every device available on the market. And we’re ready to use our experience to go even further.
We hope this concise overview of native apps vs web apps has offered you useful insight into the use cases and respective pros and cons of the different approaches that can be taken to mobile app development. Whether a native, hybrid or traditional web app is the right strategic choice for your development project will depend on a combination of technological and business priorities.
A simple WebView app, done well, can offer a great user experience under the right circumstances. But for other apps, it simply won’t cut the mustard. A hybrid app might. Or native apps could be the way to go. You should now have a clearer idea of which approach might be optimal for you.
If you would like to discuss your next mobile development project with us, we’d be delighted to offer you further insight into the approach and tech stack our experts think will optimally realise your next app. Get in touch!
K&C - Creating Beautiful Technology Solutions For 20+ Years . Can We Be Your Competitive Edge?
Drop us a line to discuss your needs or next project