In this episode, we talk about the different parts of Android architecture components. We've had episodes on Room and the paging library, so in this one, we thought we'll touch a little on Lifecycle Owners & Observers, ViewModels, and LiveData. Akshay Chordiya helps break it down. Listen on!

Show Notes * Android Architecture Components

Lifecycle * Handling lifecycles with Lifecycle-Aware Components * Lifecycle Owner * Lifecycle Observer * Best practices for lifecycle-aware components * Caveat: handling onStop events

ViewModels * Architecture Guide: ViewModels * View Model

Code snippet for a ViewModelFactory:

``` class UserVMFactory( val user: MyUser ) : ViewModelProvider.Factory { override fun create(modelClass: Class): T { return when { modelClass.isAssignableFrom(UserVM::class.java) -> UserVM(user) as T else -> throw IllegalArgumentException("Unknown ViewModel class") } } }

```

LiveData * Live Data * MediatorLiveData

Misc * Android Architecture Components Deep Dive Course on Caster.IO * Fragmented - Room episode with Florina * Fragmented - AAC Paging library with Florina

Sponsors * Microsoft AppCenter - Sign up now on appcenter.ms and spend less time managing your app lifecycle and more time coding.

Contact * @Akshay_Chordiya [twitter.com] * @fragmentedcast [twitter.com] * @donnfelker and 📷 donnfelker * @kaushikgopal and 📷 kaushikgopal