Android Live Q&A Ep. 3 - Clean MVP Architectures, App Design Sketch, Activity Containers
Android Live Q&A Ep. 2 - Learning Dagger 2 and RxJava, How/When to use Butterknife, Realm vs SQLite
Android Live Q&A Ep. 1 - Does TDD Help you to write Apps, When to Apply as a Junior Developer, Tips for Getting Hired/Salary
I'm not sure if I'm just dumb, but I've almost never read a technical definition of a Java Interface which actually tells you where/when you might want to use them. Hopefully this tutorial will fill in some blanks for you.
One of the more common sets of widgets which you'll see in any Android App, is a ViewPager and TabLayout combination. I'm not a fan of using this pattern for top level navigation (I find the Navigation Drawer to be a better solution, but that's personal taste), but there's plenty more we can do with it.
A common building block of Applications and Websites which follow Google's Material Design standard, is the Navigation Drawer. There are other ways of allowing users to navigate through your App's hierarchy, such as a TabLayout, but I would argue that the NavDrawer has one distinct advantage. It allows the user to decide when it is visible, thus hogging screen real-estate only when it needs to.
Of the complex Views, I'd hazard a guess that the RecyclerView may be one of the most important Views you learn to build. Lists of Data seem to pop up everywhere in complex Apps.
Primal Learning wasn't my first course on learning how to learn, but it soundly outdoes the competition. Excellent blend of interesting Science (to satisfy Nerds like me) and Practical Applications (to satisfy workaholics like me).