The best (and the easiest as well) way of learning is by doing. But to get the idea of what you need to do you need someone to tell you (this is the main purpose of this blog). Google Code Labs are doing exactly that. In codelab, you go through the lesson and build a small app that contains some feature like Google Sign in, Android Pay, Face Detection etc. There are also codelabs that teach you to use new tools of SDK and Android Studio like ConstraintLayout. At the moment, I've tried one codelab called " Build a Material Design App with Android Design Support Library " and have learned about ViewPager and NavigationDrawer also you can learn how to implement flexible space with image during this code lab. One flaw that me and my friend noticed is the lack of comments in the code. Most of the codelab you will be asked to copy/paste/rewrite some code to make things work the desired way. But for me, it was an encouragement to learn about used thing trough reading ...