Skip to main content

Guia de Início Rápido

Configure o GoAB Survey SDK na sua aplicação iOS.

Pré-requisitos

  • Xcode 14+
  • iOS 14+
  • Swift 5.9+

1. Adicionar o SDK

O pacote iOS do GoAB Survey SDK está disponível no GitHub: empresago/goab-survey-sdk-ios.

Swift Package Manager (recomendado)

  1. No Xcode: File → Add Package Dependencies...
  2. Cole a URL do repositório:
    https://github.com/empresago/goab-survey-sdk-ios
  3. Selecione a regra de dependência (ex.: Up to Next Major Version) e a versão desejada.
  4. Adicione o produto GoABSurveySDK ao target do seu app.

Se o seu projeto usa Package.swift:

dependencies: [
.package(url: "https://github.com/empresago/goab-survey-sdk-ios", from: "1.2.0")
]

O pacote distribui um XCFramework pré-compilado (binaryTarget) — não há build a partir do fonte.

2. Criar instância

import GoABSurveySDK

let surveySdk: SurveySdk = SurveySdkFactory.shared.create(
context: SurveyPlatformContext(),
accountId: 2,
apiToken: "your-api-token",
timeoutMillis: 30_000
)
ParâmetroTipoObrigatórioDescrição
contextSurveyPlatformContextSimMarcador de plataforma, sem propriedades no iOS — passe sempre SurveyPlatformContext()
accountIdInt32SimID da conta GoAB
apiTokenStringSimToken de API da aplicação
timeoutMillisInt64NãoTimeout HTTP em milissegundos (padrão: 30 000)

Acesse a factory sempre via SurveySdkFactory.shared.

3. Inicializar e registar o host de apresentação

O SDK precisa de um SurveyUiHost, que envolve o UIViewController onde a pesquisa será apresentada:

import GoABSurveySDK
import UIKit

class SurveyManager {
let surveySdk: SurveySdk = SurveySdkFactory.shared.create(
context: SurveyPlatformContext(),
accountId: 2,
apiToken: "your-api-token",
timeoutMillis: 30_000
)

func start(presentingFrom viewController: UIViewController) async {
surveySdk.setPresentationHost(host: SurveyUiHost(viewController: viewController))

do {
try await surveySdk.initialize()
} catch {
print("Falha ao inicializar o Survey SDK: \(error)")
}
}
}

initialize() é async throws — chame-a a partir de uma Task ou de um contexto async.

Sempre que a UIViewController que apresenta a pesquisa mudar (ex.: nova tela em primeiro plano), atualize o host:

surveySdk.setPresentationHost(host: SurveyUiHost(viewController: currentViewController))

4. Enviar eventos de ativação

// Tela visitada
surveySdk.sendEvent(eventName: "screen_view", props: [
"screen_name": "Checkout",
"screen_class": "CheckoutViewController"
])

// Evento customizado
surveySdk.sendEvent(eventName: "purchase_completed", props: [
"plan": "premium",
"revenue": 99.90
])

Enquanto houver uma survey ativa na tela, novos sendEvent são ignorados — a survey corrente não é substituída.

5. Utilizador e atributos

surveySdk.setUserId(userId: "user_123")

surveySdk.setUserAttributes(attributes: [
"segment": "premium",
"country": "BR"
])

Ao mudar o userId, surveys visíveis são fechadas e uma nova sessão analítica é iniciada.

6. Observar eventos de survey (opcional)

Registe um closure para observar eventos. addOnSurveyEventListener retorna um handle que você guarda para remover depois:

let handle = surveySdk.addOnSurveyEventListener { event in
print("telemetria: \(event.eventType)")
}

// ao encerrar a tela / logout:
surveySdk.removeOnSurveyEventListener(listener: handle)

Veja Eventos de Survey para a tipagem de SurveyAnalyticsEvent, a lista de tipos de evento e exemplos de uso.

7. Fechar survey visível

surveySdk.disposeSurvey()

Útil em logout, troca de conta ou navegação que deve dispensar a UI da survey.

Próximos passos