Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS and Android development on Windows

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.

like image 729
Dimitri Avatar asked Feb 14 '11 14:02

Dimitri


People also ask

Can iOS development be done on Windows?

Since, without using Xcode (an IDE), you cannot build or publish iOS apps. This is because Xcode only runs on macOS with the iOS SDK. However, if you wish to develop an iOS app on Windows, you need virtualization software. Using a virtual machine such as VirtualBox and VMware, you get access to virtual Mac OS.

Can you develop for iOS and Android at the same time?

Developing iOS and Android Apps Simultaneously Cross-platform development delivers the ability to code once and build everywhere. It saves a lot of time, even if you only plan to develop for iOS and Android. When you add Windows, Mac, and other platforms to the mix, it is an extreme ​time saver.

Can you do Android development on Windows?

Native Android development on Windows means that your app is targeting only Android (not iOS or Windows devices). You can use Android Studio or Visual Studio to develop within the ecosystem designed specifically for the Android operating system.

How do I program for both iOS and Android?

Xamarin is a cross-platform technology that makes it possible to build native applications for Android and iOS using a single, shared codebase. Like other technologies such as React Native and NativeScript, it allows development teams to spend less time writing code for both platforms.


4 Answers

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.

like image 164
Tim Sullivan Avatar answered Oct 21 '22 10:10

Tim Sullivan


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

like image 38
Chris Kooken Avatar answered Oct 21 '22 08:10

Chris Kooken


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

like image 40
Ben Jakuben Avatar answered Oct 21 '22 09:10

Ben Jakuben


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

like image 38
jamone Avatar answered Oct 21 '22 10:10

jamone