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.



