Hi,
I need to port a Java ME S40 application to Java ME S60. Is there any simple way to do this while redoing the UI to match S60 interaction guidelines? It'd ideally like to reuse as much of the original S40 app code as possible.
Thanks in advance
Hi,
I need to port a Java ME S40 application to Java ME S60. Is there any simple way to do this while redoing the UI to match S60 interaction guidelines? It'd ideally like to reuse as much of the original S40 app code as possible.
Thanks in advance
have you been using LCDUI api for the UI or have you been using some other 3rd party library like LWUIT or J2ME Polish ?
Those libraries should support screen-scaling if i'm not mistaken...
Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them.
Did you try running the app on an S60 emulator (or device)? It might be fine as it is.
If you're using high-level LCDUI components (List, Form, etc), it's kind of like AWT or SWT in that the objects are basically "wrappers" for native UI components. If you get it right, the UI will just adapt.
LWUIT is more like Swing, in that the components are drawn by Java code. The app will look pretty much identical except, as Tiger says, scaling to the screen size for you.
If you're using the extra Nokia UI libraries for Series 40, you might have more of a job on your hands.
Graham.
Last edited by grahamhughes; 2013-03-18 at 16:56. Reason: I meant "S60", not "S40"
Thanks for the replies. The S40 app only uses LCDUI components. It runs on my Nokia N8 perfectly but doesn't look very nice at all. Ideally, it'd like to replace the menu/soft key driven S40 interface with a touch friendly S60 interface. Is this possible with Java ME on S60?
Depends what else you want it to do... you'll see from the LCDUI javadocs, you don't get many components or many options. Generally, a Java ME app is likely to look more basic than a native Series 60 app, simply because you have a more limited set of components to deal with. But it should at least work, and it should look reasonably consistent with the host device's UI (colour scheme, fonts, and so on).
What you've built is not really a "Series 40 app", but a "Java ME App", and each device you put it on will make it's own effort to present it as best it can.
Your options are:
1. See what else you can add with LCDUI - for example, you can add images to Forms and use them as buttons
2. Consider implementing some custom UI with a Canvas
3. Rebuild the UI with something like LWUIT, which gives you more flexibility
These are in order of both how much effort and how much difference you'd get. All of these would equally update the UI on the S40 too.
In terms of (3), one UI option unique to S60 is eSWT... take a look in the Java Library for details.
Graham.
Graham, thanks for the info and apologies for the late reply. I've started modifying the original Java ME app by including additional LCDUI components, with the aim of making it more S60 touch-friendly. So far so good!