# User interface

The Android framework enables developers to create useful apps with effective
user interface (UIs). Developers need to understand Android's activities, views,
and layouts to create appealing and intuitive UIs for their users.

To prepare for the Associate Android Developer certification exam, developers should:

- Understand the Android activity lifecycle
- Be able to create an `Activity` that displays a `Layout`
- Be able to construct a UI with `ConstraintLayout`
- Understand how to create a custom `View` class and add it to a `Layout`
- Know how to implement a custom app theme
- Be able to add accessibility hooks to a custom `View`
- Know how to apply content descriptions to views for accessibility
- Understand how to display items in a `RecyclerView`
- Be able to bind local data to a `RecyclerView` list using the Paging library
- Know how to implement menu-based navigation
- Understand how to implement drawer navigation

## Related Course Content

- [Android Basics in Kotlin: Unit 1 - Kotlin Basics for Android, Pathway 3: Build a basic layout](https://developer.android.com/courses/pathways/android-basics-kotlin-three)
- [Android Basics in Kotlin: Unit 1 - Kotlin Basics for Android, Pathway 4: Add a button to an app](https://developer.android.com/courses/pathways/android-basics-kotlin-four)
- [Android Basics in Kotlin: Unit 2 - Layouts, Pathway 2: Get user input in an app: Part 2](https://developer.android.com/courses/pathways/android-basics-kotlin-unit-2-pathway-2)
- [Android Basics in Kotlin: Unit 2 - Layouts, Pathway 3: Display a scrollable list](https://developer.android.com/courses/pathways/android-basics-kotlin-unit-2-pathway-3)
- [Android Basics in Kotlin: Unit 3 - Navigation, Pathway 1: Navigate between screens](https://developer.android.com/courses/pathways/android-basics-kotlin-unit-3-pathway-1)

## Other Resources

- [Android Developers -\> Paging Library Overview](https://developer.android.com/topic/libraries/architecture/paging)
- [Android Developers -\> Build a responsive UI with ConstraintLayout](https://developer.android.com/training/constraint-layout/)
- [Android Developers -\> Create a list with RecyclerView](https://developer.android.com/guide/topics/ui/layout/recyclerview)
- [Android Developers -\> Create a navigation drawer](https://developer.android.com/training/implementing-navigation/nav-drawer)
- [Android Developers -\> Custom view components](https://developer.android.com/guide/topics/ui/custom-components)
- [Android Developers -\> Build more accessible custom views](https://developer.android.com/guide/topics/ui/accessibility/custom-views)
- [Android Developers -\> setContentDescription()](https://developer.android.com/reference/android/view/View#setContentDescription(java.lang.CharSequence))
- [Android Developers -\> Easy Android accessibility - Android Conference Talks](https://www.youtube.com/watch?v=yxNROzu9nQQ)
- [Android Developers -\> Styles and themes](https://developer.android.com/guide/topics/ui/look-and-feel/themes)
- [Codelabs -\> Material Components (Kotlin)](https://codelabs.developers.google.com/codelabs/mdc-101-kotlin/index.html#0)
- [Codelabs -\> Material Components (Java)](https://codelabs.developers.google.com/codelabs/mdc-101-java/index.html#0)
- [Codelabs -\> Your first interactive UI (Java)](https://codelabs.developers.google.com/codelabs/android-training-layout-editor-part-a/index.html#0)
- [Codelabs -\> Activities and intents (Java)](https://codelabs.developers.google.com/codelabs/android-training-create-an-activity/index.html#0)
- [Codelabs -\> RecyclerView (Java)](https://codelabs.developers.google.com/codelabs/android-training-create-recycler-view/index.html#0)
- [Codelabs -\> User navigation (Java)](https://codelabs.developers.google.com/codelabs/android-training-provide-user-navigation/index.html#0)
- [Codelabs -\> Menus and pickers (Java)](https://codelabs.developers.google.com/codelabs/android-training-menus-and-pickers/index.html#0)
- [Codelabs -\> Themes and final touches (Java)](https://codelabs.developers.google.com/codelabs/android-training-drawables-styles-and-themes/index.html#0)