When it comes to building a mobile app, you have a lot of options with respect to the technology you choose. But how do you decide which technology is right for your needs? Do I build native apps or hybrid apps and what are the pros and cons of each choice?
We’ve condensed the basics you need to know to help you make the right choice for your app.
Native apps
Native apps are mobile applications that are purpose built to run on a specific type of device. Most often this means that you are building two separate apps, one for Apple iOS and a second one for Google Android devices. Each mobile platform (iOS, Android) utilizes 100% their own languages and tool-sets.
Pros: absolute full control over every aspect of the application and its interaction with the OS.
Cons: iOS and Android have to be built from the ground up individually. All future features, updates, etc, must be done twice – once for each platform. Supporting two distinct platforms requires more time and cost investment both upfront and ongoing.
Hybrid apps
The term Hybrid app actually describes two further approaches:
Native Cross-Platform
Native cross-platform is the term used to describe when a codebase is written in a single language and then converted into applications that run on both iOS and Android. You have the ability of writing the application once and running it on both platforms.
With native cross-platform you may have the choice of sharing your user interface elements and design between platforms or customizing them to be more native looking. If you think of the difference between going into the Settings menu on iOS vs. Android this will give you an idea of how each operating system has its own take on how apps should look.
Sharing a user interface between devices is the easiest to develop and maintain, but may not always give you the look and feel you want. Remember that customizing the user interface to be native on each platform lets you share business logic between platforms, but your user interface needs to be platform-specific. Instead of 100% shared code, it might be 80% shared / 20% unique, etc.
Pros: applications get “native performance” and possibly a native “look and feel” while sharing most, if not all, the code between them. This greatly simplifies maintenance and updates.
Cons: technically there is an additional layer that sits between the device hardware and the app to allow communication between them. This comes into play if your application needs to talk to the hardware, such as using the device camera, getting a GPS location, or checking to see how the device is being held. However all of this functionality can still be achieved in native cross-platform with the use of plugins.
Some of the technologies used to develop native cross-platform apps include:
- Facebook’s React Native
- Google’s Flutter
- Microsoft’s Xamarin
Hybrid Cross-Platform / Web View
Your app is built using web technologies and run in a special browser window (you can’t tell by looking at the app that it’s using any kind of browser). This makes them the easiest of the 3 to build apps with, and you can actually share elements with your websites.
Pros: rapid development. Almost always 100% shared codebase between platforms.
Cons: visual design is almost always shared between platforms (only an issue if it matters to you), and web-view apps tend to not get as high-performance as you would with the other options. Performance only comes into play in situations where it’s actually needed, eg. Games, complex animations or graphic rendering, heavy mathematical calculations, etc.
There are also multiple technologies to choose when developing web-view apps, including:
How to Decide Which Option is Right for Your Needs
If you are considering building a mobile app for your business you need to first take into consideration exactly what your app needs to do. Once you have that in hand, you can make the best decision between native, hybrid-cross-platform, or web-view depending on your time and budget. You should have a thorough discussion about your options and think not only of the initial build, but also about your long-term plan to support the app in the future.
Having difficulty deciding? Get in touch we’d be happy to help.