Taro Logo

How can I get really good at Android?

Profile picture
Software Engineering Intern at Uber7 months ago

Android and mobile development as a whole is something I'm very interested in. For example, I see the Taro Android app, and it's pretty smooth and performant while being built quickly. What can I do to get to this level?



  • Alex Chiou
    Robinhood, Meta, Course Hero, PayPal
    6 months ago

    Just build Android apps!

    Android is literally one of the most accessible platforms in all of software, which is one of the reasons why I love it so much. It's just $25 to publish as many apps as you want, and you get all this incredible infra from Google Play for free. After doing iOS for a while now due to Taro, I can confidently say that the Android developer ecosystem is far superior.

    You can read a book here and there and do a tutorial if you want, but when it comes to Android, heavily bias towards just building. That's how I started off my Android journey - I just wanted to deploy some fun apps onto my personal Android phone, so I just downloaded Android Studio, did the developer.android "Hello World" tutorial and from there, I just started Googling everything to build my first app: Borderlands 2 Soundboard (it got ~14,500 downloads before it got taken down).

    Another thing that makes Android such an accessible platform is it's one of the most StackOverflow-friendly tech stacks. Google will deprecate things, but they won't rip it out and they go to great lengths to make sure old code doesn't break - If you find an Android Java code sample from 2011, it probably still works!

    I talk in-depth about my experience publishing ~30 apps for fun with 3 million+ users combined here:

  • Alex Chiou
    Robinhood, Meta, Course Hero, PayPal
    2 months ago

    For folks looking for more "hand-holdey" resources, I recommend these excellent tutorials:

    • Building A Tip Calculator - This is a really great first app to build. This will make you familiar with very core Android concepts like building out the UI, reading inputs from it, and updating the layout accordingly. Honestly, building off of this knowledge is enough to build a nice utility app that gets 10,000+ users - Most of my early successful side projects were like this.
    • Creating A Yelp Clone - After doing the tip calculator, this is a good way to "level up" by learning more complex Android fundamentals that will almost certainly by used if you get hired as an Android engineer and can also help craft deeper side projects. These fundamentals include networking and more complex UI like loading an image from a URL.

    From the above tutorials, I don't think any more are needed - Doing more than these will put you in tutorial hell. They give you 80%+ of the core concepts; now it's up to you to play around with them and sharpen your understanding.

    After the more curated learning, fill in your knowledge gaps with the following:

  • Alex Chiou
    Tech Lead @ Robinhood, Meta, Course Hero, PayPal
    2 months ago

    Lastly, here's some very tactical tips:

    • Use Kotlin instead of Java - It's much more concise and the industry is overwhelmingly shifting towards it. You should only use Java if you're the fastest Java programmer in the world or something.
    • You don't need ConstraintLayout all the time - From my experience, it's very hard to read and understand for beginners. It's also very verbose, requiring a lot of code to do simple layouts. Don't be afraid to use LinearLayout, FrameLayout, and even RelativeLayout.
    • Don't respect every deprecation warning - Android is notorious for taking perfectly fine APIs and making them worse. Just because Android Studio says that something is deprecated doesn't meant that you should automatically upgrade to whatever it is suggesting. Evaluate the code yourself to see if it's truly better.
    • Avoid navigation graphs - I simply don't get this abstraction and the value it adds. I have seen countless junior Android engineers try it and get completely lost, even failing interviews because of it.
    • Don't be afraid to use Activities - View controllers in Android are split up across Activities and Fragments. The ideal architecture is single Activity with a bunch of fragments, but as a junior Android engineer, you don't need the ideal codebase. The problem is that Fragments are a mess and hard to use/debug. Use Fragments when you have to with APIs like ViewPager, but don't feel pressured to use a Fragment for everything.

    As a junior engineer, your goal is to learn the most basic and core concepts and get stuff to work. Android is a very mature framework at this point with many different APIs and frameworks, so be careful and avoid getting sucked into the very complex and modern material. Just build stuff.