As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

1

What languages have you used before? You should look up some code examples and see what language you feel most comfortable with. Objective-C is a lot like Apple Talk, sending "messages" between functions. If you've used java or something like that before, I'd go for C# Here's an link to another thread for one who was used to c# stackoverflow.com/questions/2696518/…
–
NoLifeKingFeb 4 '11 at 10:24

Before I developed j2me, blackberry and android based application.
–
bharathFeb 4 '11 at 10:34

1

Here is a link to someone who took the time to make a comparison of Java and C# 25hoursaday.com/CsharpVsJava.html As you used j2me before, I would check for some C# examples, sure there are not a lot of tutorials as the other answers say, but if you ask the people at the monotouch forum they'd probably give you a good answer.
–
NoLifeKingFeb 4 '11 at 10:36

6 Answers
6

I've been in the .NET world for a while. When iPhone launched the ability to create native apps, it called my attention. I really tried to learn Objective-C. I read 2 books and started trying and trying and trying for like a month and then I left iPhone programming due to the fact that you had to make tons of things that on .NET required one line of code.

When Miguel de Icaza launched MonoTouch, I gave it a try, and I realized that most of my previously done code was fully functional. I've always tried to separate UI code from business code, and this is really the point of .NET on the iPhone - To bring most of your already-done business logic to the device.

Also on Objective-C, you wont find anything like LINQ or the var keyword. Consuming web services on MonoTouch is just a few clicks away.

If you want to target the Android platform, there is also MonoDroid (monodroid.net). Also if you want to target Mac OSX there is MonoMac. So you can share class libs between these 3 platforms without much hassle. Not to mention, it will work on Windows too and vice-versa (when possible).

The only thing you will need to worry about is the UI, but most of your business logic should work.

If you use c# with monotouch there is far less documentation than Objective-C, simply because the majority of iPhone apps are developed with Obj-C rather than c#. If you are new to both languages I would advise Obj-C because of the massive amount of online tutorials, sample code and documentation from Apple and peoples' blogs. There are also far more books available to buy for Obj-C iPhone development.

Though you also have to decide if you think that c# might be easier to learn than Obj-C, and if that would be enough to go without the huge amount of samples.

Since you didn't use C# or Objective-C before, I'd recommend to go native. In that case following the majority of iOS developers is actually a good idea:

Apple documentation is really good (IMO better than Android's) and you can even take online classes (google for CS193 - Stanford's iPhone Application Development classes);

there are plenty of good books on Objective-C (Kochan's classic "Programming in Objective-C" to name one) and on iPhone development (all books I know use Objective-C);

iOS development has a big community willing to share knowledge (like here at StackOverflow), so you're learning curve may be tough in the beginning but you'll learn useful stuff faster than trying to solve some issues with C# (that's my assumption);

Please note: I never tried monotouch/C# combination, but I still believe going native with Obj-C is a wiser choice.