|
» Two things that go well together: Web Runtime and Java » Photos from JavaOne08 » Performance discussion at JavaOne » Ready at the JavaOne conference » What I like about WidSets |
|
» June 2008 » May 2008 » April 2008 » February 2008 » January 2008 » December 2007 » November 2007 » October 2007 » September 2007 » August 2007 |
|
|
Subscribe RSS 2.0 feed |
Subscribe Atom feed If you wish to receive email notification, please here » |
|
» All About Symbian » Symbian One » My-Symbian » Symbian.com » S60 Tips » S60 Freeware » Symbian Freak |
» Darla Mack! » Mobile Jones » MobHappy » The Mobile Weblog » Gadgets 4 Fun » Christian Lindholm |
Web Runtime and Java makes a delicious combination. They are the milk and cookies of S60 runtimes, tasty when consumed alone but delicious when together. Why should not they be, Java provides access to almost all the local device features today and web runtime brings all the goodness of the Web 2.0 applications and web based UIs.
I know you think that Java and Web Runtime does not have any built-in interoperability today, and this is almost true. So what is the catch? How can you create a widget that uses java APIs?
Starting with the S60 Feature Pack 2, java runtime introduced the new UI toolkit for Java, namely eSWT. eSWT includes an amazing component called Browser. Browser is one of the ~40 components of eSWT and its purpose is to provide access to the platform's native web browser. In our case, this is the S60 Browser Control. Using eSWT's Browser you can embed a browser into your Midlet. The end result is a Midlet that hosts S60's WebKit based Browser. Although it is not the purpose you can actually create your personal Browser with it, there is is a simple example on Forum Nokia wiki demonstrating this.
So what is the web runtime connection? Just like eSWT's Browser, the heart and soul of Web Runtime is S60 Browser. When eSWT initializes its Browser component, eSWT pretty much enables similar functionality to Web Runtime. As a result, all the AJAX programming available with Web Runtime is available but this time embedded inside a Midlet. Of course being embedded into a Midlet has advantages. Your web widget can now access all the local resources, use APIs like location and PIM and generate the content with the help of these Java APIs and set it to the Browser. It is even possible to mash up the local data with the online services, (Google Maps, Flickr etc.)
JavaOne is now over. It was a very fruitful conference on my behalf. Aleksi and I had a very well attended session. We have seen a lot of interest to our technology, especially eSWT. We are going back home with the new friendships and conversations we have established. Of course we have the photos from the event. I have created an Ovi channel for our JavaOne event photos, which is embedded to this post. You should expect more pictures as I am still traveling and did not yet gather all the pictures from the event.
If you are attending the JavaOne 2008 conference, there will be a BOF on creating efficient MIDP applications. S60 Java platform engineers will discuss about varying issues on creating well performing, pleasant MIDP applications. To start the discussion, we will be sharing some tips that we have gathered working with software and game houses. The tips will cover anything from graphics performance to usability.
There is a little known program run by S60 Java platform team. We regularly work with software and game houses to find out about the problems on our platform and also help them solve problems on their applications. We hope to extend our reach with this BOF to broader developer community. I will be at the BOF and will be sharing some usability tips, I know that most of the S60 engineers that are attending the conference are going to be there. I am really hoping to hear about some of the performance tips and also problems that you face when working with the S60 Java platform.
JavaOne conference is very close now and looks like we are ready for it. Your friendly neighborhood bloggers, Aleksi and I, will have a technical session titled "Touch UI in Mobile Java Technology based Devices". In this talk we will be covering the touch UI features of all of the UI technologies that you can use on S60 devices. There will be also tips for designing touch friendly java applications. I highly recommend this session not only because I am on it, but also because of the rising importance of touch enabled devices.
This year, we will have several of the engineers and architects that build the java platform for S60 available during the conference. We will be occasionally hanging around the Nokia booth on the Pavillion. If you have questions or opinions you want to share or just like to see a demo and some code, find the Nokia booth on the Pavillion. If you want to meet S60 java bloggers, Aleksi and I have scheduled ourselves to be at the booth on Tuesday after 16:00, during the JavaOne Pavilion Welcome Reception. We will be very happy to meet you.
There are many reasons why I like Widsets. What is not to like, it allows me to access to the web 2.0 content from my phone. It is based on java. In fact, it is one of the most innovative applications that is running on S60 java platform.
In case you have not heard of WidSets, I recommend you to take a moment and visit WidSets website. In a nustshell, WidSets is a widget platform. Simply put widgets is the name of the general concept of small applications that runs on devices and PCs. Widgets are commonly used to show web content, such as news, blog feeds etc.
One of the features of WidSets that amazes the little engineer in me is WidSets provides a user interface and scripting language itself. In a sense, it is a full-blown platform that runs on top of the java platform. The scripting language is good enough to allow developers to develop small applications, such as sudoku or chat for the platform.
But my vote for best WidSets feature is content discovery. If you are looking for some content to use in your mobile phone, it is probable that WidSets have it. WidSets web site and mobile client provides several ways to explore the available content. The list for the existing content is comprehensive and growing. If you happen to be a content provider then WidSets is an easy way to share that on mobile world and it is amazingly effective. A few days ago, I have experimented with WidSets to create a widget that shows the content of my personal blog and I was surprised to find that I had around 20 users in less than 24 hours.
Overall, WidSets is a highly recommended java application if you are looking for ways to consume web 2.0 content on your S60 phone.
I've just posted an article discussing about the new eSWT UI API that is available in S60 Java from 3rd ed fp 2 devices. (Nokia has announced some of these devices already.)
The article was originally published in S60 News magazine. S60 News is a newsletter for S60 licensees, S60 Product Creation Community Members and Operators. Since eSWT is a new public Java API for rich user interface creation I thought it's best to make the article available to anyone. Here you go:
"Taking S60 Java Platform user interface capabilities to the next level"
Download PDF file
There are a couple of upcoming java developer events where you can spot the members of the S60 java team.
EclipseCon 2008 is the annual gathering of the Eclipse open source community. I will be hosting, together with Majumder Deeptendu, a tutorial on developing applications using embedded Rich Client Platform (eRCP). Our java team actively participates on the eRCP project. eSWT, which Aleksi has blogged about earlier, is the first part of out of our open source efforts in eRCP that has become a resident part of java platform earlier. The tutorial will cover eRCP on most part but there is a growing request for eSWT specific material that we have not anticipated for when preparing our proposals for the conference. We will also include a quick introduction to eSWT use on MIDP in the tutorial in order not to frustrate our eSWT crowd. Apart from the tutorial, I will also present a short eRCP project update. If you are attending the EclipseCon, I will be glad to meet you.
Later in May 2008, java team will be present in the JavaOne 2008. We will have several technical sessions and BOFs. You should also expect a satisfactory S60 presence on the exhibitor's pavilion. I will not describe these activities in detail in this post. They deserve their own post but here is a teaser for that post, one of our technical sessions is about the use of touch in mobile java applications!
YouTube is available as a beta for some S60 devices (device models N73, N95, E65, 6110, 6120). Check www.youtube.com/yt_mobile_app.
There's a new version of our Java ME Developer's Library available at Forum Nokia. It covers the announced new features of S60 Java available for developers.
We have Javadocs for the new APIs: eSWT and IAPInfo. You can also find API overviews and examples for these from UI and graphics and Networking sections, respectively. We've put back the Nokia UI API Javadoc as it's still used by applications and since the standard MIDP 2 API doesn't have all the functionality; we'll try to aim this with MIDP 3 standard in future.
The library also has significant update on MIDP implementation notes document. There we have a table of Nokia specific JAD and JAR attributes for easy reference. There's also Scaling topic about Canvas graphics scaling and scalable MIDlet icons, and a System properties table.
Our Java Platform guys' first real experience of a open source project has been the eSWT API development. We had multiple different reasons why we ended up collaborating with the Eclipse open source community. Lately there has been other announcements for mobile Java open source projects. Even some Java Community Process JSRs are developed as open source. So to me it seems that it starts to be a defacto way to introduce new mobile Java APIs the open source way.
The primary reason for us doing open source is to improve the compatibility of our API implementation. Opening implementation code for an API will also allow other parties more easily start implementation of the same API on other platforms. Since the implementation mostly shares exactly as-is much of the code base this improves directly compatibility more than just some technology compatibility kit (a test set verifying API signature and expected API behavior). Testing never grabs all the details, similar API compatibility tests won't test everything. Sharing implementation code will ensure in a much better and simple way behavioral compatibility. Open source is thus a way to truly limit fragmentation - a too much used curse word among java apis.
However, the open source license has to be such that it allows commercial usage of the code. The API implementation code must be possible to be used as part of closed or proprietary products. Also the license must not have a viral effect on applications using the API. Open source API implementation should not mean that the applications using that API are also forced to be open source. In other words linking from code with a different license should be allowed. I personally for example would like to see much more mobile Java APIs being developed in open source style licenses.
Open source way of working is also lot more fun. You get to be more in contact with potential clients for your API as well as discussions with other implementation teams is more easy as communication can be open.