# Additional Resources for Architecture Components

## Samples


- [Sunflower](https://github.com/android/sunflower), a gardening app illustrating Android development best practices with Android Jetpack.
- [Android Data Binding Library samples](https://github.com/android/databinding-samples)

## Codelabs

- 
- Android Room with a View [(Java)](https://codelabs.developers.google.com/codelabs/android-room-with-a-view) [(Kotlin)](https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin)
- [Android Data
  Binding codelab](https://codelabs.developers.google.com/codelabs/android-databinding)
- Background Work with WorkManager [(Java)](https://codelabs.developers.google.com/codelabs/android-workmanager/index.html?index=../../index#0) [(Kotlin)](https://codelabs.developers.google.com/codelabs/android-workmanager-kt/index.html?index=../../index#0)
- [Navigation codelab](https://codelabs.developers.google.com/codelabs/android-navigation/index.html?index=../../index#0)
- [Android Paging codelab](https://codelabs.developers.google.com/codelabs/android-paging/index.html?index=../../index#0)
- [Android Persistence codelab](https://codelabs.developers.google.com/codelabs/android-persistence/index.html?index=../../index#0)
- [Android lifecycle-aware components codelab](https://codelabs.developers.google.com/codelabs/android-lifecycles/#0)

## Training

- 
- [Udacity: Developing Android Apps with Kotlin](https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012)

## Blog posts

- 
- [Android Data Binding Library --- From Observable Fields to LiveData in two steps](https://medium.com/androiddevelopers/android-data-binding-library-from-observable-fields-to-livedata-in-two-steps-690a384218f2)
- [Easy Coroutines in Android: viewModelScope](https://medium.com/androiddevelopers/easy-coroutines-in-android-viewmodelscope-25bffb605471)
- [Android Jetpack WorkManager Stable Release](https://android-developers.googleblog.com/2019/03/android-jetpack-workmanager-stable.html)
- [Locale changes and the AndroidViewModel antipattern](https://medium.com/androiddevelopers/locale-changes-and-the-androidviewmodel-antipattern-84eb677660d9)
- [Room \& Coroutines](https://medium.com/androiddevelopers/room-coroutines-422b786dc4c5)
- [WorkManager Basics](https://medium.com/androiddevelopers/workmanager-basics-beba51e94048)
- [Introducing WorkManager](https://medium.com/androiddevelopers/introducing-workmanager-2083bcfc4712)
- [Data Binding --- Lessons Learnt](https://medium.com/androiddevelopers/data-binding-lessons-learnt-4fd16576b719)
- [Incrementally migrate from SQLite to Room](https://medium.com/androiddevelopers/incrementally-migrate-from-sqlite-to-room-66c2f655b377)
- [ViewModels: Persistence, onSaveInstanceState(), Restoring UI State and Loaders](https://medium.com/androiddevelopers/viewmodels-persistence-onsaveinstancestate-restoring-ui-state-and-loaders-fc7cc4a6c090)
- [ViewModels : A Simple Example](https://medium.com/androiddevelopers/viewmodels-a-simple-example-ed5ac416317e)
- [ViewModels and LiveData: Patterns + AntiPatterns](https://medium.com/androiddevelopers/viewmodels-and-livedata-patterns-antipatterns-21efaef74a54)
- [LiveData beyond the ViewModel --- Reactive patterns using Transformations and MediatorLiveData](https://medium.com/androiddevelopers/livedata-beyond-the-viewmodel-reactive-patterns-using-transformations-and-mediatorlivedata-fda520ba00b7)
- [LiveData with SnackBar, Navigation and other events (the SingleLiveEvent case)](https://medium.com/androiddevelopers/livedata-with-snackbar-navigation-and-other-events-the-singleliveevent-case-ac2622673150)
- [Lifecycle Aware Data Loading with Architecture Components](https://medium.com/androiddevelopers/lifecycle-aware-data-loading-with-android-architecture-components-f95484159de4?source=false---------0))
- [Large Database Queries on Android](https://medium.com/androiddevelopers/large-database-queries-on-android-cb043ae626e8)
- [Testing
  Room migrations](https://medium.com/androiddevelopers/testing-room-migrations-be93cdb0d975)
- [Understanding migrations with Room](https://medium.com/androiddevelopers/understanding-migrations-with-room-f01e04b07929)
- [7 Pro-tips for Room](https://medium.com/androiddevelopers/7-pro-tips-for-room-fbadea4bfbd1)
- [7 Steps To Room](https://medium.com/androiddevelopers/7-steps-to-room-27a5fe5f99b2)
- [Room + RxJava](https://medium.com/androiddevelopers/room-rxjava-acb0cd4f3757)
- [Room + Time](https://medium.com/androiddevelopers/room-time-2b4cf9672b98?source=false---------7)
- [Introducing Android Sunflower](https://medium.com/androiddevelopers/introducing-android-sunflower-e421b43fe0c2)
- [Announcing Architecture Components 1.0 Stable](https://android-developers.googleblog.com/2017/11/announcing-architecture-components-10.html)
- [Android and Architecture](https://android-developers.googleblog.com/2017/05/android-and-architecture.html)

## Videos

- 
- [What's New in Architecture Components (Google I/O'19)](https://www.youtube.com/watch?v=Qxj2eBmXLHg)
- [Jetpack Navigation (Google I/O'19)](https://www.youtube.com/watch?v=JFGq0asqSuA)
- [Understand Kotlin Coroutines on Android (Google I/O'19)](https://www.youtube.com/watch?v=BOHK_w09pVA)
- [Android Jetpack: Introducing WorkManager](https://www.youtube.com/watch?v=pe_yqM16hPQ)
- [Android Jetpack: Introducing Navigation Component](https://www.youtube.com/watch?v=Y0Cs2MQxyIs)
- [Fun with LiveData (Android
  Dev Summit '18)](https://www.youtube.com/watch?v=2rO4r-JOQtA)
- [Single Activity: Why, When, and How (Android Dev
  Summit '18)](https://youtu.be/2k8x8V77CrU)
- [The Room in the House (Android Dev
  Summit '18)](https://www.youtube.com/watch?v=sU-ot_Oz3AE)
- [Android Jetpack: what's new in Architecture Components (Google I/O '18)](https://www.youtube.com/watch?v=pErTyQpA390)
- [Android Jetpack: how to smartly use
  Fragments in your UI (Google I/O '18)](https://www.youtube.com/watch?v=WVPH48lUzGY)
- [Android Jetpack: easy background processing with WorkManager (Google I/O '18)](https://www.youtube.com/watch?v=IrKoBFLwTN0)
- [Android Jetpack: manage infinite lists
  with RecyclerView and Paging (Google I/O '18)](https://www.youtube.com/watch?v=BE5bsyGGLf4)
- [Android Jetpack: manage UI navigation
  with Navigation Controller (Google I/O '18)](https://www.youtube.com/watch?v=8GCXtCjtg40)
- [Architecture Components - Solving the
  Lifecycle Problem (Google I/O '17)](https://www.youtube.com/watch?v=bEKNi1JOrNs)
- [Architecture Components - Persistence
  and Offline (Google I/O '17)](https://www.youtube.com/watch?v=MfHsPGQ6bgE)
- [Jetpack Room](https://www.youtube.com/watch?v=SKWh4ckvFPM)
- [Jetpack LiveData](https://www.youtube.com/watch?v=OMcDk2_4LSk)
- [Jetpack Paging](https://www.youtube.com/watch?v=QVMqCRs0BNA)
- [Architecture Components - Use Cases
  (GDD India '17)](https://www.youtube.com/watch?v=4VGmFztUF6g)
- [Android Jetpack: ViewModel](https://www.youtube.com/watch?v=5qlIPTDE274&t=30s)