Developing cross platform mobile application

sohilv picture sohilv · Jul 30, 2010 · Viewed 41.8k times · Source

More and more mobile platforms are being launched and sdk's are available to developers. There are various mobile platform are available: Android, iOS, Moblin, Windows mobile 7, RIM, symbian, bada, maemo etc.

And making of cross platform application is headache for developers. I am searching for common things across the platforms which will help to developers who want to port application to all platforms. Like what are the diff screen resolutions, input methods, open gl support etc. please share details that you know for the any of platform.

Or are there possibilities, by writing code in html (widget type of thing) and loading it into native application. I know about the android, in which we can add the web view into application by calling setContentView(view)

Please share the class details where we can add the html view into native application of different type of platforms that you know.

Purpose of this thread is share common details across developers. marking as community wiki.

Cross platform tools & library

Answer

TechZen picture TechZen · Sep 1, 2010

My answer here covers some of the technical limitations of cross-platfrom tools but let me expand a bit:

I think that cross-platform tools have historically always been also-rans because such tools have the wrong philosophical focus.

All the selling points for cross-plaform tools are the benefits they bring to developers. They are sold on the idea that they allow the developers to write-once-run-anywhere. They are sold on the idea that they allow the developers to expand their market without learning new APIs. They are sold on the idea that they allow the developers to slash cost and time to market.

What cross-plaform tool are NOT sold on is the benefit they bring to end users.

Benefit to the end user is not a selling point because cross-platform development is seldom a benefit to the end user. The end user does not care how hard the developer had to work to bring the product to market. Nor do they care how many platforms the app can run on when they they don't use but one platform. They just care if the app does what they need it to on the hardware they need to run it on. Unless they have a specific need to run the app on many different platforms, the fact that it does brings them no value.

Conversely, the inevitable compromises of making a cross-platform API mean that all the apps created by the API will be at best B-grade on every platform. They will never be the best tool to use on each platform.

All this means that in most use cases, cross-platform tools give the end user an inferior product compared to ones made with platform specific APIs. The end user will always have a better choice.

You make money in the long run by giving end users the most useful tools. If you don't philosophically concentrate on making the end user's life easier and more productive, you are pretty much doomed from the outset. End users have lots of choices and if your tool isn't one of the best you won't make it in the market.

You should only use cross-platform tools if you think, "the users will really benefit from running this app on many different platforms." If you start out looking at cross-platform tools solely because they will make your (the developers) life easier, then you have picked them for the wrong reason and they will hurt you more than they will help.