Native vs. HTML5 App Development
Macadamian Technologies | January 9, 2017 | 7 Min Read
Native apps are generally faster, more feature rich, and offer advanced device hardware support, but they require more specialized expertise. HTML5, on the other hand, offers a familiar development environment to web developers, and the possibility of the write-once, use everywhere convenience of the web, but at the potential cost of the native look and feel.
A crucial decision for healthcare software vendors is whether to use native apps or HTML5. Native apps are generally faster, more feature rich, and offer advanced device hardware support, but they require more specialized expertise, and potentially more time and resources to develop and maintain. Limited code reuse across multiple platforms like iOS, Android, and Windows may cause costs to escalate quickly.
HTML5, on the other hand, offers a familiar development environment to web developers, and the possibility of the write-once, use everywhere convenience of the web, but at the potential cost of the native look and feel or access to the device features that make mobile devices compelling for many users. There is no one unified framework for HTML5 either. Instead, developers must choose between competing offerings like Angular, Kendo UI, Xamarin, JQuery Mobile, Bootstrap, PhoneGap, and others.
There are compelling reasons to have the Native vs. HTML5 conversation with your organization. Many situations still call for native development; however, there can be good reasons to utilize HTML5 technologies. For example, in a remote patient monitoring (RPM) application, the emphasis is on providing patients with exceptional functionality on whatever platform they have access to. Patients using an RPM product care more about reliable access to the application and data than they do in the latest native API offerings. Users like this are more likely to accept a marginal performance penalty.
Arriving at the right answers means asking yourself the right questions about who will use your app, how they will use it, and where the will use it. The answers to these core questions will guide you towards the best development choices.
Six Questions to Help You Choose
Once you’re absolutely sure you know who your end user is and in what context they will be using your app, you can start to consider which is the right hardware platform, software architecture, and development framework to make your application successful and address your user’s requirements.
For example, are you writing a consumer application like a home care solution for patients or a fitness tracker? If so, you should strongly consider iOS and Android, which dominate the consumer market between them. The most successful consumer health solutions engage users quickly and become a part of their daily lifestyle, no different from e-mail or Facebook. Consumers also show that they will quickly reject an inferior user experience, so writing native apps can go a long way to providing the integrated, consistent experience they expect for daily use.
We’ve found that there are six questions you need to think about and address before picking your technology stack.
How Many Platforms Will you Support?
Ask yourself how many platforms you need to support. If the answer is one (you’re working on an application for a defined group that is restricted to one platform and device, iOS, for example) then you probably want to reap the benefits of writing a native app. But if you will need to support two or more platforms, the costs of parallel development and ongoing maintenance could quickly outweigh the benefits of a native app for each, and HTML5 may be the better choice. This is especially true if your app is a non-consumer solution such as a mobile EHR application, where a native experience may not be as critical to the user as things like clinical workflow and customizability.
Will You Support Legacy Hardware?
Will the devices you need to support run HTML5 properly? CSS3 is typically used to give a device-specific appearance, and many older devices lack the ability to properly render full CSS3 effects. In addition, many HTML5 features are not fully supported on all browsers (although that is rapidly changing). These constraints may force you to take a native approach to delivering the expected results and full usability your user’s need.
What is Your Budget?
To refine your options further, ask what you can afford. A tight budget may compel you to use HTML5 although it means sacrificing some features and polish. To sweeten the pot, web development is often more readily available and less expensive than native app developers. But if performance and user experience are important, and you can afford them, then native is the way to go. Just remember that as you add more native platforms to the mix, you need to duplicate that expensive talent to support them.
How Will You Deploy Your App?
For consumer apps, Apple, Android, and Windows app stores are the obvious choice. But if you are developing an industry or institutional solution, the cost of building, packaging, and deploying updates for hundreds or thousands of diverse devices can become overwhelming. Consider a healthcare app that gives doctors and nurses instant access to patient records on tablets in a hospital setting. Every software update that needs to push through an app store could be a logistics headache for IT support. And failed updates could cause some devices to stop talking to the back end. In a case like this, a web-based solution scales better—and is lighter on already overburdened IT departments.
How Much Time Do You Have?
With the right people, the time required to develop on any one platform is roughly the same. However, the development speed advantage of HTML5 multiplies with the number of platforms you will support (design once, deploy anywhere). If you have the luxury of industry-standard development schedules then you might have the time to craft native applications across the board; but if you are under the gun to deliver as soon as possible to multiple platforms, the speed of HTML5 development could be essential to your (and your applications) success.
Do You Need To Access Device Hardware?
The answer to this simple question can have a big impact on your choice of native or not. If the answer is no, then you don’t need the hardware access that comes with native applications. If you need occasional access then there are HTML5 compatible solutions to achieve this, but they do not offer the same full device access, so consider your hardware constraints to ensure you can support this approach. If you need to take advantage of newer native APIs or need always-on hardware access, then you probably need to take the native approach.
Which HTML5 Framework is Right for You?
If, after you’ve weighed all the considerations, you decide that HTML5 is the right choice for your situation, you still need to choose a framework. Some features to look for include a well-structured architecture that fosters organized, scalable development; easy UI customization to ease development of enhanced, branded experiences; a vibrant support ecosystem; and device hardware access.
A Structured Architecture
An object-oriented MVC (model, view, controller) architecture has many advantages for modern healthcare app development. It helps maintain a clean separation of responsibilities, enforces best practices, intelligently organizes the various pieces required to build a modern mobile/web application, and makes it much easier to introduce automated testing.
Strong Theming Support
A rich and modern approach to theming such as SASS (syntactically awesome style sheets) simplifies UI development. Leveraging CSS variables and mix-ins can also help you to create new themes as easily as modifying these variables.
Documentation, Support, and Extensibility
Look for a framework with extensive and current documentation, very active forums, a growing extension marketplace, the option of paid support, and a robust training offering.
A Few Words on AngularJS, Knockout, & PhoneGap
Frameworks like AngularJS and Knockout are excellent for enforcing structure and implementation patterns which help save time and ease maintenance over the long run. AngularJS also helps address specific accessibility requirements with screen readers that are difficult to address with Knockout.
Get Email Updates
Get updates and be the first to know when we publish new blog posts, whitepapers, guides, webinars and more!
Health Information System Integration
In this webinar, we discuss interoperability in healthcare and answer attendee questions on Health Information System integration. Download the webinar Now.Read More
Guide to Creating Engaging Digital Health Software
This guide shares our knowledge and insights from years of designing and developing software for the healthcare space. Focusing on your user, choosing the right technology, and the regulatory environment you face will play a critical role in the success of your application.Read More
Accelerate Time To Market Using Rapid Prototyping
In this webinar, you will learn how to leverage rapid prototyping to accelerate your products time to market in one week, agile sprints.Read More