Learning Android development with Kotlin (for iOS developers), a stress-free learning method.

An Tran • April 26, 2020

Android Kotlin

TL;DR:

What is all about?

Github repositories:


🚀 A "fast and furious" learning method

It is COVID-19 time, and many of us have to stay home.

As a positive thinking person, I'd rather take the chance to use my time as useful as possible. I am learning Android development with Kotlin.

As a self-taught developer in my whole career, I have developed a learning method to learn new technologies and I want to share this method with you.

This method is summarized like following:

This method has helped me a lot to grasp the basic concepts of any new programming languages or libraries I want to learn. After this learning process, I understand, in this case, Android development and Kotlin good enough so that I can create my apps running on my Android devices. This knowledge also becomes the foundation so that I feel comfortable to go deeper into the Android platform as well as the Kotlin language and master additional skills to create great Android apps using Kotlin in the future.

The main idea of this method is to focus on the first hours of the learning process to get something working and to get enough basic knowledge of the new learning topic. Afterward, you can start self-correcting and self-learning based on that foundation.

I'd recommend you spend 20 minutes to see this TED Talk. It reflects more or less what I said above in a general context.

❓ Why would an iOS developer like me learn Android and Kotlin?

📖 How do I learn?

First and foremost, I am not a fan of programming textbooks because of many reasons:

As a self-learning enthusiast, I'd prefer to learn the basic knowledge by reading some basic blog posts or tutorials, and then get my hands dirty by implementing some simple apps to apply the knowledge that I have learned. It is also extremely helpful if you can ask someone who already has extensive experience with Android and Kotlin. I've asked a former colleague about the best practice and useful 3rd party libraries when I start implementing the MVVM architecture.

📗 14-days courses:

I am sharing my learning resources on Github. Feedbacks and contributions are welcome:

I divide the topics into 2 levels: basic and advanced. Each day, I try to implement a simple app to try out different topics. Each level needs 14 days to finish (it's Covid-19 time, so the period of 14 days was chosen with an intention that people can learn something during their quarantine time).

One important topic in app development is Architecture. There are different architectures to structure an app project, each of them is suitable for different kinds of projects. Since Google endorses MVVM Architecture explicitly with its Jetpack Architecture Component, I have separated this topic into a different course.

You will learn mostly by reading the source code. This is probably also what you do in your day to day work as a software developer, right?

The code will be documented as much as possible so that you don't have to jump around between different hops to find out what the APIs are doing (you can surely still use context documentation feature of Android Studio to go directly to Java docs of the platform APIs). High-level discussions will be written in README.md of each project.

🔞 Disclaimer:

These courses are probably not for everyone. It is my attempt to share my learning method and resources. If you find it useful, follow it. If you find it bull****, keep on learning with whatever method that suits you.