A very important aspect about porting an application to a Maemo device is to keep in mind the key features (and drawbacks) of the device itself either from the hardware point of view and from the software one:
size, touchscreen, input methods, CPU, RAM, disk storage, ...
missing modules, missing kernel features, limited set of features, brand new features, ...
We'll try to talk about this stuff during this session
For example, many desktop applications rely on the "mouseOver" feature to let graphical widget appear when the mouse is over a particular area of the screen (menus, toolbars, pop-up balloons and as such).
Stylus and touchscreen do not provide such a feature, thus when porting your app, you will need to take this into account.
But you can exploit them and turn them in nice additional features:
the touchscreen sensitivity, for example.
It can detect if you're touching the screen with the stylus of with a finger.
You can use this information to draw widgets on the screen when the user is touching it with the finger and make them disappear when he starts using the stylus again (or the other way around).
The Maemo platform do provide the developer with some nice features that your application could deploy (and that usually are not available on a desktop):
state saving and background killing applications: you register your state_save and state_load callback functions. They will handle OSSO state saving messages (usually sent in response to hardware state changes like turning off a device)
network change events
The better you integrate this system notifications, the better will be the user experience (again, that’s what matters)