Monday, March 23, 2009

Bulding projects using polish and porting.

For last few months i have been working on a project which has a lot of going in and around.
first of all its a mobile project. Second it targets all the leading mobile devices available around.

The language of code is so called j2me. For the porting purpose j2me polish has been used.

Now it was my first interaction with polish and for first few days or i should say months i was amazed at how polish accomplishes such a tedious task.

Being in to mobile industry for quite some time i know how tedious and complex is the task of supporting n number of devices which have all together different property set.

The properties are not just the screen size or the api sets , but also the underlying OS capabilities, changes in the same OS as there are always some feature packs available. Key pad mapping, UI capabilities mapping, Use of restricted apis and blab blah blah.

It was always a nightmare for me when i had to port any of my application onto all target devices.
But polish seems to do it quite painlessly.

So i thought why not give polish a close look and see how it does that.

what i found out was quite straight and simple.
Polish with the help of ant takes control of complete building process of any j2me application.

The polish people have written their own routines and code fragments which overrides the default building process. Along with that they have also used the brute force.

What i mean by brute force is they have indexed all the important and not so important capabilities and features of mobile and have made a standard around it. Now whenever you are building a build for any device, its capabilities are hand written in one of the files given by polish people.

this file is called devices.xml. This xml has got indexed features of n number of mobile devices and its ever growing. We can add our own blocks also in it.

Now this all seems to good , but at the end what i found out was it all is on good faith. As its open to changes by anyone, anybody can play around with it. Its very easy to change the name of any device or its feature.

Also i found porting to different devices buggy.

The code am working on has to work on blackberry also. Now during the build process itself the polish issues warning like error in jdptask and utiltask. Even if you build its demo project for blackberry you get the same issue. The web is full of issues faced by developers while porting on different devices.

Some how i fixed the jdp error in the polish jar and when i run the blackberry cod on the device it gives refrence member out of range error. Now its something which cannot be resolved by a developer. am still stuck on it and finally have decided to re write the whole code in blackberry ide itself and build blackberry native code.

So for small portings and portings on normal devices polish is good, but for other devices and for complex projects play with it at your own risk. :)

No comments:

follow me