# Android SDK

### Install Using **Android Studio**

1. Open the Project Structure dialog (`File > Project Structure...`).
2. Choose `Dependencies` from the left pane, then the main module (e.g. `app`).
3. Click the `+` button in the `Declared Dependencies` pane, and choose `1 Library Dependency` from the popup menu to open the `Add Library Dependency` dialog.
4. In the `Add Library Dependency` dialog, type `xyz.spindl` under Step 1 and press the `Search` button.
5. Choose the `xyz.spindl` | `sdk` result from the results table, and the highest version available.
6. Make sure `implementation` is selected under Step 2, and press `OK`.

### Initialize SDK

Setup a Spindl instance, e.g. in `MainActivity`:

```kotlin
class MainActivity : ComponentActivity() {
    private lateinit var spindl: Spindl

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

        val apiKey = getString(R.string.spindlApiKey)
        lifecycleScope.launch {
            spindl = Spindl(context = applicationContext, lifecycleOwner = this@MainActivity)
            spindl.initialize(apiKey = apiKey)
        }
    ...
```

### Track Events

Track events with the `track` method:

* `name` is required
* `properties` are optional

```kotlin
val properties = JsonObject()
properties.addProperty("prop1Key", "prop1Value")

spindl.track("eventName", properties)
```

### Identify Users

Once customers enter their customer ID (such as email) and/or wallet information (e.g., after logging in), connect that to the analytics by calling the `identify` method:

```kotlin
spindl.identify(walletAddress = wallet, customerUserId = userId)
```
