<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Java for S60</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.s60.com/java/posts.xml" />
   <id>tag:blogs.s60.com,2008:/java//31</id>    
    <updated>2008-06-04T19:44:42Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.2</generator>
 
<entry>
    <title>Two things that go well together: Web Runtime and Java</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/06/two_things_that_go_well_togeth_1.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1853</id>
    
    <published>2008-06-04T19:12:02Z</published>
    <updated>2008-06-04T19:44:42Z</updated>
    
    <summary>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...</summary>
    <author>
        <name>Gorkem Ercan</name>
        
    </author>
            <category term="Development" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>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 <a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html">Web 2.0</a> applications and web based UIs.</p>
<p>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? </p>
<p>Starting with the S60 Feature Pack 2, java runtime introduced the new UI toolkit for Java, namely eSWT. eSWT includes an amazing component called <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/GUID-84D00DFC-9B11-454C-8087-28B31515B926/org/eclipse/swt/browser/Browser.html">Browser</a>. 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 <a href="http://wiki.forum.nokia.com/index.php/CS000974_-_Using_eSWT_Browser_in_Java_ME">simple example</a> on Forum Nokia wiki demonstrating this.</p>
<p>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 <a href="http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29">mash up</a> the local data with the online services, (Google Maps, Flickr etc.)</p>
]]>
        
    </content>
</entry>
<entry>
    <title>Photos from JavaOne08</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/05/photos_from_javaone08.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1794</id>
    
    <published>2008-05-13T18:01:48Z</published>
    <updated>2008-05-13T18:19:12Z</updated>
    
    <summary>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...</summary>
    <author>
        <name>Gorkem Ercan</name>
        
    </author>
            <category term="Community" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>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.</p>
<p align="center">
<embed src="http://share.ovi.com/tools/twidgets/slideshow.swf?feed=gorkem.javaone08" width="512" height="384" type="application/x-shockwave-flash"></embed></p>]]>
        
    </content>
</entry>
<entry>
    <title>Performance discussion at JavaOne</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/05/performance_discussion_at_java.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1774</id>
    
    <published>2008-05-06T13:11:01Z</published>
    <updated>2008-05-06T13:21:25Z</updated>
    
    <summary>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...</summary>
    <author>
        <name>Gorkem Ercan</name>
        
    </author>
            <category term="Community" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>If you are attending the <a href="http://java.sun.com/javaone/sf/index.jsp">JavaOne</a> 2008 conference, there will be a <a href="https://www28.cplan.com/cc191/sessions_catalog.jsp?ilc=191-1&amp;ilg=english&amp;isort=&amp;isort_type=&amp;is=yes&amp;icriteria1=+&amp;icriteria2=+&amp;icriteria9=BOF-5856&amp;icriteria8=&amp;icriteria3=Nokia">BOF</a> 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.</p><p>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. </p>]]>
        
    </content>
</entry>
<entry>
    <title>Ready at the JavaOne conference</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/04/ready_at_the_javaone_conferenc.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1736</id>
    
    <published>2008-04-28T11:58:07Z</published>
    <updated>2008-04-28T12:01:38Z</updated>
    
    <summary><![CDATA[JavaOne conference is very close now and looks like we are ready for it. Your friendly neighborhood bloggers, Aleksi and I, will have&#160; a technical session titled &quot;Touch UI in Mobile Java Technology based Devices&quot;. In this talk we will...]]></summary>
    <author>
        <name>Gorkem Ercan</name>
        
    </author>
            <category term="Community" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p><a href="http://java.sun.com/javaone/sf/">JavaOne</a> conference is very close now and looks like we are ready for it. Your friendly neighborhood bloggers, Aleksi and I, will have&#160; a technical session titled &quot;<a href="https://www28.cplan.com/cc191/sessions_catalog.jsp?ilc=191-1&amp;ilg=english&amp;isort=&amp;isort_type=&amp;is=yes&amp;icriteria1=+&amp;icriteria2=+&amp;icriteria9=TS-5325&amp;icriteria8=&amp;icriteria3=">Touch UI in Mobile Java Technology based Devices</a>&quot;. In this talk we will be covering the touch UI features of&#160; 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.</p>
<p>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,&#160; 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.</p>]]>
        
    </content>
</entry>
<entry>
    <title>What I like about WidSets</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/04/what_i_like_about_widsets_1.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1714</id>
    
    <published>2008-04-22T20:08:24Z</published>
    <updated>2008-04-23T18:19:20Z</updated>
    
    <summary>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...</summary>
    <author>
        <name>Gorkem Ercan</name>
        
    </author>
            <category term="Applications" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>There are many reasons why I like <a href="http://www.widsets.com/">Widsets</a>. 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.</p>

<p>In case you have not heard of WidSets, I recommend you to take a moment and visit WidSets <a href="http://www.widsets.com/">website</a>. 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. </p>

<p>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 <a href="http://www.widsets.com/widget/3172/">sudoku</a> or <a href="http://www.widsets.com/widget/3068/">chat</a> for the platform. </p>

<p>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 <a href="http://www.widsets.com/widget/214733376/index.html">widget</a> 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. </p>

<p>Overall, WidSets is a highly recommended java application if you are looking for ways to consume web 2.0 content on your S60 phone.</p>]]>
        
    </content>
</entry>
<entry>
    <title>eSWT Article Posted</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/04/eswt_article_posted.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1665</id>
    
    <published>2008-04-01T08:21:31Z</published>
    <updated>2008-04-01T08:21:34Z</updated>
    
    <summary>I&apos;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...</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Development" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>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 <a href="http://www.forum.nokia.com/devices/matrix_s60_3ed_fp2_1.html">announced</a> some of these devices already.) </p>

<p>The article was originally published in <em>S60 News</em> 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:</p>

<p>"Taking S60 Java Platform user interface capabilities to the next level"<br />
<a href="http://blogs.s60.com/java/S60_eSWT_article.pdf">Download PDF file</a><br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>Events for the java developers</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/02/events_for_the_java_developers.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1585</id>
    
    <published>2008-02-22T13:29:22Z</published>
    <updated>2008-02-22T13:29:44Z</updated>
    
    <summary><![CDATA[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&nbsp; the Eclipse open source community. I will be hosting, together with Majumder Deeptendu,...]]></summary>
    <author>
        <name>Gorkem Ercan</name>
        
    </author>
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>There are a couple of upcoming java developer events where you can spot the members of the S60 java team.</p> <p><a href="http://www.eclipsecon.org/2008/" target="_blank">EclipseCon 2008</a> is the annual gathering of&nbsp; the Eclipse open source community. I will be hosting, together with Majumder Deeptendu, a <a href="http://www.eclipsecon.org/2008/?page=sub/&amp;id=255" target="_blank">tutorial</a> on developing applications using <a href="http://www.eclipse.org/ercp/" target="_blank">embedded Rich Client Platform (eRCP)</a>.&nbsp; Our java team actively participates on the eRCP project. eSWT, which Aleksi has <a href="http://blogs.s60.com/java/2007/10/eswt_available_for_development.html" target="_blank">blogged</a> 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 <a href="http://www.eclipsecon.org/2008/?page=sub/&amp;id=247" target="_blank">eRCP project update</a>. If you are attending the EclipseCon, I will be glad to meet you. </p> <p>Later in May 2008, java team will be present in the <a href="http://java.sun.com/javaone/sf/" target="_blank">JavaOne 2008</a>. We will have several technical sessions and <a href="http://en.wikipedia.org/wiki/Birds_of_a_Feather_%28computing%29" target="_blank">BOFs</a>. 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!</p>]]>
        
    </content>
</entry>
<entry>
    <title>YouTube available as a Java client for S60 devices</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2008/01/youtube_available_as_a_java_cl.html" />    
    <id>tag:blogs.s60.com,2008:/java//31.1533</id>
    
    <published>2008-01-29T17:47:28Z</published>
    <updated>2008-01-29T18:03:53Z</updated>
    
    <summary>YouTube is available as a beta for some S60 devices (device models N73, N95, E65, 6110, 6120). Check www.youtube.com/yt_mobile_app....</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Applications" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>YouTube is available as a beta for some S60 devices (device models N73, N95, E65, 6110, 6120). Check <a href="http://www.youtube.com/yt_mobile_app">www.youtube.com/yt_mobile_app</a>.<br />
</p>]]>
        <![CDATA[<p>The look of the client is nice and it provides easy video lookup features too! I guess usability is quite highly dependent on your operator network bandwidth and latency. </p>

<p>Note: Streaming of video uses a lot of data so watch out if you don't have a flat-rate, unlimited data plan!</p>

<p>The embedded video is streamed with S60's Real Player and you have to configure the access point settings also to it: <a href="http://www.google.com/support/youtube/bin/answer.py?answer=87023&topic=13744">http://www.google.com/support/youtube/bin/answer.py?answer=87023&topic=13744</a>.<br />
</p>]]>
    </content>
</entry>
<entry>
    <title>New Java Developer&apos;s Library</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2007/12/new_java_developers_library_1.html" />    
    <id>tag:blogs.s60.com,2007:/java//31.1450</id>
    
    <published>2007-12-16T22:00:01Z</published>
    <updated>2007-12-17T22:00:14Z</updated>
    
    <summary>There&apos;s a new version of our Java ME Developer&apos;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...</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Development" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>There's a new version of our <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/">Java ME Developer's Library</a> available at Forum Nokia. It covers the <a href="http://blogs.s60.com/java/2007/11/new_java_features_of_3rd_ed_fp.html">announced new features of S60 Java</a> available for developers.</p>

<p>We have Javadocs for the new APIs: <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/index.html?content=GUID-84D00DFC-9B11-454C-8087-28B31515B926/overview-summary.html">eSWT</a> and <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/index.html?content=GUID-9F1AB970-0E46-49E2-B79F-3D5222A5DD47/overview-summary.html">IAPInfo</a>.  You can also find API overviews and examples for these from <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/index.html?content=GUID-F015EED6-DBB0-4107-88BD-6EDAE9A6CB5B.html">UI and graphics</a> and <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/index.html?content=GUID-13BFD1FB-BCFE-4D6C-8130-7B579A056C70_GUID-D7A39912-0289-4FCF-862F-035C0E900A69.html">Networking</a> 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.</p>

<p>The library also has significant update on MIDP implementation notes document. There we have a table of Nokia specific <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/index.html?content=GUID-C5D3E0F5-72B9-4EE7-8BA7-20DE4A538FB8.html">JAD and JAR attributes</a> for easy reference. There's also <a hreF="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/index.html?content=GUID-37D10933-313D-4BB3-ABEB-780F38638BBC.html">Scaling</a> topic about Canvas graphics scaling and scalable MIDlet icons, and a <a href="http://www.forum.nokia.com/document/Java_ME_Developers_Library_v2/index.html?content=GUID-1F6DF24F-40E4-4450-80F6-783C996A25D7.html">System properties</a> table.<br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>Open source APIs</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2007/12/open_source_matters.html" />    
    <id>tag:blogs.s60.com,2007:/java//31.1362</id>
    
    <published>2007-12-13T12:34:10Z</published>
    <updated>2007-12-13T12:39:33Z</updated>
    
    <summary>Our Java Platform guys&apos; 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...</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Open source" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>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.</p>

<p>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.</p>

<p>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.</p>

<p>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.</p>]]>
        
    </content>
</entry>
<entry>
    <title>S60.com technology update on Java</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2007/12/technology_update_on_java.html" />    
    <id>tag:blogs.s60.com,2007:/java//31.1430</id>
    
    <published>2007-12-09T20:00:19Z</published>
    <updated>2007-12-09T20:14:23Z</updated>
    
    <summary>Recently we posted a short overview on M2G and eSWT APIs on s60.com: Richer user experience with S60 Mobile Java M2G allows to render SVG content inside Java applications, and it&apos;s already available in latest S60 and Series 40 devices...</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Development" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>Recently we posted a short overview on M2G and eSWT APIs on s60.com:<br />
<a href="http://www.s60.com/business/productinfo/technologyupdate/?action=archiveNews&yid=2007&mid=12&whatshot=1&hotNewsId=398&techup=1"><br />
Richer user experience with S60 Mobile Java</a></p>

<p>M2G allows to render SVG content inside Java applications, and it's already available in latest S60 and Series 40 devices out there (Nokia N95 etc.).  It basically allows very easy way for reaching 2D graphics scalability. Making device resolution independent games has been hard this far and many games are simply fixed to certain resolution only. Game publishers had to do multiple variants for the same game for multiple resolutions. I'm eagerly waiting for some games to utilize this. Of course it's not just games the technology is targeted, you can use it also to create fancy looking 2D UIs.<br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>New Java features of 3rd Ed. fp 2</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2007/11/new_java_features_of_3rd_ed_fp.html" />    
    <id>tag:blogs.s60.com,2007:/java//31.1386</id>
    
    <published>2007-11-23T09:00:55Z</published>
    <updated>2007-11-23T09:14:30Z</updated>
    
    <summary>We&apos;ve announced already the new flexible UI toolkit eSWT in our previous post. eSWT is definitely the most biggest new feature in S60 Java Platform for developers in 3rd Edition Feature Pack 2. But there&apos;s a lot more in the...</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Development" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>We've announced already the new flexible UI toolkit eSWT in our <a href="http://blogs.s60.com/java/2007/10/eswt_available_for_development.html">previous post</a>. eSWT is definitely the most biggest new feature in S60 Java Platform for developers in 3rd Edition Feature Pack 2.</p>

<p>But there's a lot more in the new S60 Java Platform. We have both, new API features and under-the-hood functionality. Below I'll try to list most of the nitty-gritty features. We'll be providing more information on how to use these via Forum Nokia Wiki site, and perhaps cover some in more details in future posts here too. They will also be covered in our reference documentation in <a href="http://www.forum.nokia.com/main/resources/technologies/java/documentation/Java_ME_developers_library.htm">Java ME Developer's Library</a> when a 3rd Ed FP 2 version will be available.</p>

<p><strong>New APIs available:</strong><br />
<ul><li>Nokia IAPInfo API<br />
<li>Device dedicated Media keys (Play/Pause/Stop) access as normal key events <br />
<li>Control over End call key (Red call key) behavior for application's lifecycle<br />
<li>Enabling device theme background for Canvases for custom component usage<br />
<li>Prevention of screen saver via Nokia UI API<br />
<li>Foreground/background events via pauseApp/startApp<br />
<li>Flip close event for fold/clamshell devices via pauseApp<br />
<li>Access to device IMEI, network access type (gprs / csd etc.), network id, network signal level, battery level, country code, date and time formats via system properties<br />
<li>LCDUI Canvas Graphics scaling (introduced originally in 3rd ed) enhanced for orientation switching devices<br />
</ul></p>

<p><br />
<strong>IAPInfo API</strong> allows to access device's Internet Access Points configuration and allows to specific explicitly for General Connection Framework network connections (http etc.) which IAP should be used.</p>

<p><strong>New other functionality:</strong><br />
<ul><li>Java application startup time is better due to OS on-demand paging and other changes (and as a result you also have more user RAM available).<br />
<li>Support for scalable icons (SVG) for MIDlets<br />
<li>Support for categorization of MIDlets: game / application<br />
<li>Device volume keys will change audio output volume of MMAPI<br />
<li>Selection key has a label (as a result LCDUI Commands are more aligned with Series 40 Java)<br />
</ul></p>

<p><br />
<strong>New architecture</strong></p>

<p>Regarding under-the-hood functionality, the S60 Java Platform has gone through a big architectural change. We've changed the VM from a monolithic architecture to more flexible one. Prior to 3rd Ed fp 2, S60 Java had traditional CLDC VM architecture where all API code (class files) were compiled into the virtual machine executable. Now the Java API implementation code is no longer in the VM executable but will be dynamically loaded when needed. </p>

<p>The new architecture allows us to dynamically extend the virtual machine with new APIs. Which is exactly what is used e.g. in our eSWT implementation. When there will be new releases available from us for eSWT, we'll release that directly to developers. Anyone can install that upgrade package to 3rd ed FP 2 devices. Another result of the new architecture is of course memory saving: applications not needing some of the optional APIs wont have them in memory.</p>

<p>We also have changed the threading implementation. Now Java Threads are native. Each Java Thread has a native thread counterpart. Prior to 3rd FP2 the Java threads used so called light-weight threading (sometimes referred to as "green threads" which is a small misnomer) where Java VM had it's own thread implementation and scheduling. Now Java threads are scheduled by OS.</p>

<p><strong>Runtime performance</strong></p>

<p>On MMAPI we have done performance improvements. In overall the mixing of audio content now works lot better and playback latency is smaller. This means improvements to Java gaming experience. The media deallocation now properly frees the memory and concurrent number of players being in pre-fetch state is increased.</p>

<p>One smaller, but rather dramatic change has been implemented on LCDUI Canvas class. Previously each Canvas instance contained it's own double buffer for graphics contents. The size of the buffer image is the size of the screen so it consumes quite much runtime memory. Double buffering for Canvas is nowadays required feature by MIDP specification 2.1. If a MIDlet has multiple Canvas instances the memory may easily run out. On other platforms e.g. Nokia Series 40 had implemented different double buffering scheme: each Canvas instance simply shared the same double buffer. We at S60 Java decided to implement the same scheme and as a result we are behaving the same with Series 40 devices.<br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>Control your access point or grant access for a Java application</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2007/11/control_your_access_point_or_g.html" />    
    <id>tag:blogs.s60.com,2007:/java//31.1415</id>
    
    <published>2007-11-22T14:07:00Z</published>
    <updated>2007-11-22T14:28:30Z</updated>
    
    <summary>Many Java applications are showing all sorts of user prompts during runtime. There&apos;s Internet Access Point prompts and different Access prompts for sensitive features (aka Security Prompts). These prompts allow flexibility and security for the user but when an application...</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Features" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>Many Java applications are showing all sorts of user prompts during runtime. There's Internet Access Point prompts and different Access prompts for sensitive features (aka Security Prompts). These prompts allow flexibility and security for the user but when an application is used more and more they start to be just plain irritating. Luckily there's a feature in S60 devices to configure these prompts to be asked either less frequently or not at all (depending on the feature).</p>

<p><img alt="IAP_Prompt_small.png" src="http://blogs.s60.com/java/IAP_Prompt_small.png" width="176" height="208" align="right"/></p>

<p>On S60 devices users may access Java application specific settings via Application Installer menu item. In the list showing installed applications there's an options menu item "Suite settings" (on 3rd ed FP 1 it's just "Open" menu item).</p>

<p>On 3rd ed FP 1 devices you will be able to configure a default Internet Access Point for that particular Java application. If you set it the application won't never prompt you for the access point but automatically uses the specified IAP when connecting to network.</p>

<p>The device access settings are also configurable via the same view but mostly this only makes sense for signed applications as the available settings for unsigned (aka unidentified) 3rd party applications are forced to be more prompting as defined by Java specifications (MIDP, JTWI and MSA security recommendations).</p>

<p>We are also working on improving this functionality even more on S60 3rd ed fp 2 devices (read: getting rid of those annoying prompts). But more out of that later when details are more solid.</p>

<p>Btw: The Internet Access Point prompts are S60 specific feature which isn't available in other platforms, at least to my knowledge. Many other Java devices simply use the same access point as configured for Browser. S60 is more flexible as you can use a specific access point for each Java application. For example, Browser may be configured to operator's "WAP access point" and a certain Java application to more free "Internet" access point.<br />
</p>]]>
        
    </content>
</entry>
<entry>
    <title>I am NOT famous</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2007/11/i_am_not_famous.html" />    
    <id>tag:blogs.s60.com,2007:/java//31.1416</id>
    
    <published>2007-11-21T22:32:12Z</published>
    <updated>2007-11-21T22:32:22Z</updated>
    
    <summary>A colleague has brought this posting to my attention that I am not famous. Although this did not come as a surprise, it did encourage me to do a posting to tell more about myself. So here it goes. I...</summary>
    <author>
        <name>Gorkem Ercan</name>
        
    </author>
            <category term="Community" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>A colleague has brought <a href="http://symbianguru.typepad.com/welcome/2007/09/yet-another-new.html" target="_blank">this</a> posting to my attention that I am not famous. Although this did not come as a surprise, it did encourage me to do a posting to tell more about myself. So here it goes.</p> <p>I am working as part of the organization that develops the Java platform for S60. Like most of the Java platform team, I am based in <a href="http://en.wikipedia.org/wiki/Tampere" target="_blank">Tampere</a>, which is located in Finland. On my daily work, I work with a group of talented people to create advanced stuff for the Java platform. Some of our publicly available work is <a href="http://wiki.forum.nokia.com/index.php/ESWT" target="_blank">eSWT</a> UI toolkit for S60, which we had a <a href="http://blogs.s60.com/java/2007/10/eswt_available_for_development.html" target="_blank">posting</a> about in this blog sometime ago and also the open source <a href="http://www.eclipse.org/ercp" target="_blank">eRCP</a> runtime. I also run a second <a href="http://gorkem-ercan.blogspot.com/" target="_blank">blog</a> that has more regular postings about eSWT and eRCP. Hmm... what else, I am a dog person, meaning I have a dog. I have joined Nokia because it would give me access to the cool devices and now it is addictive. And my star sign is Leo.</p>]]>
        
    </content>
</entry>
<entry>
    <title>eSWT available for development</title>
    <link rel="alternate" type="text/html" href="http://blogs.s60.com/java/2007/10/eswt_available_for_development.html" />    
    <id>tag:blogs.s60.com,2007:/java//31.1354</id>
    
    <published>2007-10-12T12:54:24Z</published>
    <updated>2007-10-15T09:18:41Z</updated>
    
    <summary>Java Developers can now start developing for a new eSWT UI toolkit. On actual devices eSWT will be available starting from S60 3rd Edition FP2 devices. eSWT API takes S60 Java Platform user interface capabilities to a completely new level....</summary>
    <author>
        <name>Aleksi Uotila</name>
        
    </author>
            <category term="Features" />
    
    <content type="html" xml:lang="en-us" xml:base="http://blogs.s60.com/java/">
        <![CDATA[<p>Java Developers can now start developing for a new <strong>eSWT UI toolkit</strong>. On actual devices eSWT will be available starting from <strong>S60 3rd Edition FP2</strong> devices. eSWT API takes S60 Java Platform user interface capabilities to a completely new level.</p>

<p>The graphics capabilities of Java are already very rich but so far, the capability of the S60 Java platform UI toolkit (MIDP <a href="http://wiki.forum.nokia.com/index.php/LCDUI">LCDUI</a>) has not been on par with the S60 native UI frameworks. However, the S60 3rd Edition FP 2 changes this dramatically by introducing a completely new UI component toolkit to the Java Platform called eSWT. Standing for embedded Standard Widget Toolkit, eSWT is a significant facelift for Java UI frameworks.</p>

<p><a href="http://wiki.forum.nokia.com/index.php/ESWT">eSWT</a> is a cross platform toolkit developed in cooperation in Eclipse open source project called <a href="http://www.eclipse.org/ercp">eRCP.</a> What's even more interesting is that eSWT shares most of the API with desktop <a href="http://www.eclipse.org/swt">SWT</a>.</p>

<p>The eSWT API provides: <br />
- A rich user interface component set<br />
- Flexible and scalable layout system via layout managers<br />
- Rich user interface events<br />
- Access to native UI functionality on par with smartphone UI frameworks.</p>

<p><img alt="compose_haze.PNG" src="http://blogs.s60.com/java/eswt/setting_jing.PNG" width="242" height="321" align="left" hspace="0" /><img alt="compose_haze.PNG" src="http://blogs.s60.com/java/eswt/compose_haze.PNG" width="242" height="321" hspace="0" /><br />
<em>Screenshots from an example application using eSWT</em></p>

<p>Since eSWT on the S60 has been implemented using the normal S60 UI services, applications built using it will automatically have the standard look and feel of S60, including S60 themes and internationalization features. </p>

<p>The <strong>eSWT plugin for S60 Java SDK</strong> is available: <br />
<a href="http://www.forum.nokia.com/info/sw.nokia.com/id/a2b45e73-59a8-46b7-9f9c-82f059334eb4/eSWT_SDK_plugin.zip.html">eSWT plug-in for S60 3rd Edition SDK for Symbian OS, Supporting Feature Pack 2, for MIDP, Beta</a>.<br />
You need to have the beta SDK which is available here:<br />
<a href="http://www.forum.nokia.com/info/sw.nokia.com/id/6e772b17-604b-4081-999c-31f1f0dc2dbb/S60_Platform_SDKs_for_Symbian_OS_for_Java.html">Java SDK for 3rd Edition, FP 2, Beta</a>.</p>

<p>The plugin implementation for the SDK is identical to the actual device implementation. It is just compiled to S60 emulator target (Intel). We are very interested to hear your comments about the new toolkit.</p>

<p>There's different ways to contact us. We are part of the Eclipse eRCP project so you can post comments to the Eclipse eRCP newsgroup. On how to access see <a href="http://www.eclipse.org/ercp/">eRCP project pages</a> for info. For bugs you may find a report to Eclipse Bugzilla is preferred. Or you can drop a comment also to this blog.<br />
</p>]]>
        
    </content>
</entry>

</feed> 

