Skip to main content

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.

danger

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")
}
}
tip

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:

build.gradle
plugins {
id 'com.google.cloud.artifactregistry.gradle-plugin' version '2.2.1'
}

repositories {
google()
jcenter()
maven {
url "artifactregistry://us-central1-maven.pkg.dev/xxxx"
}
}
danger

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:

build.gradle
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:

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:

MainActivity.kt
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")
}
}
}

// ...

}
tip

Si tienes alguna duda o problema con la integración del SDK, por favor contacta a soporte.

rem

JOIN US ON

facebooktwitterLinkedIn
CONTACThello@rem.tools55-91-03-80-54
© Copyright rem 2022 All rights reserved.