Mobile Information Device Profile (MIDP) defines the Java application environment for mobile information devices (MIDs), such as mobile phones and personal digital assistants (PDAs). MIDP is part of the Java™ 2 Platform, Micro Edition (J2ME™). This guide offers advice for MIDP 2.0, which is specified in MIDP 2.0 Specification [19] from the Mobile Information Device Profile 2.0 (JSR-000118).

An application that runs in the MIDP environment is called a MIDlet. One or more MIDlets packaged together for distribution are called a MIDlet suite.

This book is for two groups of readers: those who are porting MIDP to a new device (MIDP implementors) and those who are creating MIDlet suites (application developers). Porting MIDP implementations to devices and designing MIDlets both have special challenges, which this book's guidelines address.

The guidelines are divided into three categories. The following paragraphs show the typographical conventions used for the guidelines, and explain the guidelines themselves.

Strongly Recommend: graphics/bulb1_icon.gif Guidelines that, if not followed, could result in an unusable application.

Recommend: graphics/bulb2_icon.gif Guidelines that lead to an improved Java application in areas such as ease-of-use and portability. Disregarding this advice will not lead to an unusable application.

Consider: Guidelines that could lead to an improved Java application, but that do not necessarily apply to all applications and situations. Your circumstances may lead you to disregard this advice.

The guidelines come from many sources, including usability studies, user-interface design principles, good coding practices, and experience implementing the MIDP specification and MIDlets.

This chapter introduces design considerations for MIDlets in the consumer market. Designing MIDlets differs significantly from designing desktop computer software. Some important differences include product domain, resource limitations, and the need to focus on ease of use.

     Python   SQL   Java   php   Perl 
     game development   web development   internet   *nix   graphics   hardware 
     telecommunications   C++ 
     Flash   Active Directory   Windows