Project Capuchin - Enhance your Java mobile application UI with Flash Lite

by Hari K. Gottipati

As Flash's strength is in UI development and Java's strength is in services, security and distribution, lots of Java developers are adopting the Flash as their UI choice. When it comes Java ME development, its an application sitting on the mobile phones as opposed to traditional web application where the browser and server are involved. Until now, Java ME developers have only Java ME GUI APIs for UI development, but now they can enhance the UI with Flash technology. In an interesting turn of events, Sony Ericsson launching project Capuchin, which bridges the Java ME with Flash Lite by empowering these two distinct developer communities to bring their respective expertise to create more powerful mobile applications.

What's all this?

Project Capuchin is a Java ME API that acts as a bridge between the Java ME and Adobe Flash Lite. It encapsulates Flash Lite content in Java ME applications. This API makes it possible to use Flash Lite as the front end and Java ME as the back end of applications. You can use your favorite Flash tools for UI design while still having access to all the phone services available to Java ME. Project Capuchin makes it possible to create Java ME applications where some or all UI components(you can mix Java ME UI and Flash lite UI, for example: Java 3D Game with Flash menus) are defined in Flash Lite and where all services can be accessed through Java ME. Though content is created by Adobe Flash technology, it makes it appear as Java ME applications.

Architecture:

capuchin.bmp
Source: Sony Ericsson

Project Capuchin makes it possible for Java to run a Flash Lite content file (*.swf) via the Capuchin APIs. It acts as a communication bridge(two way) between Flash Lite and Java ME, meaning that Flash Lite can send requests to and receive events from Java. It carries all system events (e.g. key events) from Java to Flash Lite and the Flash Lite player has a choice of listening to these events. In case Flash Lite wants to access some information then it is done through Cauchin API. Communication between Flash Lite and JSRs are handled through an intermediate class that works as a translator. This class listens to Flash Lite requests, transfers these to Java ME, and sends response back to Flash Lite.

Project Capuchin can be used in different ways:

Pure Flash Lite Content (Full Flash UI and services, no Java ME access):
The simplest form of using this technology is to take pure Flash Lite content (e.g. already existing games and apps developed in Flash) and encapsulate it in MIDlet suites (*.jar) using Sony Ericsson's soon-to-be-available packaging tools. The benefit of this approach is that this Flash Lite content will be treated in the same manner as Java content, thus will use the same distribution infrastructure and system capabilities as Java ME content.


Java MIDlet using Project Capuchin as UI presentation layer (full Flash UI, Java Services):
More advanced use of Project Capuchin is to let Flash Lite handle the entire presentation layer and use Java as a service provider which feeds the presentation layer with necessary data.


Java MIDlet using Project Capuchin for some UI components (Java UI and Flash UI, Java Services):
In some cases such as 3D games, it is not feasible to use Flash Lite as a full presentation layer yet this should be handled using suitable Java technology (e.g. Mascot API, JSR 184 or JSR 239). In these cases, Project Capuchin could be used for presentation of some UI components, for example menus in 3D games.


Flash Lite has a solid UI, but there are no known mobile applications built on it. On the other hand, Java ME is popular in mobile application development without solid UI. So it makes sense to mash up these two technologies to deliver best mobile applications. Also as Flash lite is limited and poor in creating 3D games, so users can make hybrid UI(Flash Lite+Java ME UI) with project Capuchin. Sure it is going to open the doors for the best Java ME applications powered by Flash UI, but its success depends on how many devices it is going support it. There are no details on whether this is going to be restricted on Sony Ericsson devices? Its success depends on Sony Ericsson's willingness to license this technology to other device manufactures. If so, we may see this running on iPhone soon. Steve Jobs is not happy with Flash Lite, but I am sure Java ME with Flash Lite will impress him!!!


1 Comments

will smith
2008-05-01 04:50:02
It sounds as a great idea! SonyEricsson is known for its strong JAVA platform and JSR adoption. Many can benefit from this...
Any comments from Sun and Adobe?