Cross Platform Development Unleashed

You took a long break.

I know, and I am sorry for the same. I  was so busy in shifting to a new job and adapting to a new city, that I hardly got the time for any blogs.

So, no Android this time?

I know you like my Android tutorial posts, but hey learning a new thing is never bad for you 😉

So what’s new in this post?

You’re talking business pretty soon. This post is about cross platform development for mobile apps.

Cross…what?

Cross platform. It means that you just have to write codes in single language for all major mobile platforms available.

You must be joking, is it even possible? And anyways why I need to bother about that?

Yes it is. And this a great technology to use. For example suppose you developed an application for Android platform in Java (Android version). Your application got successful, now your company wants the same application to be launched on iOS too. You didn’t know anything about Objective C, but you took help of some good book and finally able to rewrite the whole code in a different language. But what will you do when you need to port the application on Bada,Windows Phone, Blackberry or some future platform? Will you learn a separate language for each one of them?

erm… We have a separate developers for separate technologies in our company.

So you want to waste your company’s time or money for reinventing the wheel again? Just for porting an existing application on different platform?

Well, I’ve experienced the same issue many times. But what can be done in this case?

*sighs* Can you please read the title of this post again?

 

Oh yeah, cross platform stuff!! So tell me what is it all about and how can I make my life easier with this?

So finally you are speaking English. Cross platform development tools chooses a single language and gives the ease of deploying on more than one platform with the same code.

Do they all use a common language?

There are two kinds of Cross Platform tools available in the market. First one uses the native WebView to show the HTML5 and JavaScript content. Since almost all mobile platforms have WebView so it’s easier to code in HTML5+JavaScript and port to all of them. The second category belongs to the classic C++ community. Since it is the most popular language for development, so every platform supports Native Development in C++.

Is there any advantage of using one type over other?

Yes there is. Coding in HTML5+JS is much easier than coding in C++ for most of the time, when you just need to show some web-content to the user via your app. But when you need to get your hands dirty and want the hardware level access of the phone mostly for games, coding in C++ is best option out there. I am a Game developer, so I’d focus mostly on the C++ part of the Cross Platform stuff.

Why C++? I mean we could have chosen Java.

Because it’s a kind of universal language. Most of the game developers still uses C++ for the freedom they get with it. Java still couldn’t reach there, despite being a cleaner language, because it’s not a Middle Level Language like C and C++ and doesn’t given enough customization option available in C++. Though there’re some frameworks available which supports Java and even C# too.

Great!! So can you tell me some examples of the cross mobile platform development frameworks?

There are many in the market, although The most notable in the first category are Phonegap, Titanium and in second category are Marmalade (formerly known as AirPlay) . My favorite in it is Marmalade which allows coding in C++ and gives direct access to OpenGL library, which is a plus point for any game development. With it’s recent 6.0 SDK, you can now code in HTML5 too. It uses Phonegap standards for this, so if someone knows Phonegap, he/she can work with Marmalade too.

So Marmalade is the best choice, right?

Well I wouldn’t say that. Marmalade SDK is not free, though it provides a 90 days evaluation license, but you can’t commercially deploy apps using evaluation license, although it’s not that costly, if you are serious about your app. The license starts at $149, but the Indie license which costs at $499 is what you’ll need for a serious development. This might not be a major issue for you, but it might be for some individual developers. The second issue which I found in it, is there are very little help available on the internet about marmalade. Asking on Stackoverflow will not get you anything (Probably I am the one who’ll end up answering your question). The only tutorial i found apart from the official one is the drmop one. It’s a good tutorial but still not complete. So if you are a pro-game developer, than it’s best engine you’ll ever find.

So how can I find more information on Marmalade, I mean who’ll save my life now?

I’ll try to share my learnings on the framework, as soon as I can get some more time for this. Keep looking at this place.

Do any popular app uses Marmalade?

Cut the rope, Plants v/s Zombies, NFS Shift… Do I need to say anything else. Read here for more info…

Thanks for the info.

If this post helped you then just share this post as much as you can, so that we can save more lives. You can also click on any of the share button available and share this post with your friends, collegues or anyone who can get benefit with it. You can post your questions and comments below and, can also vote up this post.

I want to hear more from you.

You can check my stackoverflow profile and look for answers I posted there (probably vote on them too 😉 ). You can also ask your questions there and provide me a link to answer them. If you want a complete blog post on them, leave me a comment, and I’ll get back to you soon.

Thanks for listening,

Abhi,

The Creator


profile for Creator on Stack Exchange, a network of free, community-driven Q&A sites

Advertisements

2 comments on “Cross Platform Development Unleashed

  1. I guess you missed that even web developers can start making apps using javascript and jquery/other frameworks.

    • Yes, they can. though they need to use some third party framework for that. For C++ it’s not really a requirement. Android provides a nice NDK extension while iOS has inbuilt support for C++.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s