It is essential to effectively manage Android activity state and coordinate the lifecycles of components within an Activity. However, it can be difficult. This course Android Apps with Kotlin - ViewModel and Lifecycle teaches you how to use the Android Architecture components' ViewModel, Lifecycle and other related types to provide a consistent user experience. You'll first learn how ViewModel can be used to manage activity-related data. It also allows for consistent access even when the device orientation changes cause the activity to be recreated. Next, we'll show you how to use ViewModel with onSaveInstanceState. This will ensure a consistent user experience while moving between apps. Next, you will learn how to use Lifecycle events to facilitate coordination between life cycle dependent components as well as the activity that uses them. You'll also learn how to use Lifecycle states to make life cycle dependent components more flexible and easier-to-use. You will be able to create Android apps that are consistent and high-quality using the Android Architecture Components ViewModel, Lifecycle and other related types by the end of the course.