This sample showcases:
- Material theming & light/dark themes
- Custom layout
The onboarding screen allows users to customize their experience by selecting topics. Notable features:
The courses screen displays featured and saved course and a search screen. Notable fetures:
StaggeredVerticalGridresponsive to available size.
FeaturedCoursecomposable demonstrates usage of
Displays details of a selected course, featuring:
- A FloatingActionButton that can be clicked or dragged to transform into a
- A selection of
RelatedCoursesusing a nested
Owl follows Material Design, customizing colors, typography and shapes. These come together in Owl’s multiple themes, one for each color scheme. Additionaly, Owl supports image and elevation theming, providing alternate images/elevations in light/dark themes.
Compose makes it simple to create a library of components and use them throughout the app. See:
CourseListItemis used on both the My Courses screen and in the related section of the Course Details screen.
OutlinedAvataris used on both the Featured Courses screen and the Course Details screen.
Owl implements some utility functions of interest:
- Window insets will likely be provided by the Compose library at some point. Until then this demonstrates how it can be implemented.
- NavGraph models navigation within the app using Jetpack Navigation.
Domain types are modelled in the model package, each containing static sample data exposed using fake
Copyright 2020 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.