algolia / instantsearch-android

A library of widgets and helpers to build instant-search applications on Android.
https://www.algolia.com/doc/guides/building-search-ui/what-is-instantsearch/android/
Apache License 2.0
155 stars 28 forks source link
algolia android android-library custom-widgets faceted-search geo-search instant-search interface-builder kotlin kotlin-android open-source search search-engine search-interface search-synonyms widgets
InstantSearch Android

Download Build Status

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.

Compose You can add [Compose UI](https://developer.android.com/jetpack/androidx/releases/compose-ui) support by adding the following line to your build.gradle's dependencies: ```groovy implementation "com.algolia:instantsearch-compose:$instantsearch_version" ```
Paging 3 You can add [Paging 3](https://developer.android.com/topic/libraries/architecture/paging/v3-overview) support by adding the following line to your build.gradle's dependencies: ```groovy implementation "com.algolia:instantsearch-android-paging3:$instantsearch_version" ```
Insights You can add **InstantSearch Insights** to your Android application by adding the following line to your `build.gradle`'s dependencies. ```groovy implementation "com.algolia:instantsearch-insights-android:$instantsearch_version" ``` Please refer to the [library](instantsearch-insights/README.md) for more details.

Requirements

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 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.