Nokia 5800

Is Symbian going to make it on mobile devices? I’ve used java a long time now and hoped the fragmentation would be sorted out for by now. My first experience with S60 was pretty shocking. Sun’s SDK for wireless devices is actually really good, but runs on the emulator generally won’t on the actual device. It is a very slow and painful debugging process to test on emulator, then create a SIS (or jar files) and upload to the phone, run it and watch it crash. No way to know were or why, and you need to get the stack trace yourself (display on a Form, or send to a file etc). Ugly, and in many devices the standard Bluetooth API (JSR82) will fail to connect because the phone’s firmware is locked. Pretty bad news for a developer trying to sell innovative apps.

Now, The fragmentation is in both directions. More handsets and new code tools all the time. Python is better at some of the portability and debugging. It is very easy to use a Bluetooth Console to execute commands directly on the device. But not all devices are supporting Python. Flash and Brew on devices also seemed promising. Brew bundles the billing/purchase and digital signing right into each app. Seems like a good idea for developers, but has been buggy and does limit how you can deploy your application. Now don’t forget JavaScript. JavaScript has done well and is on many platforms and almost every web browser. iPhone heavily leverages JavaScript and has shunned Flash and JVM’s despite the rumors of Apple supporting both soon. So, pick a device and one or two code tools? Not an easy thing to do because you also need to consider what App Store is going to get you into the market.

(not even going to talk about C/C++ because it just needs to die. in my opinion, only the firmware for each phone should be native. Note that much of Nokia’s SDK required elaborate configuration to write even simple apps for S60)

For many of these reasons I would strongly suggest phone gap. They have an Open Source Project to try to address these problems and are going to do well just because developers need to be able to churn out apps quickly. No bluetooth support yet, but watch out for it.

Now, what about all my Java code I have thus far? Well, Nokia isn’t totally asleep at the wheel, it just seems like it. But they have updated their Java Runtime for S60 to version 2.0. It is way better and solved many of platform issues on my Nokia 5800.