was introduced, it has enjoyed widespread support and momentum in the consumer electronics industry. PersonalJava technology is a revolutionary software environment designed to bring the power of Java
technology to personal, consumer, and mobile devices. Based on Sun's acclaimed Java application environment, PersonalJava technology is ushering in a new era of network-connectable devices that can communicate with a wide range of information sources on the World Wide Web or other network. Already, devices such as web phones, digital set-top boxes, personal digital assistants (PDA's) and car navigation systems are rolling out with this exciting technology. With the PersonalJava platform, new content and functionality can be delivered to the device after it is in the hands of the end-user, thereby enriching the device's usefulness and product life.
From its inception, PersonalJava technology was designed to shift the burden of innovation in consumer electronics from hardware to software where the development cycles are faster, the business model is more leveraged, and the pace of innovation is accelerated. Everything you need for innovation is already in place, including a broad industry knowledge base about Java software, and the infrastructure to support it. All of this can help you to lower your reliance on proprietary systems and their accompanying support costs. Since writing to the PersonalJava API means using the popular Java programming language, the standard Java
Development Kit (JDK
) toolkit or familiar off-the-shelf development tools can be used.
The PersonalJava platform is available on most commercial embedded operating systems used in consumer products running on most microprocessors. This means you spend less time porting, testing, and tuning, and more time focused on hot new product features. We also give you a rich object-oriented component architecture, so that adding new software components to your product doesn't mean a complete system rewrite. Your newest software components simply snap into place and run.
Integrates New Consumer Products with the Rest of the Networked World
PersonalJava technology provides a smooth bridge from the next wave of consumer devices to the network. It joins the growing family of scalable Java technologies that reach from smart cards to supercomputers. By joining forces to support a standards-based platform, you can take advantage of new network-based consumer services as soon as they're available. Your PersonalJava Compatible
devices will simply download new functionality "on the fly", seamlessly and dynamically across the network.
Focusing on the User Experience through the Graphical User Interface
Often with consumer devices, the success of the product hinges on the design of the user interface. User interfaces for the consumer market must be designed with the unique needs of the target user in mind. A consumer user may choose a device for emotional reasons (Is it attractive? Do I want to pick up the device and play with it?), with usability (Is there a steep learning curve? Does it react in ways that I expect?) playing a large role in whether the device gets accepted by a wide audience. One of the best ways to address these considerations is through the design of an effective
graphical user interface. PersonalJava technology provides a platform-independent toolkit for application developers to easily create graphical user interfaces (GUI's) - the Abstract Windowing Toolkit (AWT). This is the same AWT that exists in the Java application environment which has been adopted by developers worldwide.
Desktop Look-and-Feel vs. Consumer Look-and-Feel
As its name implies, the AWT consists of a set of abstract graphical components that have no associated look-and-feel. An application developer can specify the desired graphical components and layout (e.g. 3 horizontally-placed rectangular buttons and a set of vertically-placed radio buttons underneath the leftmost rectangular button). However the look-and-feel is largely determined by the underlying Java platform implementation. On desktop systems, the look-and-feel is often part of the operating system e.g. Motif on a Sun
Workstation or Microsoft Windows on a personal computer. However, on a consumer device, it may be both impractical and undesirable to carry over the desktop look-and-feel. It may be impractical because the consumer device may have neither the memory capacity nor the processor power to provide a desktop graphics capability. It may be undesirable because the consumer user does not necessarily have experience with desktop computers and, therefore, may have difficulty with desktop user interface paradigms.
To address this issue, the Truffle
Graphical Toolkit is provided as a complementary part of the PersonalJava platform. The Truffle toolkit enables the creation of platform-independent, fully-customized look-and-feel designs for consumer devices. It is useful to look at the Truffle toolkit from the perspective of the different parties who contribute to a successful consumer product.
For a product designer, the Truffle toolkit provides a mechanism for putting more of the graphical design of a product into software. A toy device and an automobile racing gadget would have very different look-and-feel designs. For an engineer developing a consumer product, the Truffle toolkit provides a way to easily modify and support alternate look-and-feel designs. For an application developer, the Truffle toolkit uses a subset of the JDK
1.1 AWT programming interface.
The Truffle toolkit serves the needs of these three groups by providing a standards-based GUI with enough flexibility to support a variety of different consumer product designs.
Look-and-Feel Designs for Consumer Devices
As previously described, the design effort that goes into developing a look-and-feel for a consumer device is a critical element in product design. This is in contrast to the desktop software world where the look-and-feel design is set by the platform operating system.
The designers of successful consumer devices must pay close attention to the mechanisms with which users interact with their devices. As time-to-market factors encourage more software-based devices, the same attention to the look-and-feel of the GUI will be required. The Truffle toolkit provides a framework for delivering these kinds of consumer-friendly devices.
Touchable look-and-feel implementation. The Touchable look-and-feel design is a
reference look-and-feel design targeted for touchscreen-based devices from which other look-and-feel designs can be derived. Alternatively, the product designer may devise a look-and-feel design entirely from scratch depending on the consumer usability or product identity requirements.
Flexible. The Truffle toolkit is portable at several layers from the graphics hardware to a native window system. The product designer can choose at which level to port from depending on the needs of the applications.
Low memory footprint. The Truffle toolkit has been designed for the low memory conditions of consumer devices.
Portable. Many layers of the Truffle toolkit are written in the Java programming language, thereby benefiting from the portability aspect.
An address book application using the baseline Touchable look-and-feel design.
An e-mail application using a variation of the baseline Touchable look-and-feel design. By making minor modifications to the baseline implementation, this greyscale, scaled down design with rectangular buttons can be obtained.
An e-mail application using a more "sophisticated" variation of the baseline Touchable look-and-feel design.
A scrolling list using a whimsical variation of the baseline Touchable look-and-feel design.