I'm an indie iOS developer with a successful, revenue generating app. Many users are asking for an Android version. What should I do? Learn Android myself or contract it out?
If you enjoy learning a new technology and are open minded, I think it would be very beneficial to do it yourself. It is always interesting to learn another platform.
The beginning will probably be rough : here is a whole platform and you probably don't know anything about it. But at the end of the day, you will find that most of the android development tools are on par with iOS ones (with a few exceptions, an emulator is very good for non regression tests, but not that much for development).
You should probably check what is the status of competitors on Android. It you have a complex product and somebody has already spent years on a similar niche on Android, it might be hard to compete.
You should also be ready to totally rethink your UI/UX. Many iOS apps make the error of the 1:1 adaptation of their app to Android and that only lead to a ridiculous result (multiple back buttons on the screen, ignorance of the share button, alien interaction patterns, ...). It takes a lot of engineering time to do this kind of copy where you have to recreate all your widgets on another platforms, with a negative result.
After developing for iOS for around 4 years I tried my hand at Android. If you don't struggle with learning new languages and frameworks it's not too difficult. There's an initial steep learning curve but that was true with iOS. Remember when you first had to figure out what the hell provisioning was? Overall I still find Android more difficult to develop for and I don't think that's my fault - I think compared with iOS it is more difficult but if you have at least a few years software development experience, particularly on mobile, then you should give it a shot.<p>Of course if you just want to get the app out quickly and never touch it again it's probably a better business decision to got he contract route.