iOS and Android development on Windows

11,423

Solution 1

While there are ways to get around using Objective-C for iOS development, I'm going to recommend that you learn it anyway. You need a Mac to deploy anyway, you might as well use it to develop as well.

Objective-C is bloody bizarre when you first start using it, with its strange square brackets and odd ways of doing things. However, once you've spent some time writing code in it, a change happens in your brainmeats and you suddenly realize that this is really an elegant way to work. Xcode is also quite an excellent IDE.

You can start with the iPhone Applications Programming lessons on iTunesU from Stanford. It's free, and covers what you'll need to know pretty throughly.

Worst case, you've learned a new language, and how Apple thinks iPhone apps should be developed. Even if you ultimately use something else, that understanding will help you out long term.

Solution 2

For Android, I would recommend learning Java. I just started working with Android in Java on my Windows machine after developing some ASP.NET sites. I'm familiar with Java, but the syntax is so similar to C# that it's very easy to understand and pick up. So far it is more difficult figuring out and remembering the details of the architecture of mobile applications as opposed to the language. It also helps that there are a number of good books and online resources for converting from C# to Java and vice versa.

Update: I found a good post over on programmers.stackexchange.com that talks about C# vs. Java for Android development with good discussion on the pros and cons of switching: https://softwareengineering.stackexchange.com/questions/33076/as-a-c-developer-would-you-learn-java-to-develop-for-android-or-use-monodroid-i

Solution 3

@Dimitri I was almost your identical skill set when iOS 2.0 was released. I decided to try and learn Objective-C and now its my language of choice. Its a bit different to start with but most of the changes are simple to learn. Whether you are programming for iOS using Objective-C or something like Monotouch either way you have to learn the frameworks. If you use Monotouch you will never be able to be on the bleeding edge of the iOS enhancements. Using Objective-C you will be able to use the latest beta APIs and ensure your apps work right. You will need a Mac to deploy to the App store so just bite the bullet and get a Mac. Get a MacBook Air 13"

Solution 4

Take a look at monotouch & MonoDroid (Coming Soon), it still requires a mac. But you can open your solutions in VS2010 and use resharper, and just use the Mac for deploying and building. Take a look at this Here to open monodevelop solutions in Visual Studio.

http://monotouch.net

Share:
11,423
Dimitri
Author by

Dimitri

Updated on July 06, 2022

Comments

  • Dimitri
    Dimitri almost 2 years

    I'm facing a dilemma: I have a solid ASP.NET development experience in C# and looking to start mobile development. I have done research and know that there are some hacks for getting a development environment for iOS on windows, and recently after Apple lifted ban on 3rd party dev apps, Adobe Flash CS5 can be used to package iOS apps. I do have some prior experience with Flash and AS2. So my question is: should i use Flash CS5 for iOS and MonoDroid for Android or should i just get Mac and learn Objective C for iOS and learn Java for Android? What would be the most practical solution?

    Thank you in advance

    EDIT: In the end, after trying out both Java Development in Eclipse against Android SDK and Mono for Android, I decided it's best to write Android apps in native environment. Eclipse FTW! As for iOS, I think it will also be best to use native Mac tools and Objective C.

    • Murhaf Sousli
      Murhaf Sousli over 8 years
      out-dated now, I think this question should be asked again
  • Dimitri
    Dimitri about 13 years
    MonoTouch seems to be a good way of developing iOS apps, but i have hard time understanding one thing: does it run on Mac as an IDE? or does it integrate into Mac's Dev platform? Or is it something like MonoDroid, and SDK and VS2010 Addon? I don't see it's very practical to Buy Mac, then Buy MonoTouch license to just use c#. If i buy Mac i might as well learn Objective C
  • Chris Kooken
    Chris Kooken about 13 years
    Its a toolchain that works on the Mac under the MonoDevelop IDE. So yes, you do need a mac. You could always install OSX in vmware and use it that way.
  • Dimitri
    Dimitri about 13 years
    Hey Ben, thanks for the link. I did find the post interesting and one answer that was marked as such has a wonderful point: Code Reuse. If you write Android app in c# using MonoDroid, you could easily port the same app to iOS using Mono Touch, and Windows Phone would natively support .NET. So i guess even though it's not going to be "Most Recommended" way, i do see logic behind this approach.
  • tempy
    tempy about 13 years
    I already know Java and am comfortable with it, but I'm still going the monodroid direction. Why? Having one codebase with all your business logic makes you that much more productive, no managing of divergence, no divergent bugs, etcetc. Also lets face it, c# is a more modern and flexible language than Java.