# Building Luciq

You can use these methods to build Luciq in your project so that you can invoke it. This method takes a **string token** and **any number of invocation events** as an argument. This method will require that you have Luciq already installed. For more information on how to fully install and integrate **Luciq**, please refer to the relevant documentation sections here:

* [iOS](https://docs.luciq.ai/ios/setup-luciq-for-ios/integrate-luciq-on-ios)
* [Android](https://docs.luciq.ai/android/set-up-luciq-for-android/integrate-luciq-on-android)
* [React Native](https://docs.luciq.ai/react-native/setup-luciq-for-react-native/integrate-luciq-on-react-native)
* [Flutter](https://docs.luciq.ai/flutter/setup-luciq-for-flutter/integrating-luciq)

{% tabs fullWidth="false" %}
{% tab title="iOS - Swift" %}

```swift
Luciq.start(withToken: "YOUR-TOKEN-HERE", invocationEvents: [.shake, .screenshot]);
```

{% endtab %}

{% tab title="iOS - ObjC" %}

```objectivec
[Luciq startWithToken:@"YOUR-TOKEN-HERE" invocationEvents: LCQInvocationEventShake | LCQInvocationEventScreenshot]
```

{% endtab %}

{% tab title="And - Java" %}

```java
new Luciq.Builder(this, "APP_TOKEN")
    .setInvocationEvents(LuciqInvocationEvent.SHAKE, LuciqInvocationEvent.SCREENSHOT)
    .build();
```

{% endtab %}

{% tab title="And - Kotlin" %}

```kotlin
Luciq.Builder(this, "APP_TOKEN")
            .setInvocationEvents(LuciqInvocationEvent.SHAKE, LuciqInvocationEvent.SCREENSHOT)
            .build()
```

{% endtab %}

{% tab title="RN" %}

```javascript
//iOS
Luciq.startWithToken('IOS_APP_TOKEN', [Luciq.invocationEvent.shake]);

//Android
new RNLuciqReactnativePackage.Builder("TOKEN",MainApplication.this)
							.build();
```

{% endtab %}

{% tab title="Flutter" %}

```dart
//iOS
Luciq.start('APP_TOKEN', [InvocationEvent.shake]);

//Android
ArrayList<String> invocationEvents = new ArrayList<>();
invocationEvents.add(LuciqFlutterPlugin.INVOCATION_EVENT_SHAKE);
new LuciqFlutterPlugin().start(CustomFlutterApplication.this, "APP_TOKEN", invocationEvents);
```

{% endtab %}
{% endtabs %}

**Invocation Event Parameters:**

{% tabs fullWidth="false" %}
{% tab title="iOS - Swift" %}

```swift
//No Trigger
.none
//Shake
.shake
//Screenshot
.screenshot
//Two Finger Swipe Left
.twoFingersSwipeLeft
//Right Edge Pan
.rightEdgePan
//Floating Button
.floatingButton
```

{% endtab %}

{% tab title="iOS - ObjC" %}

```objectivec
//No Trigger
LCQInvocationEventNone
//Shake
LCQInvocationEventShake
//Screenshot
LCQInvocationEventScreenshot
//Two Finger Swipe Left
LCQInvocationEventTwoFingersSwipeLeft
//Right Edge Pan
LCQInvocationEventRightEdgePan
//Floating Button
LCQInvocationEventFloatingButton
```

{% endtab %}

{% tab title="And - Java" %}

```java
//No Trigger
NONE
//Shake
SHAKE
//Screenshot
SCREENSHOT
//Two Finger Swipe Left
TWO_FINGER_SWIPE_LEFT
//Floating Button
FLOATING_BUTTON
```

{% endtab %}

{% tab title="And - Kotlin" %}

```kotlin
//No Trigger
NONE
//Shake
SHAKE
//Screenshot
SCREENSHOT
//Two Finger Swipe Left
TWO_FINGER_SWIPE_LEFT
//Floating Button
FLOATING_BUTTON
```

{% endtab %}

{% tab title="RN" %}

```javascript
//iOS
//No Trigger
Luciq.invocationEvent.none
//Shake
Luciq.invocationEvent.shake
//Screenshot
Luciq.invocationEvent.screenshot
//Two Finger Swipe Left
Luciq.invocationEvent.twoFingersSwipe
//Floating Button
Luciq.invocationEvent.floatingButton

//Android
"none"
"shake"
"screenshot"
"swipe"
"button"
```

{% endtab %}

{% tab title="Flutter" %}

```dart
//iOS
InvocationEvent.none
InvocationEvent.shake
InvocationEvent.screenshot
InvocationEvent.twoFingersSwipe
InvocationEvent.floatingButton
  
//Android
LuciqFlutterPlugin.INVOCATION_EVENT_NONE
LuciqFlutterPlugin.INVOCATION_EVENT_SHAKE
LuciqFlutterPlugin.INVOCATION_EVENT_SCREENSHOT
LuciqFlutterPlugin.INVOCATION_EVENT_SWIPE
LuciqFlutterPlugin.INVOCATION_EVENT_BUTTON
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.luciq.ai/references/invocation/showing-and-manipulating-the-invocation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
