I’ve been reading stuff recently about creating native (non-java) mobile phone apps.
The key thing is application signing.
In an attempt to prevent viruses and malicious code from being run on mobile devices, the major platforms require that applications are signed using a cryptographic key before being distributed. The two platforms have different requirements, but this signing process is expensive and difficult in both cases.
Things range from really hard (if you have time and money) to almost impossible (if you lack either time or money).
Windows Mobile:
“I can’t emphasise enough, just how bad the current code-signing mechanisms are in WM5 / Smartphone”
Symbian
“Having your application, which you’ve slaved over and spent countless hours perfecting, stuck in the signing process for over a month is unacceptable.”
[At SymbianGuru]
Apple iPhone
Apple of course don’t publicly allow any 3rd apps to run on the iPhone. However by comparison it seems simplicity itself to run whatever you like using unofficial methods.
Java
Java application aren’t native. But to fully access all of the features without warnings requires a code signing certificate too.
Code Signing Certificates
Code signing certificates are very expensive. Often costing several hundred dollars. Which is ok if you charge several hundred dollars per copy, or you sell thousands of units. But it’s really bad if you charge nothing and give away the source code. It’s also bad if you are a very small company trying to sell relatively cheap software.
I think that if I own a device I should be able to do what I want with it (within the limit of the law).
Buying something and then being told that I can’t run my choice of applications on it seems really bad.
Charging people who want to give away stuff is bad too.
It looks like I won’t be buying Symbian for my next mobile phone. 🙁