Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?
share|improve this question
    
A podcast you might be interested in: feedproxy.google.com/~r/HerdingCode/~3/nDF7OhplleE –  Malfist Aug 10 '11 at 13:11
    
look into the website ,it seems very well,anybody who has ever used it? give us some advice. –  johnny zhou Aug 10 '11 at 14:54
    
Shouldn't it be "MonoTouch/MonoDroid + C# == trustable?" –  TGnat Aug 10 '11 at 17:50
    
Hi FullmetalBoy, we generally want to keep one question to a...question. Taken separately, your questions have already been asked. –  user8 Aug 10 '11 at 18:22
add comment

marked as duplicate by Robert Harvey, Mark Trapp Aug 10 '11 at 18:21

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

3 Answers

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.

share|improve this answer
add comment

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

share|improve this answer
    
"These tools are much better than the native alternatives" How are they better? –  TheLQ Aug 10 '11 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 Aug 10 '11 at 16:15
add comment

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.

share|improve this answer
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 Oct 18 '11 at 5:37
add comment

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