In the seemingly eternal battle for mobile domination, campaigns are waged on multiple levels.
However, while most people are well acquainted with the public squabbles of Apple and Samsung, in the background, a much more subtle contest takes place, as programmers and CEOs scuffle to determine the best technology for mobile app development.
Understandably, to the technically disinclined, it may come as a surprise that not all apps are built natively. Yet in reality, not only are alternative technologies extremely common, but there are many valid reasons for putting them to good use.
A Cornucopia of Options
Beyond iOS’ native ObjectiveC and, Swift, and Android’s own version of the Java programming language, software engineers are able to create apps using web technologies like HTML5, or hybrid solutions that include both web and native components, such as Flutter, PhoneGap, React Native, the Ionic framework, among others.
With every case, it is important to be aware of the strengths and weaknesses that will serve to aid companies in their final decision.
The Native Powerhouse
When it comes to native technologies, the advantages are as well established as they are manifold. Because there is no discordance between code and operating system, the method provides arguably the best performance and user experience, as all applications are blended seamlessly with their respective user interfaces.
Native applications are also granted full access to the platform’s APIs, which allows them to make use of trendy features like push notifications while simultaneously leveraging built-in components (e.g. the device’s camera and GPS). For games, this is also the most appropriate method for development, as the use of native frameworks in the likes of Apple Metal enable hardware acceleration, allowing graphics to be rendered faster and the system to behave noticeably — and consistently — more responsive.
Yet in spite of all these benefits, native app development is certainly not for everyone.
Two applications, not just one
Because iOS and Android use very different programming languages, design and user interface guidelines, companies wishing to ensure cross-compatibility are forced to develop two apps instead of just one. This generates higher costs and results in a much slower time to deployment, as by very necessity, it requires more developers with a wide variety of skills.
It is claimed, for instance, that Facebook employ 300 software engineers to build their native iOS applications, and 100 others to develop their Android counterparts.
The Versatile Web Solution
To address these concerns, a feasible alternative is to make the most of web technology. Using the popular HTML5 language, for example, we are able to create websites that can closely mimic mobile applications. This approach should greatly reduce expenses because qualified developers are readily available, and users, in turn, are given the ability to access applications from the comfort of any connected device.
Furthermore, web applications also benefit from using the same stack of technologies for both their web and mobile incarnations, and the same applies to the server side.
Restricted access to native features
Unfortunately, however, the technology has its own set of drawbacks. In addition to prohibiting the use of native APIs, pure HTML5 solutions will also bar companies from the coveted app stores.
That being said, recent innovations in web technology have led to the creation of so-called browser APIs. These are slowly bridging the gap between HTML5 and native applications. Application programming interfaces such as getUserMedia, for instance, now enable access to mobile device cameras, though this is still far more likely to be supported on the desktop.
Another disadvantage is the fact that web applications tend to be somewhat slower and less intuitive than their native equivalents, resulting in lower user satisfaction ratings and additional negative feedback.
The Hybrid Approach
Hybrid solutions aim to solve all these problems by joining the best of both worlds. In essence, companies can choose to design mobile-friendly websites that are later repackaged into native applications. This enables apps created with current web technologies to gain broad access to native APIs, ensures cross-compatibility, and even permits distribution via the App Store and Google Play.
Not all butterflies and rainbows
While the battle for mobile app development shows no signs of waning, Software Planet Group come armed with a deep understanding of each of these systems. So to summarise it all, let’s take a look at the helpful table below:
The best performance
Native Ul from the start; no need for workarounds or any other attempts to mimic the original user interface
Full access to all APIs
Most appropriate method for game development or intense data processing apps
Latest OS features are immediately available upon release
Better battery efficiency
May also be accessed via a desktop interface
Some access to native features
Developers are readily available
More affordable than native development
Same code-base may be used to develop both Android and iOS applications
Simple and convenient
Hardware functionalities are processed by the appropriate platform
Supports distribution via the App Store and Google Play
Arguably slower and less intuitive
No access to native APIs
Restricted publishing to official app stores
Converting to native code may be unstable at times
High learning curve
Does not support all native APIs
In 2018, by the way, an alternative hybrid solution definitely worth checking out is Kotlin/Native, a newer technology that not unlike React Native, enables companies to compile applications to native iOS and Android binaries and thus can greatly speed up development.
But of course, just like the choice between an iPhone or Galaxy S, in the end, no amount of wrangling can determine the best of these technologies, as they are each to be judged on a case-by-case basis.
At SPG, however, we stand ready to evaluate your company’s unique situation and make your business the final victor.