It is no longer a question of “should I build a mobile app?” Digital businesses have begun to realize mobile app development is necessary to not only stay competitive, but to achieve customer satisfaction. Customers are accessing information on a huge variety of devices, and have come to expect a high-quality, mobile-friendly user experience.
“Consumers, users, and employees are now all used to a consumer mobile app experience,”said Javier Perez, product director for the Axway Appcelerator, a mobile app development framework. “Everyone is accessing social media, news and more on their mobile devices, and they demand the same if not better experiences as they would get on the web.”
With all the options available to developers, the question now is “how should I build a mobile app?” There are a number of different paths a business can take to develop applications — native, web and cross-platform. However, one approach in particular is leading the mobile race.
According to the Ionic Developer Survey 2017, hybrid app development is taking over. The report revealed that 32.7 percent of responding developers plan to abandon native app development in favor of hybrid. In addition, the survey found a nearly 700 percent decrease in developers building exclusively with native tools.
“The broader trend is that hybrid development is gaining traction, while the native approach is waning,” the report stated. “We think that makes sense. The benefits of hybrid are obvious. And as the web evolves, there are fewer and fewer reasons not to adopt.”.
The hybrid app advantage
A hybrid app is essentially a native app, Ionic’s CEO Max Lynch explained. Hybrid apps are downloaded from an app store similarly to native, and can access native feature such the GPS, camera, contacts, accelerometer and sensors. The difference is that native require proprietary or platform-specific languages such as Swift, Objective-C and Java, while hybrids utilize web technologies — JavaScript, HTML and CSS. By using a webview wrapper, such as Electron or Apache Cordova, which enables the app to call into the device’s native features, web developers can use their existing skill set, whereas in a native approach they would have to learn a new set of skills.
“If you are a web developer, not only do you know how to build browser applications, but you love the web platform because you can use the same skills to build an app for iOS and Android,” said Lynch. “Hybrid apps are really about embracing the web and making it work for mobile.”
This hybrid approach allows businesses to tap into a readily available talent pool, according to Paul Francis, product manager for the BHW Group, a mobile app development solution provider. Lynch noted that the web developer community is 30 times greater than the amount of native app developers out there.
“When you ship a hybrid app to an app store, you are still shipping a native solution,” Lynch said. “Hybrid apps uses native SDKs and it calls native code. They are much more similar to a traditional native app than people realize.”
While it may seem that a hybrid app is just a native app in disguise, it is a lot more cost-effective to build a hybrid app than it is to build a native app.
If a company wants an app to target multiple platforms, using the native approach it would have to develop multiple different codeases and maintain all those codebases every time there was a new update or new functionality added. It ends up being twice or three times the work and double or triple the cost, according to Axway’s Perez.
Hybrid apps allow developers to leverage a single codebase, according to Sandeep Adwankar head of products for Sencha. “Developers use the best of the web, which is HTML, CSS and JavaScript, and have a single codebase to create apps. What that means as a company and as a developer who wants to develop apps is less development costs and faster time to market.”
Now, if a company already has a web application that is mobile responsive, but wants to launch a mobile application, the web technologies make it very easy to convert it to a mobile app using a hybrid approach, according to Francis.
“Since businesses have already created a web app, creating hybrid apps is much easier and the lower friction option because the codebase that they have on the web app is the same as the hybrid apps, and they can make certain tweaks to the look, feel and design,” said Sencha’s Adwankar. “In terms of look and feel, developers know the best of the web and how to create a web app that looks fantastic.”
This makes it very easy for a company to test the mobile market by porting their existing web app to a hybrid configuration. If it works, then a company can decide if it wants to build a more polished hybrid app or build it with one of the traditional platform specific approaches, according to the BHW Group’s Francis.
The different approaches to mobile app development
A native app, according to Javier Perez, product director for the Axway Appcelerator, is an app that is developed in a platform-specific programming language. For example, Swift and Objective-C are used to create iOS apps, Java is used for Android, and C# and .NET are used for Windows.
According to Max Lynch, CEO of the Ionic framework, a hybrid app is an application that works in an embedded webview, but can access the same functionality of a native app. “There are no limitations,” Lynch said. “A hybrid app is just as capable as a pure native app. It just happens to do more of the work in a webview.”
Hybrid development is an approach or subset of cross-platform development. Cross-platform apps provide a native experience and similar to hybrid apps, enable developers to utilize one codebase across different devices, but it does not work in a webview.
Progressive Web Apps (PWAs) are powered by web technologies and can be as engaging as hybrid and native apps, but they run in the web browser rather than having to be accessed through the app store, according to Sandeep Adwankar head of products for Sencha.
Hybrid app shortcomings
Despite the cost savings, Francis said hybrid app development does come with same drawbacks.
While the BHW Group has never pursued a hybrid app that failed, Francis said, there are always some concessions the team has to make just by the nature of using a hybrid approach. “It will be something like our designers or clients will say it would be really cool if the app did this, or when I perform this action it would be great if this animation occurred, and often times we just have to say this is something a hybrid app can’t do or it is really cost-prohibited,” he explained Platform-specific native, while more expensive, provides a general level of polish that the hybrid approach is never going to be able to match, according to Francis. Hybrid apps tend to be more sluggish than native apps and the animation isn’t going to be as crisp. Developers can spend extra time to add polish to a hybrid app, but it can be very time-consuming, Francis explained. Businesses need to think about the application’s future to decide whether a hybrid approach is really going to be the most cost-effective in the longer term. “The biggest thing is just understanding the roadmap for the product, not just the minimal viable product, and evaluating 2.0 or 3.0 product viability as a hybrid app, not just looking at the price tag of the initial build,” said Francis.
According to Todd Anglin, vice president of product and developer relations at Progress, performance is the most common issue when it comes to hybrid. “The performance problem is caused by the way a hybrid app works: it simply embeds a mobile browser window in a native app shell. All of the code in a hybrid app then runs in this embedded web view, including the UI, which is still based on HTML. Because all of the code is running like this, what often happens is that hybrid apps ‘stutter’ — that is, they don’t render at the smooth 60fps that gives mobile apps their responsive, quality feel.”
However, Ionic’s Lynch said the emergence of performance APIs and powerful hardware is making the performance issues between hybrid and native barely noticeable.
Francis added that native functionality and inner operations integrated within the device are easier to do with native because the platform exposes the data for developers whereas in a hybrid approach, developers are typically waiting for someone to create an open-source library that bridges the gap. “If you want to use the latest and greatest OS features, that is going to be harder in a hybrid app,” he said.
The same goes for newer technologies, according to Axway’s Perez. For example, virtual and augmented reality are a big consumer trend at the moment and platform providers like Google and Apple have developed their own libraries to support that functionality. With hybrid, developers have to wait for the support to come, he explained.
“What we find in general is that the tradeoff a company is willing to make is that they want to optimize for building the app quickly and having a great experience. This is generally data driven apps, social network apps and business apps, and these use cases fit really well with hybrid,” said Lynch. “If developers are building a game, anything that is computationally intensive or incredibly animation driven, they are going to want to have full control with a native app.”
Lynch thinks there is often a debate between developers because native developers don’t want to see hybrid apps replace what they do professionally. Web developers just want to build for mobile and not have to learn a completely different background or skillset, he explained. Additionally, hybrid development was harder in the past because there were no frameworks like Apache Cordova or Ionic providing components and libraries to help. Developers used to have to build things from scratch, Lynch explained.
However, Francis stresses that businesses and developers should not pick sides. There is a place for each approach in the mobile space and a reason to use any of them for any given project.
For instance, hybrid apps are going to be better suited for less consumer-facing apps such as internal-use applications that are used more for business and have fewer flashy features and more social interaction.
LeanIX uses a mix of hybrid and native development within its company. According to Andre Christ, CEO of SaaS company Lean IX, the more high-level functionality is implemented in a native way so it doesn’t impact the user experience while other functionality that requires little to no integration is implemented in a hybrid way. Christ explained that the company has learned to design for mobile first in the web application early on. “You can’t just reuse the web content you produced. You always need to adjust the views and the performance, and collaborate between your mobile and internal web application development teams,” he said.
How Progressive Web Apps (PWAs) compare to hybrid apps
Consumers today are experiencing an app fatigue, according to Sencha’s Adwankar. It is becoming exhausting and a nuisance for consumers to have to go through the process of going to the app store, looking for an app, and waiting for it to download and install. They want to access it right away, Adwankar explained.
To battle this fatigue, Progressive Web App (PWA) technologies have started to gain mainstream adoption. “PWAs are fast, integrated, reliable and provide immersive web experience across all device form factors,” said Adwankar. Similar to hybrid apps, PWAs are powered by web technologies and provide an immersive full screen experience. The difference is that they are accessed through the browser and can be installed on the home-screen without having to download it from the app store.
“Both PWA apps and Hybrid apps share common JavaScript-based source code across variety of platforms — web, android, iOS, and hence are easy to enhance and maintain,” said Adwankar.
PWAs complement hybrid apps because they are built on the same technologies and share common source code across variety of platforms. Because of the common codebase, it is very easy for developers to build and support PWAs from their hybrid apps, Adwankar explained.
According to Todd Anglin, vice president of product and developer relations at Progress, there are a variety of instances where a developer should choose a PWA over a traditional mobile app:
- They don’t need a lot of access to native device APIs
- They don’t need secure/encrypted on device storage
- They don’t need to distribute their app via the traditional app stores
- They don’t need the app on the iOS home screen
- Their app is largely content discovered by search (think: news, articles, etc.)
- They’re looking for the fastest way to reach the largest number of people (inherent benefit of the web)
“If developers do have some of the above requirements, then they should clearly continue to build a mobile app,” Anglin said.
In the 2017 Ionic Developer survey, 31.5 percent of respondents revealed they are targeting PWAs. “Developers building hybrid apps and PWAs are taking advantage of the single most adopted, tested, and dominant technology stack in the world: The Web,” the report states.
Control is also a factor in the rise of PWAs, according to Ionic’s Lynch. PWAs provide the same control developers had back when they were just deploying websites. They did not have to worry about a gatekeeper, they were able to push updates as much as they wanted, and they could manage the whole process themselves. Lynch adds PWAs are going to work well for companies who already get a lot of traffic through the web. “Let’s say you get a lot of Google search traffic, instead of risking pushing those search users to the app store and possibly losing them, PWAs open to a quality mobile app experience without having to download the app and store it on your phone,” he said.
Eventually, PWAs could replace hybrid apps, but that is a long ways off, according to the BHW Group’s Francis. “PWAs are kind of a way the web is trying to win back the mobile battle, it is just going to take a while because with the web you have to wait on all the browser updates and support,” he said. “Most people don’t even know you can install a webpage to your homescreen on your phone. So in a world where browser support and consumers understand how they work, I could totally see PWAs replacing hybrid apps because they effectively do the same thing. It is just that you don’t need that wrapper and you don’t need to submit PWAs to the app store.”
Why hybrid did not work out for Progress
There is no hybrid vs native debate anymore. Both app development approaches have their own merits and have a place in mobile app development. However, sometimes there is a clear winner for your business depending on the organization’s overall strategy.
Paul Francis, product manager at the BHW Group, a mobile app development solution provider, says companies need to look at the long term implications when developing applications. While hybrid may be a cheaper choice, native might be cheaper over time depending on the features and updates mobile app developers will have to add. Progress, an app development and deployment provider, was determined to use a hybrid approach with its Telerik Platform, but learned along the way its developers would be happier working in a native environment.
“After working with thousands of developers building mobile apps on Telerik Platform, we kept seeing developers run in to the same problems with the underlying hybrid technology,” said Todd Anglin, vice president of product and developer relations for Progress.
Those problems included performance issues and difficulty accessing native device APIs.
“Our first effort was to try to fix these problems in hybrid, and we spent a lot of time doing that, but it became increasingly clear that hybrid hits hard walls due to its reliance on an embedded browser window. This is all made worse by the mobile operating systems (especially iOS), further enforcing performance constraints on these embedded browsers, making them even slower than the ‘normal’ mobile web browsers. Needless to say, we saw a lot of developers struggling to deliver the quality mobile app their users expected due to these hybrid problems,” said Anglin.
In the end, the company moved to a more native approach, but using web technologies. This led to the development of the NativeScript open-source framework. NativeScript was designed to reuse web skills and code to produce native apps for iOS and Android.
According to Anglin, NativeScript and other JavaScript-driven native alternatives like React Native in many ways can be seen as the next generation of hybrid app development. “With the rise of JavaScript-driven native alternatives… there is simply a better path for developers with web skills that want to create a mobile app,” Anglin said.