Awesome
<img src="docs/img/banner.png" alt="InstantSearch Android" />InstantSearch family: InstantSearch Android | InstantSearch iOS | React InstantSearch | InstantSearch.js | Angular InstantSearch | Vue InstantSearch.
InstantSearch Android is a library providing widgets and helpers to help you build the best instant-search experience on Android with Algolia. It is built on top of Algolia's Kotlin API Client to provide you a high-level solution to quickly build various search interfaces.
Examples
You can see InstantSearch Android in action in our examples app, have a look at it to see concrete examples of all the available widgets.
Usage
Installing InstantSearch Android
You can add InstantSearch to your Android application by adding the following line to your build.gradle's dependencies:
implementation "com.algolia:instantsearch-android:$instantsearch_version"
ℹ️ Please follow the migration guide to migrate from 2.x
to the latest version.
▶️ See the documentation. You can start with the Getting Started Guide.
You can add Compose UI support by adding the following line to your build.gradle's dependencies:
implementation "com.algolia:instantsearch-compose:$instantsearch_version"
</details>
<details>
<summary><strong>Paging 3</strong></summary>
You can add Paging 3 support by adding the following line to your build.gradle's dependencies:
implementation "com.algolia:instantsearch-android-paging3:$instantsearch_version"
</details>
<details>
<summary><strong>Insights</strong></summary>
You can add InstantSearch Insights to your Android application by adding the following line to your build.gradle
's dependencies.
implementation "com.algolia:instantsearch-insights-android:$instantsearch_version"
Please refer to the library for more details.
</details>Requirements
- Kotlin 1.6+
- Android SDK 21+
- Java 8+
R8 / Proguard rules
If you use this library in an Android project which uses R8, there is nothing you have to do. The specific rules are already bundled into the JAR, which can be interpreted by R8 automatically.
If however, you don’t use R8, then you might need rules from Algolia Kotlin Client which is a dependency of this library.
Telemetry
InstantSearch Android collects data points at runtime. This helps the InstantSearch team improve and prioritize future development.
Here's an exhaustive list of the collected data:
- InstantSearch version
- The name of the instantiated InstantSearch components, for example,
HitsSearcher
,FilterState
- The name of the components with custom parameters (overridden defaults). InstantSearch doesn't collect the values of those parameters. For example, the default of the
facets
value inFacetListInteractor
is an empty list. If you instantiate it with a list of facets, then the telemetry tracks that thefacets
parameter received a custom value, but not the value itself.
InstantSearch doesn't collect any sensitive or personal data. However, you can still opt out of the telemetry collection with the following code:
Telemetry.shared.enabled = false
Contributing
From reporting bugs or missing functionality to fixing a typo or proposing an improvement, all contributions are welcome! Read the Contributing Guide to setup your development environment.
Troubleshooting
Encountering an issue? Before reaching out to support, we recommend heading to our FAQ where you will find answers for the most common issues and gotchas with the library.
License
InstantSearch Android is licensed under Apache V2.