Should I build an app?

United Nations of smartphone operating systemsHaving helped develop an iPhone app and having my “techie-in-a-skirt” rep amongst my colleagues and friends, I often get asked “Should I build an app?” Last  week I was asked just that.

My answer always starts with “It depends”.

Delivering a mobile friendly service is not the question here. ComScore recently revealed that  75% of Canadians own a smartphone in their 2014 Canada Digital Future in Focus report which means you need a mobile friendly solution if you want to be relevant. The question is, which mobile solution is right for you?

Generally, you have three main mobile options: Web Apps, Native Apps, and Hybrid Apps. But before you get into these options, you need to determine what exactly you are endeavoring to do before weighing your mobile options.

Focusing on your objective

Do you know what the objective of your mobile app is?

Your objective needs to be solving a problem, usually by providing some sort of service, and finding an efficient means of doing this.

You need to create an application objective, or as Apple calls it… an app definition statement.

An app definition statement is a concise, concrete declaration of an app’s main purpose and its intended audience.

– iOS Human Interface Guidelines

An application objective clearly defines the problem you are trying to solve. Once you have this nailed down it will become the basis for evaluating the best mobile solution.

Understanding your audience

You’re application objective should help you determine who your audience is – these are the people you are aiming to make life a little easier for.

If this isn’t clear, you may want to re-evaluate your application objective. Your mobile app should have a clear audience in mind.

Once you have established who your audience is, you need to ensure you understand them. Meet with people you know who represent this audience – friends (and friends of friends,) family, colleagues.

Discussing your app with people you think would find it helpful to use will help you understand their greatest needs, what they currently use, and how you can improve upon it. It may even lead to modifying your application’s objective to better suite your audience.

I should note here that learning about your audience and refining the purpose of is really supposed to be happening in tandem. Keep refining you app idea, and going back to your audience for feedback until the your objective syncs up nicely with what your audience is looking for.

With this information in hand, you should already have a feel for your audience’s mobile behavior.  Ask yourself, does align with current trends for my demographic. You can find trends for different demographics pretty easily online such as the 2014 Canada Digital Future in Focus report I referenced above.

You should be able to answer the following questions about your audience:

  • What types of mobile devices are they using? Android, Apple (iPhone and iPad?), Windows, Blackberry etc.
  • What types of apps are they downloading from app stores?
  • What’s their favorite app, and why?
  • What types of apps are they deleting, and why?
  • What kind of activity do they use a mobile browser for?

Choosing a platform

With a clear understanding of your app’s purpose, and the audience it is designed for,  you can begin to assess which mobile solution is right for you.

As I mentioned earlier, you have three main mobile options: Web Apps, Native Apps, and Hybrid Apps.  I’ve described each of them here.

Web Apps

These are mobile friendly websites that users access on their mobile devices through a web browser.  They are not distributed through an app store. They also require an internet connection.

What makes web apps different from other websites is the tailored  experience they offer on mobile devices. Navigation is reorganized to improve mobile accessibility,  images are re-sized, and content is optimized for readability.

Web Apps can be created using using user-agent detection and separate mobile sites or through responsive web design which is my preference and the current best practice. This is the most versatile solution. It uses css media queries to allow your website to automatically adjust its layout based on the browser width.

Using user-agent detection allows you to send users to a separate site  that is dedicated to a mobile experience. However, with so many different sizes of mobile devices on the market there is never a one size fits all solution and you are left with either an inconsistent experience and fit across devices, or a lot of additional time and money to customize sites for the most popular web browsers.

When should I build a Web App?

When should I build a “responsive design” web app?

The simple answer to this is “Always”. I always encourage people to think responsive first. This is the most versatile option which ensures you are catering to all mobile platforms. It will always be useful and relevant to your audience regardless of what type of device they are using. Regardless of whether you choose to build a hybrid or native app to be downloaded through an app store, you should ensure you main web presence is functional and accessible for your users by using responsive design.

When should I build a “user-agent detection” based web app?

In instances where a larger more complex site will not be undergoing a responsive re-design for quite some time, it may make sense to develop a separate mobile site and employ  user-agent detection as an interim solution.

Native Apps

Building a native app (regardless of mobile platform) is a significant investment. The scale of the investment varies based on the complexity of what you are providing and the platform(s) you decide on. But there are many scenarios where making this investment makes sense.

Native mobile apps have a “shiny object” aura – and there’s a reason for it: a well designed app  that tackles the right problem and provides a great service is Amazing.  The risk many face when thinking about developing a native mobile app  is being drawn into the bright shining light of mobile innovation without the right purpose driving it.

When should I build a native app?

Level of user interaction

Something to consider when comparing the value of native apps vs a web app is the level of interaction required. Will your users need to interact with your app beyond scrolling through content?

If your application’s objective includes one or more of the following elements, a native app can offer considerable value and an improved experience for users:

  • It will use use a mobile devices features (think maps, geo-location, photos, contacts etc)
  • It will interact with other apps or data (facebook, twitter, or doc apps like evernote or pages etc)
  • It will deliver content to be used offline
  • You expect your audience to use the app frequently and for extended periods
  • It will be visually rich, including high quality animations within the app (such as spinners)

When ease of use in a native app is greater than the ease of use using a web browser, users are more likely to prefer, download, and use  a native app.

If you have an existing service that includes some of the elements I mentioned above, you should be able to improve your users experience of your service through a native app.

If you are developing a new service that includes some of the features above, consider building a native app along with a responsive web app.

Frequency

Another factor to consider is how frequently you expect your users to use  your app. Do you expect users to come back often for the same service. An app that is based on a recurring need is more likely to be downloaded and used than a single use experience.

Does your application’s objective imply it will be used over and over again? If not, your audience will likely not make the investment to download the app in the first place. Apps that are rarely used are also more likely to be deleted. However apps that provide an added layer of convenience on a recurring basis make it worthwhile for your user to download and keep on hand for future use on their mobile device.

Performance

Native apps have the advantage when it comes to speed and performance. If your app is going to rely on speedy performance, a native app may be a good choice.

Although not recommended unless it serves a specific purpose, native apps can also be designed to continue to perform offline.

Budget

Native apps can cost more because they require expertise specific to the native platforms code base.  As a result there are fewer developers available to work on native apps which can increase costs. If your audience is spread over a variety of mobile platforms, developing native apps for each one can be costly. You could choose to develop a  native app for one platform initially with a plan to build for other platforms further down the line. The risk you run is alienating a large portion of your audience if you develop a native app solely on one platform.  However, having a web app may help mitigate this risk in the short term. With Apple and Android almost equal in leading the mobile device market share, having a native app for each of these platforms as at least a long term plan is the best option for a native app strategy.

Hybrid Apps

Hybrid web apps use a combination of web app features and native app features. They usually run through a mobile device’s web browser, but are found in the app store. They aim to simulate a native app experience.

Hybrid apps have come a long way in the last few years. They are able to simulate the look and feel and behavior of a native app much more closely. There are  a variety of services (such as Adobe PhoneGap) that allow you to publish hybrid apps. There is also the option for compiled hybrid apps, such as the service provided by Titanium. Compiled hybrid apps compile non native code (such as JavaScript) to the native code for the main platforms (Android, iOS, Blackberry,  Windows) and as a result do not run in the web browser.

Gartner hype cycle of hybrid apps
The Gartner hype cycle of hybrid apps in “The State of Hybrid Mobile Development” on the Telerik Developer Network.

The Hybrid app’s main advantage is that it allows you to develop an app in one language and have it work across all mobile platforms. As a result, there are a greater number of developers who are able to develop hybrid apps which can reduce development time and cost.

It’s important to keep in mind that the web view based hybrid apps  will have a slower performance than native apps. There are also some limitations or added complexity in integrating some native app features.  Also, additional significant effort is required to simulate a native app. Smashing Magazine’s article Hybrid Mobile Apps: Providing A Native Experience With Web Technologies shares some of the latest techniques used to provide a quality native app experience through a hybrid app.

When should I build a hybrid app?

My points under Level of interaction and Frequency for native apps apply here. If you are building an app that you expect to be used frequently, and it includes several elements of interaction, a hybrid app may be a good choice, especially if your research reveals your intended audience uses a wide variety of mobile devices. Hybrid apps are also often a slightly more affordable means of making your app available in an app store. However, the pro’s and con’s of the hybrid app compared to a native app need to be compared in relation to how they support your app’s objective before choosing a hybrid app.

If your app will be relatively complex, the native app is still be better choice. Hybrid apps usually can’t match the speedy performance of native apps. They also cannot match the ease with witch native apps are able to access other apps and platform features available on the mobile device.

If your app does not take the shape of a frequently used service, and does not include a high degree of interaction, focus on your a responsive web app rather than investing in an app that your audience may not see the value in downloading or keeping on their mobile device.

Final thoughts

As you can see, the question “Should I build an app?” is  a question that warrants some significant consideration and research before you make the call on what mobile platform is right for you. The key part of making this decision is knowing the problem you are looking to solve and the people you are looking to help.