iOS and Android development on Windows
Asked Answered
T

7

6

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.

Telestich answered 14/2, 2011 at 14:4 Comment(1)
out-dated now, I think this question should be asked againHuber
M
12

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.

Maudiemaudlin answered 14/2, 2011 at 14:18 Comment(0)
S
1

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

Selfliquidating answered 14/2, 2011 at 14:7 Comment(2)
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 CTelestich
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.Selfliquidating
D
1

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

Drachma answered 14/2, 2011 at 14:20 Comment(2)
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.Telestich
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.Boswall
S
1

@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"

Schreiber answered 14/2, 2011 at 18:38 Comment(0)
S
0

I went the route of Monotouch for iOS and Java for the Android. Unfortunately, Monotouch still requires a Mac. I am currently participating in the MonoDroid beta, which looks pretty promising too. It's all a matter of taste. I should also note that, for the most part, HTML/Javascript is a nice way to get portable apps in some circumstances. I would expect HTML5 apps to become even more viable as tooling improves.

Shoveler answered 14/2, 2011 at 14:13 Comment(0)
A
0

I choose to use the Mono, MonoTouch and Mono for Android technology stack from Novell. When coupled with a micro framework like MonoCross (open source in Google code) it helps me write applications for both iPhone and Android devices while leveraging a shared code base for much of it. I would highly suggest the same route, it has allowed me to implement numerous solutions for small businesses and enterprise customers alike.

I didn't have the ASP .NET experience like you, but I was a Pocket PC/Windows CE developer so C# and the .NET Framework were also my strongest tools when I started on journey towards Mono many moons ago.

Ancestry answered 18/4, 2011 at 20:35 Comment(0)
C
0

You can do iOS,Android and Windows using Xamarin.

Android and Windows can be done easily but doing iOS on Windows was tough so far like networked mac is required for debug and development but things have changed now.

Microsoft has introduced Xamarin Live Player using which you can debug,develop and deploy the app completely in windows without the help of any Apple system but to sign and release the app to appstore you will need Apple System though

Cryptoanalysis answered 11/5, 2017 at 18:16 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.