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)
- No Xcode: File → Add Package Dependencies...
- Cole a URL do repositório:
https://github.com/empresago/goab-survey-sdk-ios - Selecione a regra de dependência (ex.: Up to Next Major Version) e a versão desejada.
- 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âmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
context | SurveyPlatformContext | Sim | Marcador de plataforma, sem propriedades no iOS — passe sempre SurveyPlatformContext() |
accountId | Int32 | Sim | ID da conta GoAB |
apiToken | String | Sim | Token de API da aplicação |
timeoutMillis | Int64 | Não | Timeout 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
- Inicialização — configuração detalhada e ciclo de vida
- API Reference — todos os métodos públicos