The core application programming interfaces are defined by the underlying Connected Limited Device Configuration system.
LCDUI has a simple screen based approach where a single Displayable is always active at anyone time in the application user interface.
LCDUI API provides a small set of displayables common in mobile device user interfaces: List, Alert, TextBox, Form and Canvas.
Canvas is a low-level graphics surface for which an application has full control over what is rendered to it, although normally some space is reserved for system areas like screen title and indicators common in mobile device UIs.
The Record Management System provides a form of persistent storage for Java ME; a database for the mobile device.
The following Java Specification Requests are a selection of the optional JSRs which can be added on top of a MIDP implementation to add extra functionalities.
Personal information management API (optional), access the device's Address Book, to-do List, Calendar.
There are several different ways to create MIDP applications: code can be written in a plain text editor, or one can use a more advanced IDE such as NetBeans, IntelliJ (with bundled Java ME plugin), or Eclipse (with plugins such as EclipseME) which has a user interface for graphically laying out any forms you create, as well as providing many other advanced features not available in a simple text editor.