What skill is best to master: Web, Android or iOS?
My company recently shifted me from a web developer role into an iOS development role (the whole mobile first thing). However, Android market share is growing fast. Am I investing my time in learning the right technology? Learn the Why behind Best Practices for your current platform so you can switch between them more easily. To actually respond to your question, kick ass at iOS and you'll have two of three. Slack at iOS and dabble at android and you'll have one of three. Learn to build great native iOS apps since that's your current job. That'll give you the best results. It takes more work than you think to master something. At some point, if you get involved with Android learn native there too. If you master iOS, I'm pretty sure you'll be able to shift to Android fairly easily. I'm doing the Coursera course on Android, and it's been pretty effective so far: https://class.coursera.org/android-002 Just try to keep up with the headlines on web development (and/or try to do some pet projects to try them), and you'll probably be able to catch up if you need to shift back. I'd have to say web development. When I say that I mean these skills specifically: SQL (I recommend PostgreSQL), one of Python/Ruby/Scala, HTML5, JavaScript, CSS, and one of the popular JS front end client libraries, like Ember or AngularJS. I'm working on that skillset myself right now, having already learned android development and at least given iOS a spin. As for Android, be prepared to have the Dev team changing the damn API all the time. For iOS, you're gonna pay up front just for the privilege to develop. For both Android and iOS, you're looking at using a monolithic app store as your primary distribution mechanism for whatever software you write and being cheifly at the mercy of Google and Apple. Sure, there's other app stores... They're not enough to put dinner on the table. If you're especially looking to be able to develop your own MVPs and launch something, just learn the web side yourself, develop that, make an API, and expose it. If your app is good enough people will just write mobile clients for it and they'll sell them on the app stores... Disclaimer : I am an Android developer The way I see it : nobody knows which technology is going to be prevalent in 5 years.
Android and iOS are now the two mobile platforms of choice and I don't see any of these two weaken significantly in the near term. They have both kinda the same downside :
-Nobody uses obj-C / Swift outside of Apple bubble.
-Android is pretty much the only place where Java is not boring. Some net giants like Google also do very interesting things with it server side, but outside of these 2 cases, Java is a used to make mediocre software. I don't think it should be up to your employer to decide for you which technology you should learn, but that's between you and him. As far as I can tell, neither iOS, nor Android is a bad choice. in the mid/long term, you might want to have a look at the new cools kids on the block, Rust, Dart and Go. Learn Web. Stuff like Cordova/Phonegap, Titanium and others already enable you to build mobile apps for like 95% of all usecases with web technologies. If you do Meteor.js, you build cross platform apps web/android/ios with ease today. Compared to iOS and Web developers, there are fewer Android developers that really grok what Android can do. Of the widely used application platforms, Android is the most interesting technologically. Web is always a sure bet.