I am interested in starting to write app’s for mobiles.
The main two of course being Android and iOS (but for windows aswell could only be a good thing).
I’m just trying to decide on which option to go down:
I am a .NET programmer by trade (and an amateur python web developer by hobby) – as such it’s where all my experience lies.
I did a little Java at uni years ago, and I’m sure it will all start flooding back if I started back with it.
So my options are:
1) Develop Android apps in Java
Develop iOS apps in C++/Objective C.
I don’t so much mind learning a new language – but trying to learn 2 might be a bit much, and I don’t want to limit myself to only releasing apps on one platform.
2) Develop Android apps in Java.
Use googles j2Objc (https://code.google.com/p/j2objc/) to convert the java code into Objective-C to be able to compile/run natively for iOS.
Sounds great, if it works well.
But are there a lot of iOS SDK features I cannot use due to them not existing in java?
3) Develop both in C#/.NET and use MONO to distribute them around android and iOS.
(This would presumably allow easy access to releasing a windows mobile app too?)
Sounds great, if it works well. I already know .NET well so it would take a lot of the pain away from starting.
I’m not (at the moment) really looking to develop “Games” – I’m more looking at various different types of apps – from data-driven to image processing to number-heavy calculations.
If I wen’t down routes 2 or 3, I beleive I would still have to design the UI’s using the native applications (xcode and something java?) Correct?
I’m just wondering if anyone has any experience with Monotouch, or mono for android, or the Java->ObjectC converter, or can suggest any better methods.
Apologies if this is a common question, the only answers or articles I could find are from years ago, and things have (presumably) changed a lot since then!
TL;DR
Whats the best way to develop apps for multiple platforms with the minimum amount of hassle.
All great questions! I’ll try and segment out my answers!
I would definitely take the MonoTouch/Mono for Android route for the following reasons:
Second, you could use Interface Builder (and Xcode) to design your interface. For Android, there is a Visual Designer for MonoDevelop and Visual Studio.