Getting started

  • Set up the Android SDK by adding the "searchinapps" dependency from Google Maven to your project's build.gradle file.

  • Configure your AndroidManifest.xml file with your API key and client ID using metadata elements.

  • Initialize the SDK by creating a SearchInAppsService instance in your activity or relevant class, passing in the context.

  • Utilize provided code samples to integrate the SDK into your project, handling both Java and Jetpack Compose scenarios.

This page describes how to get set up with the Android SDK. If you haven't completed the prerequisites, complete them first.

Dependency

Import the "searchinapps" SDK into an Android project from GMaven. Open your project's build.gradle file, declare the Google Maven repository and add the SDK dependency:

repositories {
  google()
  ...
}

dependencies {
  implementation 'com.google.android.libraries.searchinapps:searchinapps:[version]'
  ...
}

Then build your project using Gradle.

AndroidManifest.xml configuration

Update your Android project AndroidManifest.xml file to add the following metadata:

  1. com.google.searchinapps.API_KEY: the string value of your SDK api key (see above).
  2. com.google.searchinapps.CLIENT_ID: the string value of your app's client identifier (see above).

Sample AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.samples.quickstart.searchinapps">

<application
...
>
<meta-data
android:name="com.google.searchinapps.API_KEY"
android:value="[your api key]"/>
<meta-data
android:name="com.google.searchinapps.CLIENT_ID"
android:value="[your client id]"/>
...
</application>

</manifest>

Initialization

To use "searchinapps" SDK's functions, in the target Activity or any classes that's responsible for retrieving search results, create a SearchInAppsService instance (you can do it in the Activity class's onCreate function) and also pass activity or application Context into it.

Sample code

Java

package ...;

...
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.libraries.searchinapps.SearchInAppsService;
...

public class MainActivity extends AppCompatActivity {
  private SearchInAppsService service;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ...
    service = SearchInAppsService.create(this);
    ...
  }

  @Override
  public void onDestroy() {
    service.shutDown();
    super.onDestroy();
  }
}

Jetpack Compose

package ...

...
import android.os.Bundle
import androidx.activity.compose.setContent
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.platform.LocalContext
import com.google.android.libraries.searchinapps.SearchInAppsService
...

class MainActivityJetpack : AppCompatActivity() {
  private var service: SearchInAppsService? = null

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContent {
      SearchSuggestionsUI()
    }
  }

  @Composable
  fun SearchSuggestionsUI() {
    ...
    var service by remember {
      mutableStateOf<SearchInAppsService?>(
        SearchInAppsService.create(LocalContext.current))
    }
    ...
    DisposableEffect(Unit) { onDispose { service?.shutDown() } }
    ...
  }
  ...
}

Next: Search features