U.S. Department of Energy - Energy Efficiency and Renewable Energy

EERE Communication Standards & Guidelines

Mobile Applications

A mobile application is a software application that's designed for a mobile device. They can be designed as mobile Web applications, native applications, or hybrid applications. This page explains the requirements and best practices for designing these three kinds of applications.

A mobile application is not the same as a mobile website, which is a version of your website that works on mobile devices.

Planning a Mobile Application

Before you create a mobile application, you need to think about what will be useful for the audience or audiences who will use your application. As you develop your project charter, ask yourself some basic questions:

Who is my intended audience?

What are they trying to achieve in a mobile setting?

How will I use the app? What resources can my program bring to bear, and where do I need help from Communications in terms of promotion?

How will I measure success?

An application may be data-centric, content-centric or both. A data-centric application may show the nearest E85 fueling stations. A content-centric application may show energy saving tips that consumers can use while they are at home and work.

Once you've decided what type of information you have, you need to decide which type of application would be best for your needs.

Mobile Web Applications

A mobile Web application is a website that has been coded to use server-side or client-side processing (such as JavaScript) to provide an "application-like" experience within a mobile Web browser.

Mobile Web applications:

Can be used on all mobile devices, regardless of operating system or browser

Can be developed by developers who know HTML5 and CSS

Are updated as soon as the code on the server changes

Cannot take advantage of some of a phone's features, such as accelerometers or cameras.

Mobile Web applications can work on all mobile devices with a browser, and they can be produced quickly and cheaply.

Native Applications

Native applications are software applications that are created for only one platform, like Android or iOS. To reach users on other platforms, you need to distribute several versions of your application.

Native applications:

Are faster to use than mobile Web applications

Require knowledge of the native programming language, such as Objective C for iOS or Java for Android

Take advantage of some features of your phone that mobile Web applications can't, such as the accelerometer or the camera

Provide better control over the user interface

Require developers who have specialized knowledge of the target operating system or device

Are not updated automatically. The user needs to update to new versions as they come out.

Are distributed through app stores.

Native applications can be more expensive to create and reach a smaller audience, although they can take advantage of more of a mobile device's features.

Hybrid Applications

Hybrid applications are created using HTML5, CSS, and JavaScript. They are then wrapped in a native app container to provide access to native app platform features.

Hybrid applications:

Can be built on existing JavaScript frameworks

Take advantage of phone features such as the accelerometer or the camera

Result in apps that look the same across platforms without the need to create different apps in separate systems

Are not updated automatically. The user needs to update to new versions as they come out.

Are distributed through app stores.

Hybrid applications do not require knowledge of the numerous native programming languages, and they maintain the usability and design of an app across different types of mobile devices.

Programming language

HTML5/CSS/JavaScript

Native platform programming

HTML5/CSS/JavaScript

Automatic updates

Yes

No

Yes

Cross-platform functionality

Yes

No

Yes

Distribution

Unlimited

App stores

App stores

Uses phone capabilities

No

Yes

Yes

Getting Approval for Your Mobile Application

Once you have a plan for your mobile application, you need to bring it to the Web Governance Team (WGT). Do this before you start coding.

The WGT will review your idea and give you approval to start your project. They will ensure that you are aware of the Web application standards and any other security requirements that your project will need to meet.

Before you start:

Make sure the application is approved by the WGT before development begins.

Plan to develop your application in the EERE template for mobile Web apps or use the app building blocks described in the Mobile Strategy document for native or cross-platform apps. If you intend to create a unique look and feel for your application, then you will need to justify this at your initial WGT meeting.

Designing, Developing, and Deploying Your Mobile Application

If you're coding a mobile application, you should follow the same guidelines you'd use for Web applications.

To develop a native application, your developers will need to register for developer accounts on the appropriate website for each platform. Select the platform you would like to develop for to learn more about the process:

If you're coding a hybrid application you can use a number of different options for toolkits, such as jQuery mobile. Once the app is developed, an option for wrapping it in a native container is PhoneGap. The app is then delivered through the various app stores so developer registration is also required.