0

I think the title is pretty self explanatory. The only thing is I come from the background of XCode and Obj-C and I have this project that I have to develop for IOS, Android and BB. So what are my options? which one would you recommend? I am leaning more towards Mono, is that a good call?

A

Amir J
  • 123
  • 8

2 Answers2

1

Do you have any experience with C#?

Since you have an Objective-C background, it might be easier for you to use Obj-C, and Java for Android/BlackBerry. Otherwise it will be C# for iOS/Android and Java for BlackBerry (you could potentially have to learn 2 languages there).

I have very a strong preference for MonoTouch and find it much more productive than Objective-C, but I came from a C# .Net/Windows background.

I would stay away from "cross-platform" tools such as Airplay SDK, you app will probably be slower and not feel very native in the end. MonoTouch and Mono for Android are more truly native.

jonathanpeppers
  • 26,115
  • 21
  • 99
  • 182
  • Actually, Marmalade (Airplay SDK) produce totally native code, while MonoTouch codes are not really native as .NET philosophically don't produce native code, in any environment including iOS. – bman Jun 18 '12 at 07:35
  • 2
    MonoTouch produces native code when compiled full AOT, see here: http://www.mono-project.com/AOT This happens when compiling for iOS in Release mode. Any performance impact by MonoTouch would be negligible compared to the gains in productivity by using C#. – jonathanpeppers Jun 18 '12 at 11:59
0

As you want to target three platform, I think your only option is Marmalade. Otherwise you have to write your project for those three platforms, separately. Using Marmalade you can distribute your project for all those mentioned platform easily just using their Deployment Tool. And for iOS development you don't need to own a Mac or xCode, although for publishing your project into Apple Store you still need to join Apple Developer program.

I personally not recommend MonoTouch as you still need a Mac computer (if you already don't have one). Plus, you still face the problem with porting your project into BB because AFIK MonoTouch don't support it. Also with MonoTouch you have to learn Cocoa, Cocoa Touch framework and Android framework, as MonoTouch is only an abstract class over these SDKs in C#. But if you go with Marmalade you only need to learn Marmalade SDK, which IMP is simpler than Android and Cocoa*.

bman
  • 5,016
  • 4
  • 36
  • 69