Weather apps let users see relevant weather information related to their current location or along their route. Weather apps can also provide navigation capabilities -- see[Build navigation apps for cars](https://developer.android.com/training/cars/apps/navigation)for more details on building navigation apps.
| **Design guidelines:** Refer to[Weather apps](https://developers.google.com/cars/design/create-apps/app-types/weather)for UX guidance specific to weather apps.

## Declare the weather category in your manifest

Your app must declare the`androidx.car.app.category.WEATHER`[car app category](https://developer.android.com/training/cars/apps#supported-app-categories)in the intent filter of its[`CarAppService`](https://developer.android.com/reference/androidx/car/app/CarAppService).  

    <application>
        ...
       <service
           ...
            android:name=".MyCarAppService"
            android:exported="true">
          <intent-filter>
            <action android:name="androidx.car.app.CarAppService" />
            <category android:name="androidx.car.app.category.WEATHER"/>
          </intent-filter>
        </service>
        ...
    <application>

### Declare navigation support

If your app can also be used for navigation, it must also follow the guidance found at[Declare navigation support in your manifest](https://developer.android.com/training/cars/apps/navigation#declare-navigation-support)when declaring its category. The intent filter used to declare your app's category should include both categories:  

    <intent-filter>
      <action android:name="androidx.car.app.CarAppService" />
      <category android:name="androidx.car.app.category.WEATHER"/>
      <category android:name="androidx.car.app.category.NAVIGATION"/>
    </intent-filter>

## Implement your app's functionality

To implement your app, refer to[Using the Android for Cars App Library](https://developer.android.com/training/cars/apps)on how Car App Library apps are built. Also, be sure to familiarize yourself with the[Car app quality guidelines for weather apps](https://developer.android.com/docs/quality-guidelines/car-app-quality?category=weather#app_categories), as your app will be reviewed against these guidelines.

### Draw maps

Weather apps can access the[`MapWithContentTemplate`](https://developer.android.com/reference/androidx/car/app/navigation/model/MapWithContentTemplate), which can be used to display lists and other types of content alongside a map that is rendered by your app. See[Draw maps](https://developer.android.com/training/cars/apps#draw-maps)for more details on using this template.
| **Important:** Keep the[Weather Functionality](https://developer.android.com/docs/quality-guidelines/car-app-quality?category=weather#weather-functionality)quality guidelines in mind when determining what to render on a map

To access the template, your app needs to declare either the`androidx.car.app.MAP_TEMPLATES`or`androidx.car.app.NAVIGATION_TEMPLATES`permission in its`AndroidManifest.xml`file:  

    <manifest ...>
      ...
      <!-- Use the MAP_TEMPLATES permission if your app doesn't provide navigation functionality -->
      <uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>

      <!-- Use the NAVIGATION_TEMPLATES permission if your app provides navigation functionality -->
      <uses-permission android:name="androidx.car.app.NAVIGATION_TEMPLATES"/>
      ...
    </manifest>

| **Caution:** Don't include both the`androidx.car.app.MAP_TEMPLATES`and the`androidx.car.app.NAVIGATION_TEMPLATES`permissions in your manifest, or your app will be rejected during review.