Pong2 on Nokia S60 device

This week i have started with the development of Pong2 for the J2ME platform. I will use the Nokia 5800 as hardware platform and the S60 symbian operating system (Nokia 5800) as target operating system.

The following software tools are used:
– Eclipse Pulsar 3.5
– Nokia S60 5th Edition SDK kit.
– eSWT component palet.

Some background information about the development tools.

Eclipse Pulsar

Pulsar is a tools integration platform for the mobile developer. It make it easy to get the tools and handset SDKs you need for developing mobile applications.

S60 platform overview

The S60 platform is the world’s most popular smartphone platform. It is implemented in a diverse range of devices and provides application and media developers with a consistent set of technologies. Equally at home delivering advanced enterprise applications, games, or music, the S60 platform gives developers unparalleled opportunities in the mobile space.

To create applications, developers can use Symbian C++ (using native Symbian OS and S60 platform APIs), a set of open C and C++ APIs, the Javaâ„¢ language (using MIDP 2.1 with an extensive range of additional JSRs), Web Runtime (WRT) (using standard web technologies), Flash Lite from Adobe, and Python.

In addition, developers may wish to explore the Qt for S60 technology preview, which provides an insight into a new, cross-platform API that will become available on the S60 platform in the future.

Content developers have comprehensive support for audio, image, and video formats. In addition, Flash Lite from Adobe and SVGT can be used for animated content, while the Web Browser for S60 supports standard desktop web technologies. Artists and graphic designers can create themes for S60 devices that can completely alter a device’s look and sound.

Once applications and content have been created, support for OMA DRM protects developers’ intellectual property.

The S60 platform enables developers to create high-value applications and content with lucrative revenue opportunities. The platform approach — with uniform implementation of technologies and supporting tools, documentation, and examples — requires less effort by developers to grasp the biggest market opportunity.

Find out more about the platform’s value proposition to consumer and enterprise users at S60.com, the “one-stop shop” for consumer information on the S60 platform — including applications, licensees, devices, news, and blogs.

eSWT stands for Embedded Standard Widget Toolkit.

It is an open source widget toolkit for Java designed to provide efficient, portable access to the user-interface facilities of the devices on which it is implemented. It is co-developed by Nokia, IBM and others in the eRCP Eclipse foundation project.

It’s API is a subset of desktop SWT API developed also in Eclipse. Additionally eSWT also contains Mobile Extensions for SWT package containing new APIs specially designed for mobile UIs in mind.

For Java ME eSWT provides rich UI functionality:

* rich component set,
* flexible layouts, freely positionable components,
* rich UI events, and
* rich access to native UI functionality on-par with smartphone UI frameworks.

eSWT is designed so that it can both be implemented in CLDC and CDC. It is thus possible to implement that in any Java MIDP device. S60 3rd Edition FP2 will have eSWT accessible in S60 Java for normal MIDlets. In this case it is a complementary UI toolkit for MIDP’s LCDUI toolkit.

eSWT is also integral part eRCP (Embedded Rich Client Platform), a new rich application model being currently developed in Eclipse. In other words eSWT can be a standalone UI toolkit or provided as part of eRCP.

Make eclipse Galileo 3.5 work with a NTMLv2 Proxy

I installed eclipse 3.5 at my work place (where we access internet through an authenticated NTML proxy). I was unable to make eclipse pass through this proxy, which prevented me to install updates and additional software.

Anthony Dahanne’s describes the workaround on his blog (in french). The Apache httpclient implementation should be disabled because it doesn’t work well with NTMLv2 proxies.

For NTLMv2 Proxies, that require user name and password for access the workaround is to

1. Disable the ECF httpclient provider.
2. Provide the NTLMv2 proxy authentication info (proxyhost, domain, username, and password)

In practice, edit your eclipse.ini file to append the following properties.

-Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient
-Dhttp.proxyPort=8080
-Dhttp.proxyHost=myproxy
-Dhttp.proxyUser=mydomain\myusername
-Dhttp.proxyPassword=mypassword
-Dhttp.nonProxyHosts=localhost|127.0.0.1