Most companies today face an obvious trade-off between
user experience and application functionality on the one hand, and
development costs and time to market on the other. The challenge becomes
choosing the right development approach to balance the requirements
of the organization with its budget and time-to-market constraints.
This dichotomy necessitates that you have a different answer for different
mobile apps.
The table below lists difference in features between each of the
mobile app styles.
Table 1. Differences in mobile app stylesFeature |
Native App |
Hybrid App |
Web App |
Development Language |
Native Only |
Native and Web, or Web Only |
Web only |
Code portability and optimization |
None |
High |
High |
Access device-specific features |
High |
Medium |
Low |
Leverage existing knowledge |
Low |
High |
High |
Advanced graphics |
High |
Medium |
Medium |
Upgrade Flexibility |
Low (Always by way of app store) |
Medium (Usually by way of App Store) |
High |
Installation Experience |
High (From app Store) |
High (From App Store) |
Medium (By way of Mobile Browser) |
While this feature trade-offs list is not exhaustive, the questions
that follow can help you plan the correct approach for your development
effort:
- Does the development team possess skills in HTML, JavaScript, CSS, the Android Java™ API, Apple Xcode, and Objective-C? These
skills are the most commonly needed to develop mobile apps on the
various platforms. Without skills for native development, Hybrid application
development makes it possible to provide near native application performance.
In the meantime, your team can build up its skills.
- Are traditional web apps in place that can be adapted to the mobile
browser? Moving from Web to Mobile Web enables your team to leverage
existing skills and provide customers and employees access from mobile
devices. Although some mobile features are available through technologies
such as HTML5, Mobile web applications still require that your users
always be connected.
- What devices does the app have to run on? The number and variety
of devices that your app needs to run on can directly impact your
development costs. Understanding your functional requirements can
also affect your device requirements. Understanding your required
market reach, also impacts your potential device requirements. Balancing
the trade-off between market reach, technical device capabilities,
and application capabilities can help make the development approach
trade-offs are clear.
- Does the app need access to device features, for example, GPS,
accelerometer, camera, touch-screen microphone, battery information,
and so on? HTML5 and other new web technologies provide access to
some native capabilities of the device. However, for deep integration
you often need access to the native OS APIs. This integration type
requires you do Native App development or Hybrid App development.
- Does the app need internet access always, sometimes or never?
When you are working with mobile devices, internet availability cannot
always be assumed. Data and graphical asset currency, and security,
are driving factors in determining whether internet access is always
required. If you do need always-on internet, you cannot use Mobile
Web App development.
- How critical is it that the app exhibit native look and feel?
The current level of look and feel emulation by Web Apps is good;
however, it is not perfect. You can have a Web App create a launch
icon on the user's device, and even hide many of the aspects of the
browser. However, the installation experience is not native. Advance
UI elements and behavior can be restricted to OS APIs. As such, either
Hybrid or Native apps are required to exhibit a true native look and
feel.
- Will the app process sensitive data, and is storage of that data
on devices restricted by corporate standard? Anytime you have data
concerns and constraints you need to consider the level of security
that the Device and OS can provide. If you do not have confidence
in the level of security of the device, you have two alternatives:
- Keep all data off the device, via Web App or Hybrid (with appropriate
secure data protocols and connections).
- Use containerization of the data on the device via Hybrid or Native
App. (note this may not be a valid solution for highly secure data).
- How are users to update the app? If you plan to make many small
updates in quick succession, you must consider how to update the app.
For Web Apps, you have complete control with updates to your web infrastructure.
For Hybrid apps, you can quickly distribute some assets to the apps
local data store, and reserve other updates for the slower distribution
channel of the native App stores. For Native Apps, you are restricted
to the App Store ecosystem installation, which may include additional
gates to your development cycle, thereby slowing the availability
of updates.