While we recommend that those of you who are new to the world of mobile application development consult an individual or team of mobile experts before committing to an approach, we put together this post as a primer on the differences between native, web and hybrid mobile apps.
Types of Mobile Apps
In a nutshell, native apps are built for and deployed to a specific mobile operating system, which is almost always Google’s Android or Apple’s iOS. Mobile web apps, on the other hand, are built to run in a mobile web browser such as Apple’s Safari or Google’s Chrome browser. And as the name implies, hybrid mobile apps combine aspects of both.
Pros, Cons and Fit
Now that we have basic definitions down, let’s take a look at the factors that help determine which type of mobile app is best suited for your needs.
Whether it’s shoes, cars, electronics, or any number of products, those that are purpose-built almost always perform better than those that serve a more general function, and native apps are no exception. But like any other product or service, better performance rarely comes without a premium.
- They’re typically faster because they are tightly integrated and communicate directly with the device’s operating system rather than having to work through an intermediary web browser.
- They don’t require an Internet connection to function, which can improve both security and allow "offline" access until an internet connection is available.
- Integration with the operating system allows for direct access to the device's onboard sensors such as the camera, GPS, and accelerometer (although many of these calls are now open to the browser).
- In the case of iOS, designers and engineers can control precisely how the app renders on the device.
- Also specific to iOS, designers and engineers can provide a significantly richer user experience by leveraging Apple’s built-in UIKit.
- When leveraging these richer user experiences, native apps can yield higher rates of user engagement, volume, and adoption.
- While it generally takes longer and costs more to build a single native app than a web application, much of the higher cost can be attributed to separate applications required to be built for each operating system and form factor. Those wishing to cover iOS and Android phones and tablets must build four versions of the same app. At Dialexa, we usually build on one operating system and form factor until we know the product works to reduce rework on multiple mobile platforms.
- Native apps can only be distributed via their official marketplaces (Google Play and the Apple App Store). They must undergo technical and content reviews to ensure that they adhere to each brand’s terms of service before being published. This can limit both the nature and content of apps and adds to the time it takes to publish an app or to easily iterate improvements or bug fixes.
- Software engineers must be trained and have experience working on a specific platform, making them typically harder to find.
A native app might be the best fit if:
- budget and time-to-market aren’t your primary concerns
- you require a highly polished and immersive user experience
- you need granular control over screen rendering across devices and platforms
- you want to monetize your application easily
- rich animation is required
- you’re building an entertainment-focused app
- the app must function without an Internet connection
- the app makes extensive use of the device’s onboard sensors
- users are likely to interact with the application frequently
Mobile Web Apps
While mobile web apps still have a ways to go before they can match the capabilities of native apps, recent years have seen great strides toward providing a more “native” experience within the browser. Modern HTML5 and client side scripting has made nearly all functionallity available in the browser.
- Because they run on the Web, distribution and updates are as simple as publishing a website, freeing the developer from time, content and technical restrictions imposed by the native marketplaces.
- The same front-end code can be used to produce applications that render and perform well across multiple operating systems, browsers and devices (including desktop), which can greatly decrease cost and time-to-market.
- Because the foundation of web technology has been in place for over 20 years, it’s easier and less expensive to find web developers than native app specialists (as more functionality is moving client side, this is becoming less and less true).
- Your application automatically gains a "desktop version" if it is designed correctly for a normal desktop screen.
- There is diminished access to the device’s onboard sensors.
- The user experience is typically less capable and can vary across device, operating system and browser combinations.
- There is limited support for animation.
- The user must have network connectivity.
A mobile web app might be the best fit if:
- budget and/or time-to-market are your primary concerns
- you want to deploy on a desktop browser
- you want to avoid fees imposed by the app marketplaces on paid apps
- the app will be updated very frequently or needs an iterative approach to design and engineering
- compatibility with a large, unknown and/or highly variable set of devices is required
- content and/or functionality is not allowed by one or both of the app marketplaces
- users will always have network connectivity
- the app is transactional (vs. for entertainment or media consumption)
- They’re generally less costly than native apps.
- They can provide some of the benefits of native apps, such as access to the device's sensors.
- They use common web programming languages, which eliminates the need to develop and maintain the same product on each operating system.
- Updates can be implemented by pushing the changes to a web server, thus eliminating the need to go through the app marketplaces' update approval process.
- They can be built by web developers rather than native mobile specialists.
- While some updates can be implemented without submitting a new version to the app marketplaces, the app is distributed through them and must pass the same initial approval process as native apps.
- Many of the display-related limitations inherent to mobile web are present in hybrid apps.
A hybrid app might be the best fit if:
- you want to distribute your app via the app marketplaces but don’t have the budget or time to build a native app
- you want to monetize the application via the app marketplaces
- access to the device’s onboard sensors is required, but rich animation and granular control of screen rendering isn’t
Choosing the Right Approach
We hope that you leave this post feeling better able to decide on your mobile platform strategy. It can be a lot to absorb and understand. Nothing above is a hard rule. Here is a set of questions to help you evaluate the decision:
- Which mobile platforms do you need to be on?
- How important is the “wow factor” to the product’s success?
- What is the product or solution's required time to market?
- What budgetary constraints are you facing in terms of both initial development and maintenance?
- Does the app need to be distributed or monetized via one or both of the app marketplaces?
- How important is access to the internal capabilities of the mobile device?
- Do the planned content and functionality of your app adhere to the guidelines set forth by the app marketplaces?
- Is your app more transaction or consumption-oriented?
Each approach to mobile app development has its merits. Choosing the right one is all about weighing the trade offs and features of each method.
To learn more about how we approach problem-solving for our customers, including our software development process, click the image below.