开发者

Comparison mobile devices as dev. platforms iPhone, Blackberry Windows Mobile

开发者 https://www.devze.com 2022-12-17 13:52 出处:网络
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.

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.

  1. 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.
  2. Only one fixed size window 480x320 pixels
  3. 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.
  4. 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.
  5. 128MB RAM, about half of that 64MB is available to the app. There is typicall 4GB storage (depends on 开发者_如何学JAVAmodel), 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.


There is an excellent article on Codeproject which would be of benefit to your question. Head on over here to read it.

Hope this helps, Best regards, Tom.


For Windows Mobile I want to add:

  • Windows Mobile in comparison to iPhone allows multiple applications to run at same time.
  • It comes with variable screen sizes and has different sdks ( Windows Mobile Professional for 'Windows Phones' (smartphones) with touchscreens and Windows Mobile Standard for 'Windows Phones' with regular screens)
  • The framework which is generally used is .Net Compact Framework besides some people also prefer open-net which is a open source framework.
  • Unlike in iPhone, Windows Mobile has no private api's which means it gives more power to developers.
  • The memory size allowed for a program is 32 mb
  • You do not need a developer license for developing and shipping applications on windows mobile although windows mobile itself prompts you to avoid installing apllications which are from unknown publishers.( which is more interesting unlike in iPhone you need to have a license while you only want to debug your applcation on your device(not for the jailbroken devices.))

And for some bad things about windows mobile, see this link.

Thanks,

Madhup


I feel like the final list will be of little use, as all data points collected will differ substantially in content apart from your last one. Some corrections to your iPhone list:

1) Local databases such as SQLLite are"not traditionally" implemented as a server on other mobile platforms either (they also use various file-oriented DB's).

2) Very soon that single fixed size assumption may well be inaccurate.

3) The App is in a sandbox but can write to some areas outside of the sandbox via API calls (for instance, photo library or address book).

5) That number varies between 3Gs and 3G/2G/Touch (the older models have half the memory)

6) Monotouch is available, but I'm not sure there's anything that far along for Java based iPhone development. There's also a Flash compiler from Adobe.

Basically if you are thinking cross platform, memory/screen size/system access/common databases will all differ - so the whole thing boils down to language AND LIBRARIES. And that is where you really have an issue with a cross-platform approach, because the libraries are very different per system... in the end you MIGHT be able to share data structures and some pure data processing code across the platform binaries, with very different GUI code for each system. But is it really worth it to constrain the development of each client?

On a side-note Blackberry is Java-based, so it presents yet another hurdle for such an attempt.

If you really want to see what cross platform ends up looking like, take a look at the codebase for Waze - a cross-platform open source navigation app:

http://www.waze.com/wiki/index.php/Source_code

Client source for iPhone and Windows Mobile lives there.

0

精彩评论

暂无评论...
验证码 换一张
取 消