Owl sample

This sample is a Jetpack Compose implementation of Owl, a Material Design study.

To try out this sample app, you need to use
Android Studio Arctic Fox.
You can clone this repository or import the
project from Android Studio following the steps
here.

This sample showcases:

Screenshots

Features

Onboarding Screen

The onboarding screen allows users to customize their experience by selecting topics. Notable features:

Courses Screen

The courses screen displays featured and saved course and a search screen. Notable fetures:

Course Details Screen

Displays details of a selected course, featuring:

Theming

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.

Common UI

Compose makes it simple to create a library of components and use them throughout the app. See:

Utilities

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.

Data

Domain types are modelled in the model package, each containing static sample data exposed using fake Repos objects.

Imagery is sourced from Unsplash and Pravatar and loaded using coil-accompanist.

License

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.

GitHub

View Github