Can a developer really know iOS and Android?


#1

I’m happy to see the new Android courses. My question:

I’ve spent a great deal of time learning how to program iOS. I still have a way to go, but I’m getting fairly comfortable with it.

Is it possible to be proficient in both platforms? If you “master” iOS is Android significantly easier to learn? Does this make sense at all. Having to keep up with two platforms? Anyone out there that is proficient at both, would love to hear your opinion/experience.

Cheer!


#2

Great question, Martin!

It’s definitely possible to keep up with both platforms. Especially these days, if you program in Kotlin and Swift since they’re so similar, and if you use patterns like MVVM and Rx to help keep your development flow consistent when switching back and forth.

I did both platforms for about 6 years, working on an iOS app for 6 months and then switching to Android for six months. It was definitely a challenge, since the mobile world moves so fast. But the platforms and tooling are converging, so it’s not as hard as it used to be.

Having said all that, specializing on one platform has its benefits, but you lose some versatility and flexibility in the process.

Thanks again for the question! :]


#3

Hey Martin,

In my experience being knowledgeable about one mobile platform definitely allows you to apply what you’ve learnt to another platform.

I’ve jumped between iOS and Android development for a number of years. I love having the ability to do it as it means I get to experience the best of what both platforms have to offer.

I wouldn’t say I have as much deep technical knowledge as someone who specialises in a single platform, but I have enough to do the majority of tasks needed for each platform. I can also learn new APIs and techniques as I need them.

It’s taken a number of years for me to be able to do this. I originally started out as an Android developer but branched out into iOS development when a former employer asked if I could have a go at making an iOS app. I never looked back!

I think being a generalist across platforms gives you more flexibility to decide what projects you want to work on and makes you attractive to potential employers. I’m thankful I invested the time to learn both platforms and would encourage anyone who is thinking of doing it to do it too!

I hope that gives you some insight.


#4

No is not possible.
Or, to be precise, is possible until a certain level.

For the most app out of there, the level of knowledge required is kind of low, so everyone can probably manage to do both.

But as soon you go deeper, is already impossible to cover the full list of iOS technologies in one person…do you know a developer who’s an expert in all CFNetworking, CoreAnimation, CoreAudio, AVFoundation, CoreData, Metal, SpriteKit, SceneKit, CoreML, ARKit and all the other iOS frameworks (and Watch and AppleTV)
?


#5

I’ve been developing mobile apps for about 15 years from Windows Mobile up to iOS and Android recently. I learnt Java, C# and Swift. Recently i took the decision to develop in C# using Visual Studio for Mac. I have developed several enterprise iOS and Android apps. What helped is that (a) I have a good engineering approach to the job, I can look at a language as an abstract tool. With C# I get a mature language supporting the Microsoft World + Native iOS and Android Apps (2) I have a fairly good grasp of Java and Swift so I could translate my understanding to C#. So in a nutshell, yes I think you can know both if you adopt a more cross platform approach.


#6

I would say, it’s definitely possible!

I’ve been a multi platform developer for around 6 years now. It is very simple to get a working knowledge of both platforms as they’re actually much more similar that people say they are.

The hardest part is keeping up with the changes on both platforms but with time and effort you can get around this. Likewise, you could be an expert on both platforms for sure, but that depends on how easy you learn and how invested you are in your learning – you’ll be as good as the effort you put in.

Being a complete expert in both platforms is realistically going to be near impossible, but also being an complete expert is one platform is basically impossible like @ignazioc mentioned. I tend to focus on things that are the same between platforms to ensure that I can act as a bridge between projects on both platforms.

Personally, I think it’s incredibly rewarding to be proficient on both platforms, and it has opened up huge opportunities in my job to be so. I can have conversations with either platform about specifics and lend a hand to any project that goes on.

I say, you should definitely give it a go and report back how you find it :smile:


#7

I have been a freelance iOS developer for 6 years now, and I already find it difficult to keep up with the novelties each year! I suppose that you could reach a good level with Android too, by making a big one-time effort especially for this platform, and then keep up to date … maybe.
As far as I am concerned, I make a living out of my iOS “expertise”, so I don’t think I’d be able to be an expert on both platforms.
The mobile developers I’ve met that claim to be experts on both platforms generally transpose their way of developing on one platform to the other, and don’t conform to the platform particularities (UI or coding good practices).
So I think it’s great to be interested in the other platforms, but if you want to make a living out of it, I think you should keep your expertise (and your resume) focused on only one.


#8

Thanks for the all the responses! I’m inclined to give learning both platforms a shot. I recognize that I won’t master both platforms, but for me that is not my goal. If I could develop an intermediate understanding of both, I’d be very happy with that.

Cheers!
Martin


#9

I’m not sure anyone needs to be an expert in all of these - I’d say the core skills are UIKit, Foundation, MapKit, CoreLocation, CoreData and Quartz. Maybe app extensions (shudder) too - the other stuff isn’t that applicable to generic app development (in my experience). Sure, if you’re a game dev then SpriteKit, SceneKit and Metal are probably top of the list. CoreML? ARKit? New tech still in its infancy - great if you want to be in at the start (but expect to have to unlearn/relearn as the APIs inevitably get refactored).

I’d say it’s definitely possible to get to “expert” level on both iOS and Android if you stay focused on the main core APIs. For the other stuff, go for cross-platform solutions like Unity, Vuforia, IBM Watson, Firebase etc.


#10

So there are disagreements regarding how proficient you can be on two platforms. But I’m curious on a related subject… If you are managing a team of developers developing an app surely you must have a good understanding of both Android and iPhone. Not necessarily be a master of both, but a good understanding of both?

Any project managers care to weigh in?

Thanks!