10

Possible Duplicates:
MonoTouch vs Objective-C for iPhone/iPod/iPad development
As a C# developer, would you learn Java to develop for Android or use MonoDroid instead?

I'm very curious about the tools named MonoTouch and MonoDroid to create applications for Android, iPhone and iPod by using c# code.

Question:

  • Are these tools good enough to create applications that will be used in different environments?
  • Can these tools replace the orgininal way of creating application? If you create an application for Android, you often use Java to create it.
  • How different is it to create a application with Mono for Android compare to creating an application for Windows Mobile Phone?
4
  • A podcast you might be interested in: feedproxy.google.com/~r/HerdingCode/~3/nDF7OhplleE
    – Malfist
    Commented Aug 10, 2011 at 13:11
  • look into the website ,it seems very well,anybody who has ever used it? give us some advice. Commented Aug 10, 2011 at 14:54
  • Shouldn't it be "MonoTouch/MonoDroid + C# == trustable?"
    – TGnat
    Commented Aug 10, 2011 at 17:50
  • Hi FullmetalBoy, we generally want to keep one question to a...question. Taken separately, your questions have already been asked.
    – user8
    Commented Aug 10, 2011 at 18:22

3 Answers 3

6

Are these tools good enough to create applications that will be used in different environments?

Not different environments. Monodroid costs 400 USD just for android apps. Monotouch 400 USD just for iOS apps. (And in the case of iOS you also need to buy an iOS developer license (another 100 USD per year). So both are very environment specific.

Can these tools replace the orgininal way of creating application? How different is it to create a application with Mono for Android compare to creating an application for Windows Mobile Phone?

No. They are primarily bindings. So, for example, in the case of monotouch you'll get iOS bindings for say Core API's. Instead of use NSString you'll use "c#" string. And so on.

So, they are not the same as creating directly a windows phone app (different platform and different API) what miguel and its team does is create a shareable .NET base between all of them, so you can reutilize your existing code.

It's trustable?

Well, I think it is. Mono isn't recent, nor mono touch or droid. Plus, they're now not a Novell division but an entire company (Xamarin). So I don't see why not can be trustable. We have use its tools since a few years and are great.

BUT

I'll advice you that if you want to start fresh with a platform, just use its API's directly. If you're doing android development, use Java and Android's SDK. both for iOS. Why? Well, isn't the same thing. When you're working with bindings you are relegated until those bindings are fully implemented. For example, if new iOS 5 SDK exposes 4000 new APIS (as frequently happens) you need to wait until there respective bindings are implemented (by Xamarin team). I see that as inventing and reinventing.

¿Why does this tools exists?

I think that basically for legacy support. At least that's the reason we (as a company) uses them. We have clients with large code bases that we can't implement again (.NET code base), so with monotouch we can port pretty much of it.

Sure, they're great for other things but thats my opinion.

1
  • 2
    Well, seems like Xamarin is fast like no one. The same day iOS 5 got out, they pushed MonoTouch 5, covering all the API.
    – nemke
    Commented Oct 18, 2011 at 5:37
2

It is trustable now that Xamarin acquired the rights for all of Mono and MonoTouch, before that users (developers) were in a pretty bad position, but now it's all clear

These tools are much better than the native alternatives (Objective-C and Java), yes, they can absolutely replace the original way of creating the application, not only that, they do a much better job than the original language, plus you get to use a single language to write apps for all platforms

It is very different to create an app for Android vs WP7 or iPhone, they are very different platforms, the only code you can share is the logic, so make sure to keep that well separate from the presentation layer, which you'll have to write for each different platform that you want to support

2
  • "These tools are much better than the native alternatives" How are they better?
    – TheLQ
    Commented Aug 10, 2011 at 16:01
  • @TheLQ - In the sense you can write functionality once and be able to use it again. Since its the same code you can test it differently then having to port say FunctionX to Objective-C, Java from C#.
    – Ramhound
    Commented Aug 10, 2011 at 16:15
2

They are trustable, but you have to keep in mind that they are not cross-compilable. You can't just write a monoTouch app and compile it for Android. You could reuse code (if it's written in a loosely-coupled manner), but that's a bit different.

Not the answer you're looking for? Browse other questions tagged or ask your own question.