Development

What is it?

Once your go-to-market strategy has been finalized, you will need to carefully plan your application development as the next step in the mobile content lifecycle. This will require an evaluation of the tools and methodologies available that will enable you to create an application that will provide a solid foundation for porting, which is critical to manage your costs and ensure the quality of the final product.

Before you start coding, there are a number of application design and architecture choices that are critical to get right. Essentially, this design stage is where you bridge market planning to development to ensure success.

What does it matter?

The application development stage is critical in mobile because you simply cannot create one or two versions of an application that will support the thousands of mobile handsets available worldwide. For this reason, application developers must carefully consider the impact of the code they write, not just on the first handset, but for all the handsets that they intend the application to run on. This is easier said than done. Choosing an appropriate development methodology will mean the difference between an application that is optimized for every handset and one that is a lowest common denominator solution.

Understanding the limitations of software platforms such as Java ME, BREW and Windows Mobile is critical in lowering the development risk and ensuring a positive user experience.

Plus, in the world of mobile you especially need to develop applications with portability in mind from the very beginning. If care is not taken in the early stages of application development, exponential amounts of resources will be spent later on recoding and, in extreme cases, starting from scratch.

How does it work?

Superior technical design of mobile applications comes from understanding the devices you are targeting and then applying some best practices to optimize your code appropriately.

Understand the Devices You are Targeting

The major device factors that play in to intelligent mobile application design relate to these five categories:

  • Performance
  • JAR size limitation
  • Available heap memory
  • Screen size
  • API support
At its simplest level, the various "ranges" of devices behave quite differently. For example, the Nokia Series 60 is about 10 times faster than the slowest Series 40, and allows unlimited JAR size (although most operators cap it at around 200 KB). As a result, if you have an application that is very device resource intensive, you will need to consider only targeting high end devices. Or develop a "light" version of your application for the lower end devices.

Also, an experienced mobile application development and porting organization will understand many idiosyncratic differences between, say, Motorola, Samsung and Nokia devices.

Avoid Some Classic Pitfalls

By avoiding common mistakes, you can produce applications that are easier to port, manage and ultimately, market to operators and end users. Some of these pitfalls include:

  • 1. Hard-coding for Fixed Screen Sizes - Hard-coding for fixed screen sizes severely limits portability. When working with drawing screen elements, make sure your splash screens, sprites, and background images are dynamically adjustable to different screen sizes.
  • 2. Hard-coding Sound Elements - Hard-coding sound elements also negatively impacts portability. Sound elements should be stored in separate files in the JAR and not hard-coded. In addition, the size of the byte array used to store the sound element must be dynamic or provisioned to have expansion room.
  • 3. Hard-coding of Constants - It is a much better practice to refer to a central location such as a config file or class file in the JAR. This guideline is especially true when you are considering translating the application into new languages for new markets. Applications with downloadable content such as puzzles, comics, and information programs should all keep their data and content files in separate repositories to make the download and management of content easier.
  • 4. Ignoring Localization Issues During Initial Development - Multiple languages are also important in gaining broad application distribution. Porting from one language to another has challenges if not handled correctly. The time to consider these principles is during development - not after the English version is finished. We recommend constructing UI elements with text with at least 30 percent expansion room to account for less compact languages like German.
  • 5. Creating Applications That are Too Big - Some of the most popular devices in the world have a hard upper limit of 64 KB, and if the application is to be used by large quantities of consumers, it will need to work on these devices.

Tips & Tricks to Optimize for Mobile

Over the years, Tira Wireless has acquired scores of best practices in mobile application design by virtue of working on hundred of projects. A few notable ones are:

  • Implement a memory management system to keep track of resources in the various caches. When nearing maximum memory, stale items in the cache should be freed to make room for new data.
  • Graphical assets should be optimized to reduce file sizes, download times and memory requirements on devices.
  • Try to avoid using XML, JavaScript, and SVG APIs on Java ME. These factors can cause problems on the client side, as they are not consistently implemented across most devices.
  • Transparency color should ideally be Black, White or Pink. Pink is a usual choice as it is in the middle of the RBG spectrum. Black or white are ideal to minimize transparency problems when background hue is generally known.
  • Transparent color should not be numerically close (within 0x0F) to a non-transparent color. Some devices will either render all close colors transparent, or not render the transparent pixels as transparent.
  • Sound APIs on Java ME have many idiosyncrasies. The best way to avoid sound problems is to keep the implementation simple. Only playing one sound file at once is best.
  • Plus many, many more...
Development Best Practices

A critical first step in application development is to choose the appropriate integration development environment (IDE) which is optimized for mobile application development. Five years ago, you would be choosing between free tools and commercial products from the likes of Borland or Metroworks. But today, the leading IDE's such as the Eclipe Open Development Platform are open source and have plug-ins that assist in mobile development. In addition, selecting an application development framework to sit on top of the IDE is important to provide UI widgets and preprocessing tools that will optimize, minimize and manage your source code.

Integration with J2ME Polish

Tira Jump 2008 provides integration with J2ME Polish, a leading open source application development framework that enables application developers to create reference source code that will provide a solid foundation for the Jump Developer Desktop. By creating variations of applications, e.g. small, medium and large versions, Jump Developer Desktop can easily perform transformations to the hundreds of handsets required for a global deployment. Focusing on application portability up front ensures that the Jump Developer Desktop can adapt the source code to the widest number of mobile handsets, at the highest quality levels with the least amount of manual intervention.

Portable Reference Builds

When you are ready to start writing code, you will need to think about how to minimize your total cost of development. To do this, it is critical to address application portability before a single line of code is written. Maximizing portability of a mobile application is an important consideration; by creating at least three variations of an application, developers are able to create a strong starting point for subsequent adaptation.

Three reference applications provide flexibility to choose the correct application for each target handset. The right reference application will maximize the quality and user experience and ensure that the final product is truly optimized for each handset.

Comments

No comments for this document

Creator: Administrator on 2008/01/11 14:57
© 2008 Tira Wireless. All Rights Reserved