# Inicio rápido

Esta guía lleva el SDK Demo App desde el código fuente entregado hasta una aplicación en funcionamiento en tu terminal.

## Antes de comenzar

Confirma que cumples los [Requisitos previos](/es/getnet-toolbox/sdk-demo-app/first-steps-demo/prerequisites).

## Paso 1: Obtener el proyecto

El código fuente del demo app se entrega dentro del toolkit, ya extraído, en `devkit-source/apolo-devkit/`. Abre esa carpeta en Android Studio con **File → Open…**.

Completa el Paso 2 antes de sincronizar el proyecto.

## Paso 2: Configurar el JDK de Gradle en 21

El proyecto compila solo con JDK 21. El error de sincronización típico cuando falta es `Unsupported class file major version`.

1. Abre **Settings** — en Windows y Linux `File → Settings`, en macOS `Android Studio → Settings`.
2. Ve a **Build, Execution, Deployment → Build Tools → Gradle**.
3. En **Gradle JDK**, selecciona un JDK 21 — por ejemplo el JetBrains Runtime 21 incluido (`jbr-21`), o descarga uno con **Download JDK…**.
4. Haz clic en **Apply/OK** y ejecuta **Sync** de Gradle nuevamente.

## Paso 3: Seleccionar la variante y ejecutar

La aplicación define la dimensión de flavor `country` con el flavor `brazil` como predeterminado, combinada con los build types `debug` y `hml`. Ejecuta la variante predeterminada `brazilHml`.

Para cada variante, `app/build.gradle.kts` agrega la dependencia del SDK como `com.pagonxt.sdk:<flavor>-<buildType>` — por ejemplo `com.pagonxt.sdk:brazil-hml`, versión `1.0.0-SNAPSHOT`. Se resuelve desde el repositorio Maven local incluido en `apolo-sdk-local-maven/brazil/<buildType>`.

**Desde Android Studio**

1. Abre la ventana **Build Variants** con `View → Tool Windows → Build Variants`.
2. En el módulo `:app`, configura **Active Build Variant** como `brazilHml`.
3. Selecciona la configuración de ejecución `app`, conecta el terminal y haz clic en **Run**.

**Desde la línea de comandos**

```bash
## Default (Brazil) HML build — compiles and installs
./gradlew :app:installBrazilHml

## Unit tests
./gradlew :app:testBrazilHmlUnitTest
```

El comando `./gradlew :app:installBrazilHml` se completa y la aplicación abre en el terminal.

## Paso 4: Proporcionar las credenciales

El demo app inicializa el SDK con tus credenciales de integrador: `clientId`, `clientSecret`, `terminalCode` y los datos del sub-merchant. En el primer inicio, la pantalla **Setup** te permite escribirlas manualmente o leerlas desde un código QR.

### Generar el código QR

El demo app incluye el componente `CredentialsQrCode` en `app/src/main/java/com/pagonxt/apolo/devkit/internal/design/components/CredentialsQrCode.kt`. Usa **ZXing** para construir un código QR a partir de un payload JSON.

Los valores de ejemplo están en dos funciones: `buildMandatoryCredentialsPayload()` para las credenciales obligatorias solamente, y `buildFullCredentialsPayload()` para las credenciales más los datos del sub-merchant.

```kotlin
private fun buildFullCredentialsPayload(): String {
    return JSONObject().apply {
        put("clientId", "...")
        put("clientSecret", "...")
        put("terminalCode", "...")
        put("subMerchantId", "...")
        put("city", "...")
        put("state", "...")
        put("postalCode", "...")
        put("document", "...")
        put("street", "...")
        put("phone", "...")
        put("corporateName", "...")
        put("url", "...")
        put("foreignType", "FULL_DOMESTIC")
    }.toString()
}
```

Para usar tus propias credenciales:

1. Reemplaza los valores en `buildMandatoryCredentialsPayload()` o `buildFullCredentialsPayload()` por tus datos de onboarding.
2. Abre la preview de Compose `MandatoryCredentialsQrCode_Preview` o `FullCredentialsQrCode_Preview` en Android Studio y haz clic en **Build & Refresh**.
3. Usa el código QR resultante en la pantalla Setup.

### Leer el código QR

En la pantalla **Setup**, elige la opción **leer código QR** y apunta el terminal al código QR. Los campos de configuración se completan automáticamente y el SDK se inicializa con las credenciales correctas.

## Paso 5: Verificar

Recorre las verificaciones siguientes. Cada una confirma una parte distinta de la configuración.

| Verificación | Qué esperar |
| :--- | :--- |
| Sincronización de Gradle | Se completa sin errores de JDK como `Unsupported class file major version`. |
| Resolución de dependencias | Se resuelve sin credenciales — el SDK viene del repositorio Maven local incluido y el resto de Maven Central y Google. |
| Variante | `:app` está configurado como `brazilHml`. |
| Ejecución | `./gradlew :app:installBrazilHml` se completa y la aplicación abre. |
| Inicialización | Tras ingresar las credenciales, el warm-up del SDK reporta éxito y aparece el menú principal. |

## Cambiar las credenciales guardadas

Después del primer guardado, las credenciales persisten en la base de datos de la aplicación y el demo app deja de mostrar la pantalla Setup. Para cambiarlas, usa una de estas opciones:

* **Reset** — toca el botón de reset en el encabezado de la pantalla **Home** para borrar las credenciales y volver a Setup.
* **Borrar datos de la aplicación** — ve a **Settings → Apps → Apolo DevKit → Storage → Clear data**.
* **Reinstalar la aplicación.**

Como alternativa por código, completa `CLIENT_ID`, `CLIENT_SECRET` y `TERMINAL_CODE` en `SetupCredentials.kt` para inicializar el SDK en tiempo de compilación y omitir la pantalla Setup.

## Siguientes pasos

* [Personalizar el SDK](/es/getnet-toolbox/sdk-demo-app/how-to-guides-demo/customize-the-sdk) — los dos modelos de personalización que demuestra el demo app.
* [Resolución de problemas](/es/getnet-toolbox/sdk-demo-app/troubleshooting-demo/troubleshooting) — los síntomas comunes en cada paso anterior y cómo resolverlos.
* [SDK White Label — Inicio rápido](https://docs.globalgetnet.com/es/products/in-store-payments/getnet-toolbox?doc=sdk-wl-quick-start) — integra el SDK en tu propia aplicación.
* `README.md` dentro del proyecto extraído en `devkit-source/apolo-devkit/` — visión general del repositorio, mapa de enfoque y superficie de integración por cliente.