# Início rápido

Este guia leva o SDK Demo App do código-fonte entregue até um aplicativo rodando no seu terminal.

## Antes de começar

Confirme que você atende aos [Pré-requisitos](/pt/getnet-toolbox/sdk-demo-app/first-steps-demo/prerequisites).

## Passo 1: Obter o projeto

O código-fonte do demo app é entregue dentro do toolkit, já extraído, em `devkit-source/apolo-devkit/`. Abra essa pasta no Android Studio com **File → Open…**.

Conclua o Passo 2 antes de sincronizar o projeto.

## Passo 2: Configurar o JDK do Gradle para 21

O projeto compila apenas com JDK 21. O erro de sincronização típico quando ele falta é `Unsupported class file major version`.

1. Abra **Settings** — no Windows e Linux `File → Settings`, no macOS `Android Studio → Settings`.
2. Vá em **Build, Execution, Deployment → Build Tools → Gradle**.
3. Em **Gradle JDK**, selecione um JDK 21 — por exemplo o JetBrains Runtime 21 incluído (`jbr-21`), ou baixe um com **Download JDK…**.
4. Clique em **Apply/OK** e execute o **Sync** do Gradle novamente.

## Passo 3: Selecionar a variante e executar

O aplicativo define a dimensão de flavor `country` com o flavor `brazil` como padrão, combinada com os build types `debug` e `hml`. Execute a variante padrão `brazilHml`.

Para cada variante, o `app/build.gradle.kts` adiciona a dependência do SDK como `com.pagonxt.sdk:<flavor>-<buildType>` — por exemplo `com.pagonxt.sdk:brazil-hml`, versão `1.0.0-SNAPSHOT`. Ela é resolvida a partir do repositório Maven local incluído em `apolo-sdk-local-maven/brazil/<buildType>`.

**Pelo Android Studio**

1. Abra a janela **Build Variants** em `View → Tool Windows → Build Variants`.
2. No módulo `:app`, defina **Active Build Variant** como `brazilHml`.
3. Selecione a configuração de execução `app`, conecte o terminal e clique em **Run**.

**Pela linha de comando**

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

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

O comando `./gradlew :app:installBrazilHml` conclui e o aplicativo abre no terminal.

## Passo 4: Fornecer as credenciais

O demo app inicializa o SDK com as suas credenciais de integrador: `clientId`, `clientSecret`, `terminalCode` e os dados do sub-merchant. No primeiro início, a tela **Setup** permite digitá-las manualmente ou lê-las de um QR Code.

### Gerar o QR Code

O demo app traz o componente `CredentialsQrCode` em `app/src/main/java/com/pagonxt/apolo/devkit/internal/design/components/CredentialsQrCode.kt`. Ele usa o **ZXing** para montar um QR Code a partir de um payload JSON.

Os valores de exemplo ficam em duas funções: `buildMandatoryCredentialsPayload()` apenas para as credenciais obrigatórias, e `buildFullCredentialsPayload()` para as credenciais mais os dados do 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 as suas próprias credenciais:

1. Substitua os valores em `buildMandatoryCredentialsPayload()` ou `buildFullCredentialsPayload()` pelos seus dados de onboarding.
2. Abra o preview do Compose `MandatoryCredentialsQrCode_Preview` ou `FullCredentialsQrCode_Preview` no Android Studio e clique em **Build & Refresh**.
3. Use o QR Code resultante na tela Setup.

### Ler o QR Code

Na tela **Setup**, escolha a opção **ler QR Code** e aponte o terminal para o QR Code. Os campos de configuração são preenchidos automaticamente e o SDK é inicializado com as credenciais corretas.

## Passo 5: Verificar

Percorra as verificações abaixo. Cada uma confirma uma parte diferente da configuração.

| Verificação | O que esperar |
| :--- | :--- |
| Sincronização do Gradle | Conclui sem erros de JDK como `Unsupported class file major version`. |
| Resolução de dependências | Resolve sem credenciais — o SDK vem do repositório Maven local incluído e o restante do Maven Central e do Google. |
| Variante | `:app` está definido como `brazilHml`. |
| Execução | `./gradlew :app:installBrazilHml` conclui e o aplicativo abre. |
| Inicialização | Após inserir as credenciais, o warm-up do SDK reporta sucesso e o menu principal aparece. |

## Alterar as credenciais salvas

Depois do primeiro salvamento, as credenciais persistem no banco de dados do aplicativo e o demo app deixa de exibir a tela Setup. Para alterá-las, use uma destas opções:

* **Reset** — toque no botão de reset no cabeçalho da tela **Home** para limpar as credenciais e voltar ao Setup.
* **Limpar dados do aplicativo** — vá em **Settings → Apps → Apolo DevKit → Storage → Clear data**.
* **Reinstalar o aplicativo.**

Como alternativa por código, preencha `CLIENT_ID`, `CLIENT_SECRET` e `TERMINAL_CODE` em `SetupCredentials.kt` para inicializar o SDK em tempo de compilação e pular a tela Setup.

## Próximos passos

* [Personalizar o SDK](/pt/getnet-toolbox/sdk-demo-app/how-to-guides-demo/customize-the-sdk) — os dois modelos de personalização que o demo app demonstra.
* [Resolução de problemas](/pt/getnet-toolbox/sdk-demo-app/troubleshooting-demo/troubleshooting) — os sintomas comuns em cada passo acima e como resolvê-los.
* [SDK White Label — Início rápido](https://docs.globalgetnet.com/pt/products/in-store-payments/getnet-toolbox?doc=sdk-wl-quick-start) — integre o SDK no seu próprio aplicativo.
* `README.md` dentro do projeto extraído em `devkit-source/apolo-devkit/` — visão geral do repositório, mapa de foco e superfície de integração por cliente.