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.

  HTML5 web Native Hybrid
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.

For both native and hybrid applications, design guidelines can be found in the EERE Mobile Application Strategy document.

The following resources can be used when developing apps for EERE:

Sending Your Application Live

Before you can go live with your application, you must attend another Web Governance Team meeting. During this time, you should:

  • Present your mobile application on a mobile simulator
  • Show the team the icon you want to use for your application, if you are creating a native application.

You need the WGT's approval to send your application live.

Promoting Your Application

Once the application is ready, the program team should develop a promotion plan with Communications.

A sample plan might include:

  • Press release (if deemed suitably newsworthy)
  • Progress Alert
  • Announcement on the EERE home page
  • Item on the EERE Facebook Wall
  • Email to select stakeholders with a request to amplify the message.

Related Information

For guidance and best practice on coding a mobile Web application, see these resources: