Introduction

Mobile app downloads continue to increase year on year. As the mobile industry continues to rapidly grow, businesses have to consider carefully how best to create applications that serve their requirements. Unlike building a web app, mobile apps have a niche set of technical decisions that arise when considering which tech stack is best to use. 

Often these decisions will revolve around deciding which framework best fits the project requirements and design priorities, provides the best app stability and security, and which framework will fulfill the appropriate time to market and budget. Consideration will then need to be given to the available developer resources. There are a handful of options available to consider when making this decision, native apps, hybrid apps, and cross-platform apps.

Native apps - a custom architected house

A native application is an application made for a specific platform such as iOS or Android and uses that platform's language such as Swift and Objective-C for iOS or Java and Kotlin for Android. When it comes to releasing the application it is then submitted to the app store for iOS or Google Play for Android. At this point, it will get reviewed and finally, it can be released.

You can think of building a fully native app a bit like having a custom house architected, you have an endless world of features available. Native applications usually deliver a high-caliber performance with powerful processing, better security, visually pleasing UI, and access to built-in device capabilities such as Bluetooth or the device's camera. 

Some examples of native applications include Spotify and Waze. The trade-off for taking this approach to building an application is that it is also the most expensive and not always the most realistic. When a company takes this approach and they want to release the application on both platforms they then need two separate code bases, likely two different development teams with different skill sets and consequently a much bigger budget. For many companies, this is simply not necessary.

Hybrid - combining both worlds in a web view

The next option is hybrid apps, in many ways, this approach is the opposite of a native application. Instead of having two separate codebases you have one codebase which targets both platforms. This approach essentially combines native and web. Web-based languages such as HTML, CSS, and JavaScript are used for the code which is then wrapped inside of a native shell called a web view. Web views are used to display the content and the code can be reused to run across multiple platforms. Examples of frameworks for hybrid apps include Cordova and Ionic. Examples of hybrid applications include Marketwatch and Sworkit.

Hybrid apps are usually much cheaper to make than native apps. Given the fact the codebase is shared between both platforms, essentially the workload is halved.  This also means maintenance is an easier process. Whilst you will still have to submit the application independently to the Apple app store and Google Play, the fact that both platforms can be targeted at once means you have the opportunity to attract a wider market.  The trade-off with these types of applications is the lower-grade performance and user experience. More security risks may also be apparent and access to device capabilities can be limited.

Cross-platform - something in between native and hybrid

Cross-platform applications can be considered as the middle ground between a native app and a hybrid app. Much like hybrid apps when you create a cross-platform app, you reuse a single codebase that can be deployed across multiple platforms. Instead of using web-based code, it can be compiled natively and the UI is or can be tailored to the specific platform. Whilst this may not be on par with that of a native app, this usually results in a much better performance and user experience than a hybrid application. Improvements in these areas are also ongoing and for companies who do not have endless budgets and/or a smaller development team this can be a more strategic approach to take. 

There are several frameworks to explore but React Native and Flutter are two of the most popular ones. Examples of applications include Facebook and BMW. Cross-platform mobile development frameworks share many concepts and features but the choice made will depend on the individual requirements of the business and there is not a one-size-fits-all solution. In general though as with hybrid applications, due to the code reuse between platforms, cross-platform apps are faster and therefore usually cheaper to deliver than native applications and there are fewer security risks than with hybrid applications. Whilst the performance is still not quite the same as a native app and there is less access to device capabilities, for many businesses cross-platform applications are a good option to consider.

Conclusion

The end decision will be an intricate process weighing up the market, budget, and available resources.  If you have the budget and time, native might be the best path for you to choose. This becomes truer if you need to offer a premium user experience or if security is paramount, for example, if your application is in the banking field. If development cost and speed are at the forefront of the decision then cross-platform or hybrid will likely be a better path to take enabling you to effectively reach a wider market more rapidly.