Tutorials

Last edit: 2024.02.08

The tutorials are guides and recipes on topics that you may come across while developing for the TomTom Digital Cockpit platform. Each one explains step-by-step how you can extend TomTom Digital Cockpit.

Before you can follow along with these tutorials, please make sure your development environment is set up correctly, and that you can run TomTom Digital Cockpit on your emulator.

Basics

TutorialDescription
The debug menuThis guide explains what the debug menu is and how to use it.
Configure debug tabsHow to create a new tab for the debug menu, and how to customize the existing tabs.
Upgrade to a newer version of Digital CockpitHow to upgrade the Digital Cockpit version you are using in your application.

Core

Platform

TutorialDescription
Integrate TomTom Digital Cockpit into a Gradle projectHow to add TomTom Digital Cockpit to a new or already existing Gradle project.
Configure the runtime deployment of the IVI SystemHow to run services in a separate process, configure multiple TomTom Digital Cockpit instances, and how to deploy Android services in the same process as an IVI service.

Frontends

TutorialDescription
Create a frontend pluginHow to add a frontend with panels, how to link your frontend to a Fragment, and how to make a menu item for it.
Create a main process panelHow to create and show a main process panel.
Create a notification panelHow to create and show a notification panel.

Services

TutorialDescription
Create an IVI serviceHow to define the interface of your service, how to implement and deploy it, and how to use it from the client side.
Use an IVI data sourceHow to use IviDataSource to handle some IVI service properties.

Customization

TutorialDescription
Use the configuration frameworkHow to create static and dynamic configurations by using the configuration generator, and how to use these to customize the application.
Custom animationsHow to create custom animations for sub-container transitions in the system UI.
Custom fragmentsHow to adjust the look and behavior of a panel by customizing its initial fragment. A system UI host can create custom fragment rules that replace the normal fragment of a panel with a custom fragment.
Custom frontend coordination ruleHow to create a custom frontend coordination rule, and how to use it in a custom system UI host.
Custom notification centerHow to create a custom notification center header and empty state layout.
Custom panel typeHow to create a custom panel type to visualize custom information in the system UI.
Custom panel containerHow to create a custom panel container to control the behavior of panels in the system UI.
Custom sub-container layoutHow to use a custom sub-container layout with a default panel container.

Domains

Communications

TutorialDescription
Create a custom connection serviceHow to add a new connection service to make phone calls via TomTom Digital Cockpit, like Voice Over IP (VOIP).
Create a custom contacts serviceHow to add a contacts service that provides information that TomTom Digital Cockpit can display in the contacts panel.
Create a custom recent calls serviceHow to add a recent calls service that provides information that TomTom Digital Cockpit can display in the recent calls panel.
Configure the communications pluginHow to configure the behavior of the off-the-shelf communications plugin.
How to use the communications plugin SettingsHow to configure the MessagingAppSettingsService for custom quick replies handling.
Customize the communications frontendHow to customize the stock Communications Frontend.

In-Vehicle Charging

TutorialDescription
Create a custom in-vehicle-charging serviceHow to add an in-vehicle charging service that provides access to an eMSP which TomTom Digital Cockpit can use to start a charging session.

Media

TutorialDescription
Create a new media user interfaceHow to add a single-panel user interface for a radio source.
Customize a media sourceHow to add a new media source that will automatically show up as an additional choice in the media panel.
Configure the media pluginsHow to change the media plugin configuration.
Customize media plugin fragmentsHow to replace the look and feel of existing media fragments.

Voice Personal Assistant (VPA)

TutorialDescription
Create a custom VPA adaptation serviceHow to add a custom VPA Adaptation service to support a 3rd party VPA.
Create a custom Alexa handler serviceHow to add a custom Alexa handler service that can be used to extend the set of stock Alexa platform message handlers offered by the TomTom Digital Cockpit platform.
Customize the Alexa Car Control featureHow to customize or replace the stock Alexa Car Control handler service offered by the TomTom Digital Cockpit platform.
Implement Alexa preview modeHow to implement Alexa Preview Mode, a feature that allows access to a limited set of Alexa features without requiring a login with an Amazon account.

System Features

App Launcher

TutorialDescription
Create a custom app launcher serviceHow to add a custom App launcher service that can be used to extend or override the TomTom Digital Cockpit platform App launcher implementation.
Replace the stock Android app supportHow to configure the stock Android apps that are being shown in the app launcher.
Add support for a custom non-Android app typeHow to display and launch custom non-Android app types from the app launcher.
Add support for web app launch triggerHow to add the support for triggering the launch of a web app from an external source.

App Store

TutorialDescription
Configure an app storeHow to add an App Store, to offer end-users of your system the ability to expand their system by installing additional apps.

Localization

TutorialDescription
Localize stringsHow to localize strings, how to discover string resources used in your application, and how to get additional context information per string resource to facilitate translations.
Change Localization settingsHow to use the TomTom Digital Cockpit Localization Settings API to allow the user to choose their preferred localization settings. For example, it is possible to change the language in the Android system in order for it to be reflected in the cockpit app as well as in all third-party apps, or to choose between displaying the time in a 12-hour or 24-hour format.

Splash Screen

TutorialDescription
Custom splash screenHow to create a custom splash screen.