The Driver SDK is a mobile app toolkit and a fundamental component of Fleet
Engine. With this SDK, your driver app can both manage assigned trips and
enable driver navigation and routing capabilities.

## Before you begin

This guide assumes you have read the following:

- [Fleet Engine essentials](https://developers.google.com/maps/documentation/mobility/fleet-engine/essentials.md.txt).
- [The data model for vehicles](https://developers.google.com/maps/documentation/mobility/fleet-engine/essentials/vehicles-intro.md.txt#on-demand-trips).
- [The data model for on-demand trips](https://developers.google.com/maps/documentation/mobility/fleet-engine/essentials/trip-intro.md.txt#data-model).
- [How to set up Fleet Engine](https://developers.google.com/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet.md.txt).
- [How to create and use vehicles in Fleet Engine](https://developers.google.com/maps/documentation/mobility/fleet-engine/essentials/vehicles.md.txt).

## What is the Driver SDK for on-demand trips?

The Driver SDK communicates vehicle location and trip updates to Fleet Engine so
that Fleet Engine can track the vehicles and their assigned
trips. At its core, the SDK uses an event listener to send location
updates and latitude/longitude coordinates, along with the current route segment
and destination from the Navigation SDK to Fleet Engine when your driver begins
driving.

## Why use the Driver SDK for on-demand trips?

The Driver SDK enables easier integration with Fleet Engine for updates to the
driver's routes. With this SDK, your driver can use a single app to manage
assignments and navigate as they would using their consumer version of Google
Maps but without having to switch to another app.

## What you can do with the Driver SDK for on-demand trips

Use the Driver SDK for on-demand trips to communicate the following with Fleet
Engine:

- A vehicle's real-time position on a map.
- Latitude/longitude coordinates for the trip waypoints provided by the Navigation SDK.
- Remaining distance to the next waypoint.
- Estimated time of arrival to the next waypoint.
- Route the vehicle needs to take as provided by the Navigation SDK.

## How the Driver SDK for on-demand trips works

The Driver SDK depends on the Navigation SDK for the routing information and
destination. Together with the information from the Navigation SDK, the Driver
SDK integrates with your driver app and provides Fleet Engine with a stream of
location updates, latitude/longitude coordinates, remaining distance, and ETAs.
All other vehicle data updates must be sent to the customer backend, which
relays the data to Fleet Engine.

![System diagram which shows how the Driver SDK communicates from the clients to the customer infrastructure and then to the Google infrastructure through Fleet Engine and the Customer Backend](https://developers.google.com/maps/documentation/mobility/on-demand/images/driver-sdk-ondemand-system-diagram.png)

## How to use the Driver SDK for on-demand trips

Select your platform to see how to start using the Driver SDK.

### Android

|---|---|---|
| 1 | **Get the Driver SDK for Android** | For more information, see [Get the Driver SDK](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/minimum-requirements). |
| 2 | **Configure a Google Cloud console project** | For more information, see [Configure a Google Cloud console project](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/configure-project). |
| 3 | **Declare dependencies** | For more information, see [Declare dependencies](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/dependencies). |
| 4 | **Create authentication tokens** | For more information, see [Create authentication tokens](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/authenticate). |
| 5 | **Initialize the Driver SDK** | For more information, see [Initialize the Driver SDK](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/initialize-sdk). |
| 6 | **Get the vehicle ready** | For more information, see [Get the vehicle ready](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/vehicle-ready). |
| 7 | **Set the trip details** | For more information, see [Set the trip details](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/trip-details). |

### iOS

|---|---|---|
| 1 | **Get the Driver SDK for iOS** | For more information, see [Get the Driver SDK](https://developers.google.com/maps/documentation/mobility/driver-sdk/ios/minimum-requirements). |
| 2 | **Configure a Google Cloud console project** | For more information, see [Configure a Google Cloud console project](https://developers.google.com/maps/documentation/mobility/driver-sdk/ios/configure-project). |
| 3 | **Create authentication tokens** | For more information, see [Create authentication tokens](https://developers.google.com/maps/documentation/mobility/driver-sdk/ios/authenticate). |
| 4 | **Initialize the Driver SDK** | For more information, see [Initialize the Driver SDK](https://developers.google.com/maps/documentation/mobility/driver-sdk/ios/initialize-sdk). |
| 5 | **Get the vehicle ready** | For more information, see [Get the vehicle ready](https://developers.google.com/maps/documentation/mobility/driver-sdk/ios/vehicle-ready). |
| 6 | **Set the trip details** | For more information, see [Set the trip details](https://developers.google.com/maps/documentation/mobility/driver-sdk/ios/trip-details). |

## What's next

See the documentation for the platform on which you want to set up the Driver
SDK:

- [Android](https://developers.google.com/maps/documentation/mobility/driver-sdk/android/minimum-requirements)
- [iOS](https://developers.google.com/maps/documentation/mobility/driver-sdk/ios/minimum-requirements)