Marrying SVG and Java ME Using Advanced Tools

The Java ME application environment is available on virtually every phone sold today, but until recently it was missing advanced 2D graphics capabilities. Developing Java ME applications has typically meant using either high-level LCDUI components, a set of abstract user interface components, which do not provide enough flexibility, or creating custom UIs using low-level graphics, which is flexible but very difficult. With the introduction of the Scalable 2D Vector Graphics API (JSR 226), this has changed - now Java ME applications can display and manipulate rich, animated and interactive 2D SVG graphics (specifically SVG Tiny 1.1) authored by a graphics designer in specialized tools. SVG brings a new style of application development to the Java ME platform, similar to the development process of web applications. A graphics artist can focus on creating a presentation graphics for the application, while the application programmer can focus on creating business logic of the application and not spending hours with tweaking low-level graphics UI.

Unfortunately features and capabilities of JSR 226 hasn't been much reflected by the available tools. While there are very good tools for developing applications for the Java ME platform and for creating standalone SVG graphics, the tools are usually not integrated very well which makes developing the SVG-enabled Java ME application rather difficult. However, this is exactly the area where Sun Microsystems cooperates with authoring tools vendors to bring a new experience for both, the designer and the developer when creating mobile applications using the next generation UIs.

This paper discusses efforts for integrating NetBeans Mobility Pack as a Java ME development tool and Oracle Mobile Designer as a SVG design tools. It covers various strategies for developing Java ME applications with rich, animated and interactive UI and discusses how these strategies could be supported by the tools to provide a rich development environment for both the SVG designer and the Java developer, where both parties can easily cooperate and work simultaneously on the same project. It also explains a concept of high-level components, utilized by both, the authoring and the Java development tool. The high-level components are identified in the SVG file using specific meta-data and are automatically recognized by the Java ME development tool when building the application. Finally it discusses all stages of JSR 226-powered application development - from authoring the rich SVG content, over utilizing Scalable 2D Vector Graphics API to integrating SVG content with component meta-data and the business logic written by the application developer, to the deployment of the created application to the real devices available on the market today. Multiple examples and demos are shown for each stage of the development cycle, including demonstration of SVG based Java ME applications running on real devices.