Tiles provide quick access to the information and actions users need to get things done. The tiles carousel is revealed by a swipe on the watch face, and additional swipes will switch between tiles. Tiles themselves cannot be scrolled.

Users can choose what tiles they want to see. There are tiles to check the weather, set a timer, track daily fitness progress, quick-start a workout, play a song, scan an upcoming meeting, and send a message to a favorite contact.
![Tiles next to each other.](https://developer.android.com/static/wear/images/tiles/m3-tiles-examples.png)**Figure 1.**: Tiles give users access to information and actions.

Instead of using[Compose](https://developer.android.com/compose)(or[Views](https://developer.android.com/develop/ui/views/layout/declaring-layout)), Tiles are defined declaratively using Jetpack's[protolayout](https://developer.android.com/jetpack/androidx/releases/wear-protolayout)and[tiles](https://developer.android.com/jetpack/androidx/releases/wear-tiles)libraries. Because Tiles are rendered in a separate, remote environment, they require different approaches to load, display, and update data within them. Their simplicity makes them straightforward to build, test, and deploy.

## Core principles

Wear OS provides tiles as a way for you to show a small amount of key information, which users can read through after they glance at a tile for a few seconds. To provide this high-quality experience for users, follow these best practices:

- Don't overcrowd tiles with too much content. Instead, allow users to tap on tiles to learn more and take action on another surface in your app. See[Include (at least) one container](https://developer.android.com/design/ui/wear/guides/surfaces/tiles/bestpractices#include_at_least_one_container).
- Declaratively define your tile's layout and content. The system is responsible for the final rendering.
- Don't fetch content frequently or start long-running asynchronous work in your tile service. To perform work which may take some time to complete---such as network calls---use[WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager/how-to/define-work#expedited)to schedule background tasks, and cache or store the results in local storage.

## Recommended for you

- Note: link text is displayed when JavaScript is off
- [Show dynamic updates in tiles](https://developer.android.com/training/wearables/tiles/dynamic)
- [Migrate to ProtoLayout namespaces](https://developer.android.com/training/wearables/tiles/migrate-to-protolayout)