[SonyEricsson is promoting a new Application Environment mixing Java ME and Adobe Flash Lite: Capuchin. Blogger Thomas Menguy tries to describe it and evaluate what “yet a new” development platform means to the industry ].
Sony Ericsson had a nice webinar last Thursday, interesting held through Adobe E-Seminar:
“Flash Lite meets Java ME on Sony Ericsson phones with Project Capuchin”.
At least now we have some information about Capuchin, and I’ll sum it up for our beloved busy executives:
A technology that allows developers to make the UI using Flash Lite and code the business logic and access to the platform services with Java (ME).
A development environment with PC based tools (Adobe CS plugin for flash and Eclipse plugin for Java), simulators and a specific runtime embedded in SEMC phones.
The deployment is done using the well in place Java deployment environment (jar are used, same signature, etc).
Here is first a transcript of the capuchin webcast, then as a conclusion I’ll throw out my thoughts about this and its impact on the industry (if you are still there…).
Project Capuchin Web Cast transcriptFlash Lite from an SEMC perspectiveJava ME from and SEMC perspectivePros
books, forums, tutorialsPros
Wide platform access: JSR’s
Security: MIDP protection
Distribution infrastructure using JAR
Wide adoption languageCons
Limited system services access
No security solution
Lack distribution channel
Lack of designer oriented tools
no rich UI framework
difficult to keep separation between presentation and service layer
Designers dependent on programmers in UI dev
Capuchin is about mixing those two worlds, and enforce UI designers and developers relationship.
Why the Capuchin name : it is a monkey like tamarin…the name of the Adobe Action Script VM.
Here is a high level architecture presentation of Capuchin:
Flash content is embedded into a .jar and can be launched by some Java code, then, thanks to the Capuchin API the Flash Action Script can access the various JSR or any other Java class of the project.
Here is below how an accelerometer API may be available in the Flash Action Script of a Capuchin Application:
The Capuchin API works both way: flash to java and java to flash.
What Capuchin is bringing:
Extend current limited APIs with the use of JSR
Secure Flash application
Deploy flash as java games, distribute Flash content through existing java distribution infrastructures
Clear separation between business code and UI
Nice development tools
Professional UI tools
How to use Capuchin:
3 main ways to do:
Packaging pure Flash Lite content using jar
Java Midlet using Flash Lite for the UI layer
Java Midlet using Flash Lite for PARTS OF THE UI
Adobe has a nice technology: mxp, format for packaging extensions. Capuchin use mxp to package the APIs that will be mapped into the Action Script.
There is an Eclipse Capuchin Plugin to create those APIs declaration (see above) as they will be usable in the Action Script written in CS3. This tool outputs an XML file which will be used to output Java Classes for the java part to be implemented …. and Action Script classes to be used in CS3.
Everything is then packaged in a .mxp installation package. SEMC will provide some mxp already (Bluetooth , others…)
The webcast then featured a demo:
Goal here was to show the tool to convert a swf to a jar, swf2jar: very useful for packaging because a flash game today…end up in the image folder when deployed in a SEMC phone :-)….
Project Capuchin plugin for CS3, with mxp packages. The intent here was to show how to use Java services in a Flash Lite content
There are some “Platform components” in the library: in the AS editor, it is possible to import for example the package com.sonyericsson.capuchin.calendar.Calendar
… to import the Platform classes, so it is now possible to use the Calendar class as a normal Action Script, even if it is a Java Service.
One word about the toolchain future:
In gray: Not done today:
Flash Emulator will be connected to Eclipse to use java services directly and not only stubs
UI library: a flash widget library will be developed
Connect everything to the existing SEMC phone emulator
Work with adobe so that in device central, when a SEMC phone is selected the list of available mxp would be provided.
What will be published soon:
First phone : C905, compatible with capuchin APIs
Capuchin APIs,Java Classes
Capuchin API generator , eclipse plugin
mxp packages with source code
capuchin test and video tutorials
=>check here http://developer.sonyericsson.com
SEMC Capuchin will be present at Adobe MAX in San Francisco and in Italy in December!
Some Q&A with no major questions…mine were not answered:
What is the implication of Adobe in this project?
What is the implication of Esmertec in this project?
Is there a roadmap to have Capuchin on other platform than SEMC ones?
Some points about this initiative:
SEMC has already done a large part of their applications in their feature phones in Java, and they have a strong Java commitment with Esmertec, so on SEMC phones Java is the preferred development method internally….and now with Capuchin, externally as nearly all the platform services are already available in Java.
With the point above, and knowing that some part of the SEMC feature phones themes are already in Flash, merging Flash Lite and Java was a natural choice for SEMC
Flash Lite choice is the only one possible for today mobile phones (CPU/Memory)…but is really not a complete and efficient UI application frameworks, it lacks …widgets! So SEMC plan to develop some new ones, hum wait, Adobe Flex is not about that? Bringing application development to Flash?
Not sure about the porting of such a technology on other platforms than SEMC … but from my knowledge only another one has made the Java choice: Google Android where all the platform services can be accessed through Java, but I don’t see any incentive for SEMC to port it to Android
So we have a new Application Environment, with its own SDK, that will certainly be only available on SEMC platforms….Capuchin one will complete this never ending list:
iPhone native/iPhone SDK
iPhone Web Apps
UIQ (oups, RIP)
J2ME (and all its flavors …)
…and so on…
Are we still talking about cross platform development? About consolidation and standardization? NO
The industry is pushing the other way, and really this is NOT AN ISSUE.
Services and applications developers have learnt how to reuse code across platforms, how to architect their code and services so that it is easy to change only the presentation and the adaptation to the platform: after all developing a UI for a 800*480 screen and a 176*220 is just something completely different, and really not a big deal if your UI is uncorrelated from your services; Capuchin helps that, as many other technologies.
All those new Application Environments are bringing to Mobile Platforms great core value for services deployment :
great tools, ease of development
focus on user experience and UI
And we don’t want a “one size fits all” environment, it is simply not true in an industry where the forms factors, capabilities and designs are so vastly different. Differentiation is key in this market, just open the platforms with nice and open development technologies, it is enough!
One big trend we can foresee also is that the platform vendors have no more software complex, and when you look at the list above, nearly all the initiative are coming from OEM, and not really from pure software companies (notable exceptions: Android and WinMob)….PC based paradigm seems soooo far away!