Skip to content

Files

Latest commit

1265bf8 · Mar 17, 2025

History

History

Reply

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Mar 17, 2025
Oct 3, 2022
Feb 20, 2025
Jul 12, 2022
Jul 4, 2022
Jul 9, 2024
Jul 1, 2022
Oct 25, 2023
May 29, 2024
Apr 26, 2024
Oct 25, 2024
May 10, 2022
May 10, 2022
Oct 4, 2022

Reply sample

This sample is a Jetpack Compose implementation of Reply, a material design study for adaptive design.

To try out this sample app, use the latest stable version of Android Studio. Resizeable Emulator You can clone this repository or import the project from Android Studio following the steps here.

This sample showcases:

  • Adaptive apps for mobile, tablets and foldables
  • Material navigation components
  • Material 3 theming & dynamic colors.

Design & Screenshots

Features

The WindowSizeClass allows us to get to know about current device size and configuration and observe any changes in device size in case of orientation change or unfolding of device.

The WindowLayoutInfo let us observe all display features including Folding Postures real-time whenever fold state changes to help us adjust our UI accordingly.

The sample provides usage of material navigation components depending on screen size and states. These components also are part of material guidelines for canonical layouts to improve user experience and ergonomics.

Reply is using brand new Material 3 colors, typography and theming. It also supports both light and dark mode depending on system settings. Material Theme builder is used to create material 3 theme and directly export it for Compose.

On Android 12+ Reply supports Material You dynamic color, which extracts a custom color scheme from the device wallpaper. For older version of android it falls back to defined light and dark color schemes

Similar to navigation type, depending on device's size and state correct content type is chosen, we can have Inbox only or Inbox and thread detail together. The content in inbox screen is adaptive and is switched between list only or list and detail page depending on the screen size available.

Reply is using all material 3 components including different type of FAB for different screen size and states.

Reply has static local data providers for email and account data. It is also using repository pattern where EmailRepository emits the flow of email from local data that is used in ReplyHomeViewModel to observe it in view model scope. The ViewModel exposes this data to ReplyApp composable via state flow.

License

Copyright 2022 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.