I was trying to compare the three above mentioned platforms and what considerations one needs to think about when programming in order to create some kind of code base that could run on all three.
This is what I have collected for the iPhone - it would be great if somebody else could write something similar for the other two.
- Only one application can run at any given time. i.e. that is why the SQLLite database is loaded as a file into the app instead of as traditionally having some kind of server to connect to.
- Only one fixed size window 480x320 pixels
- Runs in a sandbox, when the app is deployed a sandbox is created "around" the app, the app can only read/write files from within that area. Also low-level access to the phone is restricted.
- Since a program can be stopped at any time (see point 1) this needs to be considered when designing the app, at any time must the app be able to write its current state to disk so that it can resume later. If this takes longer than five seconds the app will be aborted.
- 128MB RAM, about half of that 64MB is available to the app. There is typicall 4GB storage (depends on model), no virtual memory, if memory is running out the app may be aborted.
Edit: just to be clear, I am not after which platform/os is best for the developer, I am just interested in spec. comparison to know what can be expected if one has three target platforms and using native language for each (not web apps), what the memory and other considerations are.
Edit: removed language as its assumed that native language for the platform will be used.