Configure an App Store

Last edit: 2023.07.27

An app store can allow your product to offer end-users of your system the ability to expand their system by installing additional apps.

TomTom Digital Cockpit supports integration of Android app stores through configuration. It does not come with an app store configured by default, so you will need to choose and configure your own choice of app store.

A number of companies provide Android app stores targeted at automotive applications. Available Automotive app stores include:

  • Faurecia Aptoide
  • Harman Ignite
  • Access Twine4Car

Contact your TomTom Digital Cockpit sales representative for more information about available app stores.

Once installed and configured, an app store can be accessed via the App Launcher frontend, which is opened by tapping the Apps main menu item when using the example application. As there is no app store included with TomTom Digital Cockpit, selecting the Apps main menu option currently displays a "Coming Soon" screen.

App store coming soon

Any Android apps installed using the app store will appear in the App Launcher. From here they can be launched into a virtual display within TomTom Digital Cockpit.

Note: The App Launcher will display all non-system apps which have the LAUNCHER category or implement the media service interface. This means it will also show Android apps which have been installed onto the device using adb commands (known as "sideloaded" apps). To avoid confusion, it is best to remove any existing sideloaded apps before configuring an app store.

The steps below show how to install and configure your choice of app store:

Install your app store APK

Note: This section describes installing an app store during the development phase, for example, to try it out or for proof of concept purposes. For production, the app store APK should be preinstalled as part of the hardware platform system image.

When you have chosen your app store and downloaded the required APK(s) to a machine with adb installed, you can install the app store using the following command:

adb install <your-app-store-APK-filename>

Configure TomTom Digital Cockpit to launch your app store

Once you have installed your app store, you need to configure it within TomTom Digital Cockpit by overriding the default app store configuration (that is, no app store) with values relating to your chosen app store. The configuration values which must be overridden are as follows:

  • App Store Display Name: The name you want to associate with the app store within the UI.
  • App Store Package Name: Get this from your app store documentation or ask your app store provider.

The default app store configuration can be overridden using Android resource values or by implementing a static configuration provider.

Overriding app store configuration in Android resources

If you do not require the app store configuration to be set at runtime, you can override the values using Android resource strings. To do this, add the following Android resource strings to your project (substituting with values for your choice of app store):

<string name="appStoreDisplayNameConfigKey">My App Store Display Name</string>
<string name="appStorePackageNameConfigKey">my.app.store.package.name</string>

Overriding app store configuration with a static configuration provider

If you need to configure the app store at runtime, then create a static configuration provider and configure it in your application.

Add the following dependency to the build.gradle.kts file of the module where your new static configuration provider will reside:

implementation("com.tomtom.ivi.appsuite:appsuite_appstore_api_common_config:${libraries.versions.iviPlatform.get()}")

Create the static configuration provider:

1class MyAppStoreConfigurationProvider(
2 private val appStoreDisplayName: String,
3 private val appStorePackageName: String
4 ): ComposableStaticConfigurationProvider {
5 override fun get(key: OptStringStaticConfigurationKey): String? =
6 when(key) {
7 appStoreDisplayNameConfigKey -> appStoreDisplayName
8 appStorePackageNameConfigKey -> appStorePackageName
9 else -> null
10 }
11 }

To configure the example application, the static configuration provider needs to be added to the existing list of providers returned by TemplateApplication.createStaticConfigurationProviders(). In order for it to override any default values it must be added ahead of the default providers list:

template/app/src/main/kotlin/com/example/ivi/template/app/TemplateApplication.kt

1 override fun createStaticConfigurationProviders() =
2 listOf(
3 MyAppStoreConfigurationProvider(
4 getString(R.string.my_app_store_display_name),
5 "my.app.store.package.name"
6 )
7 ) + ...

After completing these steps you should see your app store icon above a button with the text "Download apps" when you open the App Launcher. Tapping this button should open your app store within a virtual display inside TomTom Digital Cockpit.

Note: If you have any sideloaded apps on the device then you will see the sideloaded apps displayed next to the app store icon and no "Download apps" button. In this case you can launch your app store by tapping on the app store icon.