This article is intended to be an fairly comprehensive, but still accessible explanation of three layer architectures (emphasizing Passive View), and why you might want to try using something similar in your projects. It turns out that the why behind this question is quite important.
How to build a RecyclerView from start to finish. Includes full Open Source App and Video footage of me building everything.
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.