You've reached the end of this, create the user interface in Android Studio course. Well done, you've come a long way, learned new skills, added more tools to your development toolbox and expanded your understanding of Android development. Take a moment to congratulate yourself and consider all you have learned during this course. This is the end of course, graded assessment section of the course and it contains a final development project where you will get a chance to apply what you've learned. The final project is to create an app user interface or UI. Your work here includes UI creation in Android using Jetpack Compose and styling the UI. But before you embark on the final project and assessment, let's reflect on the key takeaways from the course. You began this course with an examination of basic UI creation in Android and an exploration of real world mobile UI characteristics, focusing on common constraint and design issues. A major new learning area for you in this week included the area of activities you learned what activities are and examined their operation within the Android development environment. An activity is an app component containing the user interface and it represents the app screen. You started to write code to implement an activity and in the Android software development kit or SDK every activity is an instance of the activity class. The activity class is responsible for creating a screen or a window which contains the user interface. Jetpack Compose is the latest Android UI toolkit and it can simplify common UI development tasks. You also learned how to create a very simple app for the Little Lemon Restaurant where you defined an activity in Android Studio using Cotland. Following the introduction to activities, you started learning about views, both the vital components when creating a UI in Android. Now that you've covered activity and views, you can describe how mobile UI is built, identify unique challenges for Android UI and set up Android Studio so you can use it throughout this course. A view is a single Android UI element sometimes also called a widget which is drawn and shown on the screen and with which a user can interact. Now that you've worked with activity and views, you should be able to describe an activity, define an activity with a single view in a layout, identify common views and discuss the use of sizing units. You should also know identify common layouts such as linear relative grid and frame and discuss how xml can represent hierarchies. Jetpack Compose is a UI toolkit that can help you create an Android UI. It can aid your Android development work on areas including activities, views and layouts. Jetpack is a collection of libraries that focus on helping developers to reduce development time write less code and to follow best practices. The Compose part of the Jetpack suite is a library for developing UI. You explored using Jetpack Compose to create the Little Lemon app by building a UI. That included defining composable functions while recognizing their characteristics and developing a simple UI in Compose using Android Studio. We started by developing the Little Lemon home screen step by step, for instance, you defined a Compose herbal function for the main panel using a variable called name. Inside the main panel function, the name argument is passed to another function. Text which is a built in Compose double function in Compose library responsible for creating the text UI element that appears on the screen following your work in week one you should now be familiar with the basics of UI creation in Android and be able to create a basic UI. There is of course more to consider when working with more complex Android UI projects in Jetpack, Compose you went on to cover how to operate with modifiers, interactivity state and learned about laying out Compose a bles. A modifier allows you to modify some aspect of a composable that is either related to its appearance or behavior. One of the major uses of modifiers is to configure composables. When using modifiers, you can create an interaction such as when the user taps on a UI element or performs interactions like swiping scrolling or dragging. State is data are some part of a programs information that changed over time. It may also refer to a current snapshot or condition of a program. So it is important that the state is remembered by the app to ensure proper execution of the program. For this to happen, you use the mechanism provided by the Remember and State APIs or application programming interface in the Compose library. For example, individual UI elements such as buttons, checkboxes, text fields and sliders have a state. In Compose, the recreation of the app and its view related elements based on their state may happen frequently and is called Recomposition. Recomposition happens whenever state changes. Developing an Android UI with Compose allows you to use its rich toolkit of capabilities to develop exceptional UI designs. To help you achieve that exceptional design goal, you learned what material design and material components are and you discovered what a Scaffold is and how a Scaffold provides common layout structures. Material design is a comprehensive design system to create user interfaces and material design. The individual UI elements are called material components which carry a standard and adaptable look and feel. This applies to various UI structures and components, including app bars, snack bars, the navigation drawer and floating action buttons. UI patterns are common UI design structures which you find in many apps. For instance, an app top bar containing the name of the app and some buttons is a UI pattern and it is often used as a composite component consisting of several UI elements. Compose provides a convenient way to combine these UI patterns and material components using a special composable called Scaffold. Scaffolds are customizable layouts that provide support to add various UI structures and components. By the end of week two, you should have enhanced your skills with Android UI creation and be able to efficiently build a UI using Jetpack Compose. You should then have been able to use layouts in Compose such as row, column and box layouts and create a UI design complete with text, image and buttons. Following your hard work in weeks one and two, it was then time to add the extra layer of development by exploring advanced UI aspects. This advanced UI work included exploring Jetpack navigation, working with lists and grids and operating with lazy layouts. You started building interfaces that with multiple screen and extending beyond visible screen area using Jetpack. A typical app has more than a single screen to help build the navigation from one screen to another. Android Jetpack provides a navigation component. This includes simple actions such as clicking a button or clicking item on the list, triggering a move to the navigation destination. You also used the nav controller to navigate between destinations while keeping track and manipulating the back stack. You used lists when you need to display several items either vertically or horizontally. You learned how to code a simple horizontal and vertical list using a row and a column and to use the properties of lists to arrange the elements in them. For instance, to display a list of dishes that Little Lemon Restaurant offers an alternative to that list of dishes would be to define a grid layout. An Android, a grid is a scroll mobile layout that displays the items in two dimensions both rows and columns. The lists and grids design approach works well for a small number of items. For a large number of items, you may find it better to use Jetpack Compose components such as lazy row, lazy column and lazy grid because they only Compose that which is visible in Vieux Port rather than composing the entire amount of items all at once. Compose provides two types of grids which are called lazy vertical grid and lazy horizontal grid. A lazy vertical grid displays the items in a vertical scroll able grid, spend across multiple columns. The lazy horizontal grid displays the horizontal scroll able grid spanned across multiple rows. In week four, it was time to get familiar with the basics of UI styling using themes and animations. You learned to define, apply and customized themes. You also learned how to animate UI elements by applying transitions. Where you have two screens containing the same composables, such as header, text description, text image and two buttons. Each screen may look different. Their appearance is controlled by the application theme. A theme is composed of a collection of attributes where a single attribute can represent font size shape typography, color spacing and more. These attributes are used by composables styles layouts and so on. Declaring all the attributes in a theme allows you to reuse them across the entire application, leading to consistent component design. User experience, are UX and animation is an important part of modern UI design. Animations improve the overall application, interactivity, making the use of an app more intuitive and also helping to attract and retain user attention. Animation effects include items such as fade in and fade out. The API can further be extended to create your own custom animation effects beyond the default built in set. At the end of week four, you should appreciate how the material design theme can apply a consistent design throughout your whole app. You should also have learned what animations are and why they are important for UX and have explored various ways of controlling the animations, including transition animations and duration. You've reached the end of this course recap it's now time for you to proceed to the last part of your course and try out what you've learned in the graded assessment. Good luck with that final practical app project for the Little Lemon Restaurant.