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.

For someone with .Net experience and wanting to develop for iPhone/iPod/iPad, is it worth learning Objective-C? Is MonoTouch a good alternative? What are some of the trade-offs when using MonoTouch vs coding in Objective-C?

share|improve this question

closed as off-topic by Jim G., Robert Harvey, MichaelT, gnat, Kilian Foth Jul 23 '13 at 6:16

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – Jim G., Robert Harvey, MichaelT, gnat, Kilian Foth
If this question can be reworded to fit the rules in the help center, please edit the question.

1  
Seems like Apple is making this easier: apple.com/pr/library/2010/09/09statement.html –  JeffO Sep 30 '10 at 15:15
2  
Hold out till WP7 release and develop there instead. ;) –  Anna Lear Sep 30 '10 at 15:26
    
@Jeff O, that is why I'm interested in people's experiences developing with MonoTouch. I've coded in Objective-C, but prefer C#. –  ysolik Sep 30 '10 at 15:29
    
If you can vote and think this is a useful question or it have useful answers below, please vote up. StackExchange sites need votes to build a good community. You can give 30 votes per day, don't waste them. Specially users with high reputation and low counting votes given please read this: meta.programmers.stackexchange.com/questions/393/… –  bigown Oct 5 '10 at 19:23
    
I am interested in checking out MonoTouch too. Unfortunately, I just don't have the time to master objective-c and I have a shop full of .NET experts here. I'd like to be able to leverage their knowledge! –  Steven Ellliott Jr Apr 19 '11 at 18:37
show 1 more comment

5 Answers

up vote 17 down vote accepted

MonoTouch is a fantastic alternative. I've been using it for pretty much one year now, and I can't ever imagine going back to objective-c. Highlights: LINQ, LINQ to XML, LINQ, C#, LINQ, Garbage collector, LINQ, MonoTouch.Dialog, and a lot of other things.

Seriously, though.. nowadays most apps are always downloading data from the web, and you'll need to be converting that to objects, keeping them in lists, sorting and filtering them, and pushing them to databases. That stuff is so simple to do with C# and LINQ that I can't imagine people doing that in other languages.

The $400 dollar cost is not low, but you can probably make that money back in 1 month or so with no advertisement. And the amount of time MT will save you will offset that easily. Also remember, you don't have to pay until the app is ready for testing in a device, so its free for learning.

With that said, yes, its still totally worthy to learn Objective-C. It'll make you a better developer for the platform, you'll understand why some things are the way they are, and so on. You'll also be able to read Obj-C examples in the web and translate them to C#.

Finally, here's my suggestion: if you're thinking of getting in iOS development, go to MonoTouch. Spend a few weeks using it, and then make the decision of jumping to Obj-C. The hardest part of going to iOS development is not the Obj-C language, is all the new frameworks you'll have to learn. Being able to learn them in C# is a HUGE deal, you'll be a lot more productive from the start up. Just after you know those things look into Obj-C: everything will be already familiar, so it'll be easy to understand everything.

share|improve this answer
add comment

I'm a seasoned C, C++, Delphi & .NET developer and I recently needed to tackle an iOS application development project with a .NET back-end. I initially got very excited about MonoTouch and climbed into it only to find that the learning curve was not really the language but rather the design patterns.

I also noted that the community support out there for MonoTouch was far less than that for Xcode and Objective-C.

My advice, take the time and learn Objective-C. Read the Apple developer guidelines and learn how to do it right.

share|improve this answer
    
I like the reminder that MonoTouch will involve at least some learning even if you are a seasoned .NET dev. I'm also looking at an iOS app connecting to SQL Server / .net back end. Can you point me to anything that worked for you? –  Jason S Oct 28 '11 at 1:12
add comment

If you just want to get something out the door quickly, I believe monotouch would be the way to go.

The Bad: Remember that MonoTouch is $399 for a single developer. That means if your app is priced at $0.99, then you essentially need to sell over 400 apps to even make money. That's not taking into account that you won't get the full $0.99 for each app purchase. Another thing to think about is that if you want other developers to join your project, the vast majority of iPhone devs still use Objective-C, so it will likely be harder to find partners.

The Good: Development time will be a lot faster. Being early to market is typically a great advantage.

The Neutral: You still have to learn the iPhone libraries, application lifecycle, and all the other little nuances of the iPhone. So even though you don't have to learn Objective-C, you still have to learn the framework. So, either way, your app can be equally awesome as it's still the iOS framework at the end of the day.

share|improve this answer
    
You'll learn something new unless your approach is to create a Windows app that runs on the ipad. –  JeffO Sep 30 '10 at 15:43
add comment

I'm starting to develop an application using MonoTouch and I am finding it a good experience. With a tendency towards being productive rather than learning new tech, MonoTouch scratches the itch. The general feeling is that Novell have done a great job of making iOS functionality available to .NET developers and now with Apple's recent relaxations of the licensing (they now allow iPhone/iPad apps developed by 3rd party tools) MonoTouch is only going to gain ground. If you watch the #monotouch twitter tag you'll even see some developers / devshops PORTING their Obj-C apps over to .Net because it'll be easier/quicker to maintain/evolve in the long run. Oh, and all the Apple guidelines still apply even though you're working in .NET - in fact I find them pretty helpful.

With MonoDroid on the way too, you'll likely be able to re-use core libraries of your own application across an iPhone AND Android application - how cool is that??

Here's a pretty upbeat interview with Wallace Mclure that captures a little of what I'm talking about:

http://adtmag.com/articles/2010/09/29/monotouch-qa-with-wallace-mcclure.aspx

I'd say go for it!

share|improve this answer
add comment

There's an article about one .NET devs experience in moving his skill set to iOS.

This blog post describes my experience of learning how to write iOS software, after having spent many years exclusively in the world of .NET development. It provides warnings, suggestions, and tips for others who are interested in learning iOS development. The post ends with a qualitative comparison of programming in WPF and iOS.

share|improve this answer
add comment

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