Whilst we once celebrated the bold, innovative disruptors of the world, attention is now turning to the creaking, corporate dinosaurs for whom digital transformation is rapidly becoming essential to survival.
This pressure to succeed in digital is leading to widespread concern that the wrong investment could present an insurmountable amount of technical debt. Subsequently, this pressure is leading to a ‘digital fear’ as organisations are repeatedly caught in the headlights, making poorly informed or non-existent decisions.
Digital frameworks: a buzzword conundrum
One of the biggest contributors to this fear is the buzzword conundrum of which digital framework to invest in: Native, Cross-Platform or Hybrid?
Before exploring how to make the right choice, let’s first of all clarify what we mean by all three:
Meaning: Apps utilise the natural programming language for the chosen platform (iOS/Android).
Pros: Highest performance; full access to native features; fully documented; large community; access to new platform features immediately
Cons: No sharing of code between platforms; one developer per platform
Pros: Near to native performance; sharing code between platforms (mobile and web)
Cons: Platform specific code may have to be written in native programming language; new platform features are not accessible immediately; code reuse is often lower than first expected
Meaning: Apps are also developed Cross-platform by the UI is rendered using an embedded web browser
Pros: Sharing code between platforms
Cons: Few or no native UI elements; new platform features are not accessible immediately ; performance and animations can be slower due to being rendered in the embedded browser; code reuse is often lower than first expected
Facebook and Google are behind the hype
Unsurprisingly, two technology behemoths are behind the recent interest: Facebook and Google. Facebook released a new cross-platform language to the GitHub community back in 2013 called React Native. It has generated a lot of excitement around its speed, open-sourced community and ability to do away with the need for separate iOS and Android developers.
As for Google, they have been backing web-based applications called Progressive Web Apps (PWA). PWAs behave and look like apps without the need for precious storage and multi-disciplined teams to provide ongoing maintenance.
Also, being web-based, a PWA strategy aligns itself better with either Hybrid and Cross-platform approaches. Whilst the current functionality on offer is some way behind that of an app but, with Google backing it – is it just a matter of time?
The options clearly need to be taken seriously. So how do you make the right choice?
The most important thing when choosing any toolset is that it is fit for purpose. The five themes below explore the considerations you need to make when deciding what your purpose is:
Will the quality be impacted by my choice?
This is perhaps the biggest thorn in the side of the Hybrid and Cross-platform. Native development has long been the benchmark for quality and integration of the latest features such as AR Kit or Face ID. This makes sense when you consider that the respective codebases are written and maintained with the latest operating system updates in mind.
It’s also rather telling that over the 10,000 hours of Hybrid or Cross-platform development experience we’ve had, we’re yet to see a Hybrid app which can boast the same level of quality as Native.
However, that’s not to say the newer approaches don’t have a place. Apps requiring a simple user interface and low complexity features could benefit immensely from Hybrid or Cross-platform approach. And if this is what your users need, ultimately that should be all that matters.
It’s also worth noting that the newbies are catching up. They have amassed loyal followings in recent years who are willing to share approaches to working with the latest features via open source platforms.
Anything is possible with technology, but with Native, it’s all been done before. Developers taking on Hybrid and Cross-platform could well find themselves in uncharted territory, and whilst a solution may be found, it’s virtually impossible to estimate how long that could take, and how robust it will be.
What’s the best option for speed?
Hybrid and Cross-platform are credited with faster development because of the efficiencies which can be realised by sharing code and not writing both apps separately (see the below example for React Native):
That being said, the initial business logic does require more thought as a developer needs to have knowledge of both iOS and Android, even if they only write it in one language.
There are also several stories of apps, built as Hybrid or Cross-platform, which have required months of work to integrate simple third party services which would have taken days had the apps being developed Natively.
Ironically, it seems as though exploration of newer development approaches are actually best for those where speed is not of the essence. You may get a platform which is as good as it’s Native counterpart, but there’s little evidence to suggest you’ll get it quicker (just yet).
Is Native more expensive?
Whilst everyone would like to make decisions based on quality alone, the reality is that cost is always high on the agenda. It’s the biggest driver for nearly all the prospective clients who we advise and it’s often the biggest mistake companies make.
The theory would suggest that Hybrid or Cross-platform approaches don’t require the same level of duplication as building apps for iOS and Android. There would appear to be less code written, therefore less effort and ultimately less cost.
Whilst this is true to some extent, the below diagram showing Xamarin’s code-sharing capability shows that the benefit is minor:
Not only is the only real benefit the business logic, but the like-for-like comparison assumes that the Xamarin developer doesn’t incur any difficulties during the build.
Given that they are using a less well-tested approach and may not be a platform specialist themselves, this is a dangerous assumption to make.
Get it right, with the perfect use case and with the best developers and you could see some cost savings. Get it wrong, however, and you will almost certainly incur unaccounted for cost.
How should ongoing support affect my choice?
One place where you could reap cost benefits is with ongoing support and maintenance. This is because the code sharing possibilities of Hybrid and Cross-platform does mean that a single discipline could support both your apps (and website).
This should cost you less or at least simplify your hiring process (great for those with in-house ambitions).
But there is a slight risk here. Although the likes of Facebook are unlikely to stop supporting their own language, it is a possibility and the effect on ongoing support would be catastrophic.
Also consider availability of resource in your location. Particularly if you are looking to move towards an in-house model, speak to recruiters and be realistic about what talent you can attract to your area.
‘Find out who you are. And do it on purpose’
I’ve chosen to conclude, rather bizarrely, with the above quote from Dolly Parton. The simplicity of her two-point plan is exactly what decision makers should be striving for to cut through the complex web of options.
Whilst there is a right answer to which approach you should take, that answer is entirely dependent on the bespoke needs of your customers and business.
And once you understand that, match your business to the factors outlined above and commit with purpose to a suitable framework.
The future certainly looks bright for both Hybrid and Cross-platform but Native isn’t going anywhere, and newer isn’t necessarily better.