7

iOS vs Android for a new grad

Profile picture
Entry-Level Software Engineer at Duolingo22 days ago

I have the option to choose between iOS and Android when I start my job. I have minimal experience in each so I don't have a strong preference.

Which platform would be better for my career in the US? Is demand for iOS engineers higher because iOS users typically pay more? Or does platform not really matter much?

1.3K
4

Discussion

(4 comments)
  • 9
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    22 days ago

    Short answer: Pick the one that matches your personal device.

    Longer answer: You want to match your personal device for many reasons:

    1. You'll be intrinsically familiar with the OS-level design patterns. Apple and Google want very different vibes to their products
    2. It's much easier to dogfood (i.e. use your own company's product). Duolingo is one of the most successful consumer apps of all time, so it's perfect for dogfooding. Dogfooding is great for establishing end-user empathy, which will give you greater product sense. Once you become more senior, you can use that product sense to create scope
    3. It's just more fun and motivating to see something you built on your own device instead of just an emulator running in your IDE sandbox

    Here's a good thread about picking up Android: "How can I get really good at Android?"

    Here's a good thread about picking up iOS: "Good resources to learn iOS app development?"

  • 8
    Profile picture
    Tech Lead @ Robinhood, Meta, Course Hero
    22 days ago

    Here's some notes on Android and iOS from both a US perspective and a platform perspective. I have worked on both with 10+ years of experience on Android and 3+ on iOS, so I have a lot to say:

    iOS

    • There is more demand for iOS engineers as wealthier people (like Americans) tend to have iPhones. Businesses want to sell more to rich people instead of non-rich people, so you'll see way more American companies that only have an iOS app but not an Android app vs. the other way around
    • However, there's a higher supply of iOS engineers than Android engineers because most American engineers have iPhones and they just pick iOS because of that. This greater supply actually cancels out the higher demand, maybe even more
    • Because of this, I've actually seen iOS engineers get paid less than Android engineers from my experience. However, the gap isn't huge, maybe 5-10%
    • As a platform, iOS is notoriously hard to work with as it's a closed ecosystem by Apple. You need to buy an expensive Mac and use Xcode. Because of this massive anti-competitive moat, Apple feels no pressure to make the SDK and development environment good
    • However, iOS is the overall more polished platform. iOS users can only have iPhones, which are high-end phones. Apple bullies everyone into getting the latest OS version, so you only need to support the most recent 2 OS versions. This makes your life so much easier as a developer

    Android

    • Android is unfortunately the "poor people's phone" in the eyes of many Americans, so the supply of Android engineers is actually quite low in the US
    • Because of this and the fact that every big company needs an Android app eventually, Android engineers make more based on my Silicon Valley experience. It's probably exacerbated in the SF Bay Area as it's a very wealthy region where iPhones have a very large advantage over Android
    • Android, unlike iOS, is open-source. This makes it easily extensible and debuggable. The Android open-source scene is 5x stronger than iOS's
    • Android Studio is great since it's a fork of IntelliJ. IntelliJ-based IDEs are generally very good, and they can be easily extended with many plugins
    • The Android user ecosystem though is a clusterf*ck to say the least. Since Android is just an OS that any manufacturer can deploy, you need to account for 10,000+ different phone types, especially if you work at a big company like Duolingo
    • On top of the physical devices being different, Android users are often slow to upgrade their OS, especially in developing markets outside of the US. Most bigs apps need to support 5+ or even 10+ (!!!) OS versions. WhatsApp supports 15 Android OS versions (21 -> 35) 🤯. This will often lead to you writing a bunch of if-statements to make sure that your code works for everyone. It's not pretty and is quite frustrating

    Zooming out, you should figure out if Duolingo values Android or iOS more. This is relatively easy to test: Try Duolingo on both an Android phone and an iPhone and see which app feels better. If the iOS app has more features and UI polish, it's clear the company values iOS more.

    If I had to guess, Duolingo is more iOS-focused. Very few companies are Android focused with Meta being one of them (this is actually one of the reasons I joined Meta).

  • 5
    Profile picture
    Tech Lead/Manager at Meta, Pinterest, Kosei
    22 days ago

    In addition to Alex's great answer, I would recommend two more inputs into the decision:

    • Where will you get more mentorship and smart people to work with?
      • I learned a ton about Android because I was assigned an unofficial mentor who was a Staff Engineer at Pinterest. If you have people like that you get to work with, pick that team.
    • Which app has more of a business need?
      • e.g. when I joined Pinterest in 2015, international growth was a top priority at the company, and the Android app was instrumental for that. That's part of the reason why I chose to work on Android.

    Take a look at this masterclass as well, which discusses the broader topic of team selection: [Masterclass] How To Choose A Good Company And Team As A Software Engineer

  • 2
    Profile picture
    Software Engineer @ Amazon
    5 days ago

    Everything you need to learn about native iOS and Android is already provided by Alex and Rahul.

    I'll give you my perspective as a Tech lead in one of the Big Tech companies. I have been doing Android for over 10 years and roughly 6 years ago, I was exposed to React Native. I hated Javascript before learning React. My mentor advised to me have a diverse perspective and look at each framework as a tool to get my job done.

    I learned React native - became an expert at my company eventually. After moving into Big Tech, that skill of building product on both platforms helped me greatly. I would also encourage to get your native app fundamentals right on at least one platform before trying cross platform work.

Duolingo, Inc. is an American educational technology company that produces learning apps and provides language certification. The learning method incorporates gamification to motivate users with points, rewards and interactive lessons featuring spaced repetition.
Duolingo1 question