Android Architecture Component (Source)

Abstract

TL;DR

Why there was a need of Architecture Components?

What are the Architecture Components?

A new collection of libraries that help you design robust, testable, and maintainable apps. Start with classes for managing your UI component lifecycle and handling data persistence.

Final architecture

Final Architecture

Lifecycle

Lifecycle

Lifecycle provides classes and interfaces that let you build lifecycle-aware components — which are components that can automatically adjust their behavior based on the current lifecycle of an activity or fragment.

ViewModel

LiveData

Lifecycle — ViewModel — LiveData

Room

Room

Room provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.

Conclusion

Lastly I feel this is how building Android app should have been since start. Better late than never we have these architecture components to build amazing apps

Google Developer Expert @ Android | Android Engineer @ Clue | Instructor @Caster.IO