I am a .NET developer (more than 6 years now) and just starting to learn about mobile/smartphone/tablets development. Logically, I (and probably everybody else out there) would like the application we create to run on all smartphone platforms. It just feels natural from the normal user (layman) perspective that if it's a "mobile app" it should run on mobile device. It shouldn't matter if I own iPhone or Android, mobile app is a mobile app. Note: I am talking about native platform development, not HTML/web apps that can be used from browsers.
So this is just a high-level overview question... what are the current strategies (in year 2013) to deal with this issue? The way I imagine mobile cross platform development works is there's probably a single common code base that implements app's business logic and then for each targeting platform we need to develop GUI part separately. How far is this from truth in practice?
Take for example the popular game "Angry Birds". I played it on iPhone, Android and even from Chrome browser on Windows Desktop (probably as Flash or HTML5 game) and each version had pretty much identical feeling when played. How did they do that? I imagine they have game engine as common code but in what language could it be written? As far as I know there is no common programming language that given the single source code files it can be compiled into native binaries for ios/android/win8 phone.
Unfortunately, there is no way to develop a cross-platform app which has really native look and feel and shares same code for all platforms.
Its possible to share some code on some platforms though (for example, you can use C/C++ for iOS and Android), but only for the logic part of your app. To get native UI you will be forced to use native APIs. If your app doesn't involve some complicated data processing then this approach may have more downsides than really helping you out.
You can get rather good platform independence with hybrid app platforms such as PhoneGap or Titanium, but that involves HTML/Javascript development which could lead to a lot of time and efforts required to bring user experience to be somewhat similar to that of a native app.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With