Guia de Início Rápido
Configure o GoAB SDK em sua aplicação Android em poucos minutos.
Pré-requisitos
- Android Studio Arctic Fox ou superior
- Android API 21+ (Android 5.0)
- Kotlin 1.8+
- Coroutines
1. Adicionar Dependências
Gradle (app/build.gradle)
dependencies {
implementation 'io.goab:goab-sdk-clean:1.0.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.2'
}
Maven (pom.xml)
<dependency>
<groupId>io.goab</groupId>
<artifactId>goab-sdk-clean</artifactId>
<version>1.0.0</version>
</dependency>
2. Configuração Simplificada
Configuração Automática
O SDK agora preenche automaticamente as informações do dispositivo e aplicação. Você só precisa fornecer os parâmetros essenciais:
import io.goab.sdk.GoABSDKFactory
// Configuração simplificada - o SDK preenche automaticamente:
// - packageName, packageVersion (da aplicação)
// - deviceId, deviceModel, osVersion (do dispositivo)
// - screenResolution, networkType (do sistema)
// - timezone, country, language (do sistema)
val sdk = GoABSDKFactory.create(
context = this,
accountId = 12345,
apiToken = "your-api-token",
timeoutSeconds = 30
)
3. Inicializar o SDK
Na sua Activity/Fragment
import io.goab.sdk.GoABSDKFactory
import io.goab.sdk.GoABSDK
import kotlinx.coroutines.launch
class MainActivity : AppCompatActivity() {
private lateinit var goabSDK: GoABSDK
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Criar e inicializar SDK em uma linha
goabSDK = GoABSDKFactory.create(
context = this,
accountId = 12345,
apiToken = "your-api-token",
timeoutSeconds = 30
)
// Inicializar em background
lifecycleScope.launch {
goabSDK.initialize()
}
}
}
Usando ViewModel (Recomendado)
class MainViewModel(application: Application) : AndroidViewModel(application) {
private val goabSDK: GoABSDK by lazy {
GoABSDKFactory.create(
context = application,
accountId = 12345,
apiToken = "your-api-token",
timeoutSeconds = 30
)
}
init {
viewModelScope.launch {
goabSDK.initialize()
}
}
}
4. Usar Valores dos Experimentos
Obter Valores
// String
val buttonText = goabSDK.getValue("button_text", "Clique Aqui")
// Boolean
val showFeature = goabSDK.getValue("show_new_feature", false)
// Number
val maxRetries = goabSDK.getValue("max_retries", 3)
// JSON (como String)
val configJson = goabSDK.getValue("feature_config", "{}")
Em Views
class MainActivity : AppCompatActivity() {
private lateinit var goabSDK: GoABSDK
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupSDK()
}
private fun setupSDK() {
goabSDK = GoABSDKFactory.create(
context = this,
accountId = 12345,
apiToken = "your-api-token",
timeoutSeconds = 30
)
lifecycleScope.launch {
goabSDK.initialize()
setupUI() // Configurar UI após inicialização
}
}
private fun setupUI() {
// Aplicar valores dos experimentos
val button = findViewById<Button>(R.id.button)
val buttonText = goabSDK.getValue("button_text", "Clique Aqui")
button.text = buttonText.toString()
val showBanner = goabSDK.getValue("show_banner", true)
findViewById<View>(R.id.banner).visibility =
if (showBanner as Boolean) View.VISIBLE else View.GONE
}
}
5. Enviar Eventos
// Evento simples
goabSDK.sendEvent("button_clicked")
// Evento com propriedades
goabSDK.sendEvent("purchase_completed", mapOf(
"product_id" to "prod_123",
"price" to 29.99,
"currency" to "BRL"
))
6. Verificar Status
// Verificar se está inicializado
if (goabSDK.isInitialized()) {
// SDK pronto para uso
}
// Obter userId atual
val currentUserId = goabSDK.getCurrentUserId()
Próximos Passos
- Inicialização Avançada - Configurações detalhadas
- API Reference - Todos os métodos disponíveis
- Casos de Uso - Exemplos práticos
- Troubleshooting - Resolução de problemas
Exemplo Completo
class MainActivity : AppCompatActivity() {
private lateinit var goabSDK: GoABSDK
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
setupSDK()
}
private fun setupSDK() {
// Configuração simplificada - o SDK preenche automaticamente as informações
goabSDK = GoABSDKFactory.create(
context = this,
accountId = 12345,
apiToken = "your-api-token",
timeoutSeconds = 30
)
lifecycleScope.launch {
goabSDK.initialize()
applyExperiments()
}
}
private fun applyExperiments() {
// Aplicar experimentos
val buttonText = goabSDK.getValue("button_text", "Clique Aqui")
findViewById<Button>(R.id.button).text = buttonText.toString()
val showBanner = goabSDK.getValue("show_banner", true)
findViewById<View>(R.id.banner).visibility =
if (showBanner as Boolean) View.VISIBLE else View.GONE
}
private fun onButtonClick() {
// Enviar evento
goabSDK.sendEvent("button_clicked", mapOf(
"button_id" to "main_button",
"timestamp" to System.currentTimeMillis()
))
}
}