Creative Commons: http://j.mp/WMvpnz

Targeting multiple platforms

Creative Commons: http://j.mp/WMvpnz
Creative Commons: http://j.mp/WMvpnz

I hear you, it’s not always easy to create an application on many platforms. You want to build an iOS app, use Objective-C. You want to build a Windows Phone app, use C#. You want to build an Android app, use Java. It’s not an easy process, but there are tools, and ways of doing this that may save you some time.

Think Cloud

Since you want to target multiple platforms, as you know, you’ll have to code with the specific languages, and even tools for each platform. One of the first thing I would suggest is to think about the cloud. Why think about cloud computing? Because you want to limit to a minimum what will be specific to each platform. There is a way for you to put more logic in a common place, and have your application call a service to get, set or create data. The most stuff you can put outside of your application, the less things you have to recreate for each OS.

MVVM

Architecture is key when it comes to code reuse. As an example, if you want to build a Windows 8, and a Windows Phone 8 application, even if they used the same technology, the core is not the same. In that case, a suggestion would be to use the MVVM pattern to maximize the code reuse between the two platforms. In that case, C#, and XAML would be the technology of choice since it’s available on the two OS. For more information on the topic, you can read Alnur Ismail post.

HTML5 for native apps

There are also tools like PhoneGap that can help you build with HTML5, CSS3, and JavaScript to target multiple platforms. At the end, you will get kind of native application on each platform the tool supports. I have to say that I didn’t have the chance to use it yet, but I heard a lot of great things about it. It gives you the opportunity to access features on devices you wouldn’t be able to access with a Web application yet. The only downside of these tools is that you will give the same UI/UX experience on all platforms, so no environment that the user already know (think about all iPhone app, users are expecting a certain behavior, and UI).

Web

Last but not least, there is always the Web path. If you don’t need a native application to do what you need to do, or access any specific features of the devices, the Web is one solution. Of course, many people will tell you that they want their native apps, but in some cases, the Web application is more than enough.