Nativo
Nuestro SDK Nativo de Workflows para Android e iOS permite una experiencia más eficiente y segura para el usuario final. El SDK de Workflows de Nativo permite a los desarrolladores de aplicaciones móviles integrar la funcionalidad de Workflows en sus aplicaciones nativas de Android e iOS.
iOS
La integración del SDK de Workflows en tu aplicación iOS es un proceso sencillo que consta de los siguientes pasos:
Requisitos
- iOS 12.0+
- Xcode 12.0+
Configuración
Instalación de CocoaPods
Para integrar el SDK de Workflows, primero asegúrate de que tu Podfile esté configurado para soportar la versión mínima de iOS requerida:
platform :ios, '12.0'
target 'TuApp' do
use_frameworks!
pod 'WorkflowController', :podspec => 'https://storage.googleapis.com/xxxx/WorkflowController.podspec'
end
Agregar el podspec de WorkflowController en tu Podfile, reemplazando xxxx
con el repositorio del SDK.
Si no tienes acceso al repositorio de el SDK, por favor contacta a tu administrador de cuenta o a soporte, ya que necesitarás acceso a el repositorio privado de el SDK.
Abre una terminal, navega al directorio de tu proyecto y ejecuta el siguiente comando para instalar el SDK:
pod install
Configuración de Permisos en Info.plist
Es necesario declarar los permisos que tu aplicación requiere. Añade las siguientes claves en tu archivo Info.plist
con descripciones adecuadas sobre cómo tu app usa estos recursos:
- Cámara:
NSCameraUsageDescription
- Micrófono:
NSMicrophoneUsageDescription
- Ubicación:
NSLocationWhenInUseUsageDescription
Uso
Importación del SDK
Para usar el SDK en tu código, primero debes importarlo:
import WorkflowSDK
2. Inicialización del WorkflowController
Inicializa el WorkflowController
con la URL base y la API key proporcionadas:
let workflowController = WorkflowController(
baseUrl: "https://api.rem.tools",
remApiKey: "tu_api_key"
)
3. Iniciar un Workflow
Para iniciar un workflow, usa el método start
con el ID del workflow que deseas iniciar, que además debe
ser ejecutado desde un UIViewController
para pasar el parametro presentingViewController
:
workflowController.start(workflowId: "workflow_id", presentingViewController: self) { (success: Bool, error: WorkflowError?) in
if success {
print("Workflow iniciado")
} else {
// WorkflowError es un enum que contiene los posibles errores
print("Error al iniciar el workflow")
}
}
4. Manejo de Eventos de Workflow
Puedes escuchar eventos de workflow, como la finalización o cancelación, mediante delegados o closures:
workflowController.onStepEvent = { (step: Step) in
print("Evento de paso: \(stepEvent.id)")
}
workflowController.onWorkflowEvent = { (workflow: Workflow) in
print("Workflow cancelado: \(workflow.id)")
// Puedes verificar el estado del workflow para saber si fue completado
if workflow.status == "success" {
print("Workflow completado")
}
}
Si tienes alguna duda o problema con la integración del SDK, por favor contacta a soporte.
Android
La integración del SDK de Workflows en tu aplicación Android es un proceso sencillo que consta de los siguientes pasos:
Requisitos
- Android 5.0 (API 21) o superior
- Android Studio 4.1+
Configuración
Instalación de Gradle
Para integrar el SDK de Workflows, primero se tiene que configurar el acceso a ArtifactRegistry de Google,
para ello se debe agregar el siguiente bloque en el archivo build.gradle
del proyecto:
plugins {
id 'com.google.cloud.artifactregistry.gradle-plugin' version '2.2.1'
}
repositories {
google()
jcenter()
maven {
url "artifactregistry://us-central1-maven.pkg.dev/xxxx"
}
}
Si no tienes acceso al repositorio de ArtifactRegistry, por favor contacta a tu administrador de cuenta o a soporte, ya que necesitarás acceso a el repositorio privado de el SDK.
Implementación de dependencias
Agrega la dependencia de Workflows en el archivo build.gradle
de tu módulo:
dependencies {
// SDK Implementation
implementation ('tools.rem.workflows:sdk:1.0.39@aar') { transitive = true }
// Required dependencies
implementation 'androidx.appcompat:appcompat:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation "androidx.window:window:1.0.0"
implementation 'com.google.android.gms:play-services-location:21.0.1'
implementation 'com.squareup.okhttp3:okhttp:3.12.1'
implementation 'com.squareup.okio:okio:1.15.0'
implementation 'com.google.code.gson:gson:2.8.5'
}
Compatibilidad con el tema de la aplicación
Para evitar algun conflicto con el tema de la aplicación, se debe agregar el siguiente atributo en el archivo AndroidManifest.xml
:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myapp">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyApp"
tools:replace="android:theme"> <!-- Agregar esta línea -->
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<style name="Theme.MyApp" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:windowIsTranslucent">true</item>
</style>
</manifest>
Uso
Inicialización del WorkflowController
Debemos inicializar el WorkflowsActivity
con la URL base y la API key proporcionadas, para luego iniciar el workflow
dentro de una actividad:
import tools.rem.workflows.WorkflowsActivity
import tools.rem.workflows_flutter_plugin.Models.Step.Step
import tools.rem.workflows_flutter_plugin.Models.Workflow.Workflow
import tools.rem.workflows_flutter_plugin.Models.WorkflowError
class MainActivity : AppCompatActivity() {
private val workflowController = WorkflowsActivity(
"https://api.rem.tools", // Reemplazar con la URL base
"tu_api_key" // Reemplazar con tu API key
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
// Iniciamos el Workflow
workflowController.start("workflow_id", this) { success: Boolean, error: WorkflowError? ->
if (success) {
Log.d("Workflow", "Workflow iniciado")
} else {
Log.e("Workflow", "Error al iniciar el workflow")
}
}
workflowController.onStepEvent = { step: Step ->
Log.d("Workflow", "Evento de paso: ${step.id}")
}
workflowController.onWorkflowEvent = { workflow: Workflow ->
Log.d("Workflow", "Workflow cancelado: ${workflow.id}")
// Puedes verificar el estado del workflow para saber si fue completado
if (workflow.status == "success") {
Log.d("Workflow", "Workflow completado")
}
}
}
// ...
}
Si tienes alguna duda o problema con la integración del SDK, por favor contacta a soporte.