So, you’re developing a mobile app. With iOS and Android dominating the mobile operating system market, you’re going to want your app to run seamlessly across both platforms. Do you take a shortcut and build your app using a one size fits all cross-platform framework, or do you invest in building a native application for each platform? Our clients often ask our recommendation, and our answer is almost always: go native.
The Pitfalls of Cross-Platform Frameworks
Cross-platform development tools like PhoneGap, Appcelerator, and Adobe DPS are often tempting upfront. These tools offer a framework that will cover both iOS and Android platforms with a single code base. Sounds great, right? Not necessarily.
It’s a common misconception that using a cross-platform framework will save time and money. The truth is that, while approximately 80% of the source code (in our experience) can be shared across platforms (in the best case scenarios), the remainder of code is filled with conditional checks to determine the platform and takes nearly half the development time to implement. Over time, seasoned native developers can work more effectively than non-native ones, nulling the issue of time savings.
When it comes to design, the guidelines for Android are much different than those for iOS. So, even with cross-platform tools, you’ll still have to design two unique interfaces, making these tools even less effective.In the long run, there is little benefit for user experience, design, quality assurance testing, or oversight roles.
Cross-platform frameworks can also be difficult to maintain and update. Simple changes often have complex consequences leading to unexpected development delays. As a result, these frameworks typically fall behind on cutting-edge functionality with a final product that feels more like a mobile webpage and less like a uniquely iOS or Android experience (and let’s face it, mobile apps have all but entirely replaced mobile browsers).
But are there circumstances when cross-platform frameworks are a better choice? While not necessarily a better choice, cross-platform frameworks can work in circumstances where there are no existing mobile apps and a company chooses to use an internal web development team without native development experience. However, it can still take a great deal of customization to develop a cross-platform framework with a truly native experience. And that native experience pays off.
Why You Should Opt for Native Applications
The benefits of developing a native app on both iOS and Android are seemingly endless. Most importantly: users prefer native app experiences built specifically for their devices’ operating system. Each operating system has its own distinct look and feel, which native apps readily preserve. Sacrificing this familiarity with a cross-platform framework can be off-putting to the user experience. Since users are the reason we’re creating apps in the first place, their opinions are paramount.
When it comes to time to market, cross-platform frameworks initially appear quicker (and in many cases, are). However, this also depends on the complexity of the app – the more complex the app, the greater time to market. Native apps may have a longer initial time to market, but post-release feature integrations and customizations will ultimately reduce time to market over the lifetime of your app. As new features are released, if you’re on a cross-platform framework you’ll be forced to wait for iOS and Android integrations to be created before you can incorporate the feature into your app. On the contrary, native applications offer an expedited time to market: as operating system features are released, they can be integrated into your app as soon as your development team is notified.
Native apps also have the lowest total cost of ownership. The level of effort required – particularly among experienced native development teams – to launch new features and maintain current ones is significantly lower in native applications than in non-native ones, which are not optimized for operating system specific customizations. “Our development team heavily focuses on native app development,” says Eneko Alonso, Hathway’s Senior Solutions Architect and Lead Engineer. “By targeting our focus, we become more productive and can reuse more code knowledge for long-term cost-effectiveness.”
Security of your app is another important factor to consider. Native applications can incorporate patches and security fixes with third-party framework support immediately off the starting line. Non-native apps can more easily fall behind schedule on updates and support, which can pose higher security risks.
Lastly, there’s performance. Native apps are at perfect harmony with their operating system, with fluid user interfaces and top-notch performance. Non-native apps, on the other hand, suffer from middleware software layers to support cross-platform languages and slow, non-responsive user interfaces (specifically when using HTML/CSS). It’s like trying to force a square into a circle – if you rotate and finagle it just right, you might get it to fit, but the fit will never be perfect.
“Hathway has done extensive work with both native and cross-platform mobile app development,” explains Mike Maxwell, Hathway’s Director of Engineering. “What both we and our clients have found is that the benefits of using cross-platform never outweigh the costs in development complexity or the sacrifices to the end-user experience. I compare cross-platform development to a game of telephone; software is a synthesis of layers interacting with each other, and every layer added poses the risk of convoluting your ‘message’ (i.e. the end-user experience). Native development ensures all layers are speaking the same language and working in complete harmony.”
Who Else is Using Native?
If you’re still not convinced that native apps are the way to go, consider the market. Over the past several years, companies large and small have been flocking towards native mobile app development.
After initially launching an HTML5 mobile web based app, LinkedIn moved to an entirely native app. Why? Improved functionality, reduced memory usage, and an overall better user experience. In 2012, Facebook also jumped from HTML5 to a native Android app for similar reasons.
Hathway has also teamed up with a number of clients to develop native mobile experiences. When developing a native Android app to follow BEHR’s ColorSmart iOS app, we re-envisioned functionality and design to take full advantage of Android’s strengths and differences.
Jamba Juice is yet another example of the benefits of native mobile app development. Jamba needed to create a cohesive mobile experience with diverse technologies, including third-party order ahead functionality, a loyalty/rewards API, and coupon code processors. To incorporate these technologies in the most effective and seamless way possible, native was the obvious decision. By developing the Jamba app natively for both iOS and Android, users are provided with the best experience on each platform.
Bottom line: Over time, cross-platform frameworks are more expensive and difficult to maintain compared to native applications. More importantly, native applications provide users with the mobile experience they crave.