Cómo obtener ventaja de los plugins con Outsystems. Ciclo OutSystems III

En este artículo hablaremos de 2 asuntos que son tendencia este año 2021: low code, con la plataforma OutSystems y como la aplicación de plugins, en las aplicaciones móvil, puede realizarse de una manera sencilla y rápida.

Outsystems es una plataforma low code que proporciona herramientas para que las compañías desarrollen y gestionen aplicaciones empresariales omni canal.

Una de las grandes ventajas de Outsystems es su capacidad de integración con las más diversas tecnologías. Hoy en día, el portfolio tecnológico de una empresa contiene diversas tecnologías y Outsystems providencia conectores predefinidos para que se pueda integrar esas tecnologías sin desarrollar una línea de código. Tiene conectores nativos para SAP, REST y SOAP y tiene la forge, un Marketplace donde se puede publicar y descargar componentes de manera gratuita como una App store o una play store. Tiene más de 200 integraciones, como herramientas de servicios cloud como AWS o integraciones con base de datos externas. Y tiene también conectores que se conectan directamente a diversos plug-ins.

Plugins son pequeños programas complementarios que amplían las funciones de aplicaciones web y programas de escritorio. Por norma general, cuando instalamos un plugin, el software en cuestión adquiere una nueva función. Un buen ejemplo de un plugin es por ejemplo cuando queremos visualizar documentos en PDF en programas de cliente, debemos instalar primero un plugin para el Adobe Acrobat Reader ya que, si no, el navegador no será capaz de procesar los datos.

No obstante, los plugins no solo se usan en navegadores web; ya se han asentado en cualquier tipo de programa y aplicación. El funcionamiento es siempre el mismo: la instalación del plugin implica la ampliación del software con nuevas funciones sin necesidad de retocar el código de todo el programa.

La utilización de los plugins es posible gracias a las interfaces de programación estandarizada, más conocida por API (Application Programming Interfaces) . Las API unifican la transmisión de datos entre diferentes partes de programas al acceder a bibliotecas de uso compartido. De forma simplificada, un plugin usa determinados elementos del programa principal sin modificar su código fuente.

Plugins en Outsystems

Ahora que ya tenemos los dos conceptos claros, vamos ver como agregar los plugins a nuestras aplicaciones de Outsystems.

Mobile Plugins

Este tipo de plugins solo se puede aplicar a aplicaciones móviles. Cuando desarrollamos una aplicación móvil, probablemente esa aplicación va a usar las capacidades del móvil, como el GPS o las notificaciones.

La manera de alcanzar estas herramientas en Outsystems es con la utilización de plugins. Un plugin en Outsystems es un módulo que interactúa como una envoltura a través de Apache Cordova.

 

¿Cómo utilizar un plugin Mobile?

1. Forge

Forge es la comunidad online donde los usuarios pueden hacer upload de sus componentes o la descarga de componentes de manera gratuita y sencilla. Estos componentes están listos para utilizar de forma inmediata. También contiene componentes desarrollados por los equipos internos de Outsystems y en resumen, es la play store de la plataforma Outsystems.

Instalar un plugin en el entorno tiene el mismo procedimiento que otro cualquier componente. Se utilizan las acciones de cliente del módulo del plugin para llamar las capacidades nativas del dispositivo dentro de la aplicación. El plugin tiene que suportar las plataformas mobile (iOS, Android) donde vamos a crear la app o la generación de la aplicación va a fallar.

Cada vez que se agrega, borra o se cambia un plugin en la app, Outsystems reconstruye la Shell nativa que después tiene que distribuirse para la instalación por parte de los usuarios finales.

Plugins soportados por Outsystems

 

Plugin Descripción
AppShield Protege las aplicaciones móviles de tampering. Permite que la aplicación detecte tentativas de cambios o de mala utilización.
Card IO Componente que automáticamente obtiene los detalles de una tarjeta de crédito con una fotografía.
Camera Permite que la aplicación acceda a la cámara de un dispositivo
Calendar Permite el acceso al calendario del dispositivo
Contacts Permite el acceso a los contactos de un dispositivo.
Cyphered Local Storage Mantiene los datos sensibles de la aplicación móvil seguros al utilizar una base de datos local cifrada.
InApp browser Permite que sea posible abrir URL’s externos directamente en la aplicación
OneSignal Notifications Notificaciones push utilizando One Signal
Pushwoosh Notifications Notificaciones push utilizando Pushwoosh
Touch Id Permite la utilización de Touch ID en la aplicación
QR/Barcode Scanner Permite la lectura de QR Codes y de la posibilidad de scanear barcodes
SSL Pinning Providencia una camada extra de seguridad a las comunicaciones HTTPS al agregar una verificación del certificado del servidor contra las hashes de las public keys.
Key Store Guarda pequeñas cantidades de información sensible en el dispositivo. Providencia seguridad a los datos al encriptar el dato antes de guardarlo.
Local Notifications Envía notificaciones de las aplicaciones cuando la aplicación no corre en primer plan.
Location Permite el acceso a las capacidades de GPS del dispositivo del usuario. Por ejemplo, la latitud, longitud y altitud del dispositivo del usuario.

 

Plugins incorporados

Las aplicaciones móvil generadas por Outsystems ya tienen unos plugins por defecto que vienen instalados y que Outsystems usa internamente. Son los siguientes:

 

Plugin Descripción
OS Cache Permite que la aplicación tenga funcionalidad offline o con condiciones de red limitada.
OS Cordova Loader Carga el motor Cordova para la aplicación
OS Deeplinks Permite que se abra hyperlinks en pantallas específicas de la aplicación
OS DB Upgrader Gestiona la base de datos local de la aplicación
OS Manifest Providencia un parser para el manifiesto de la aplicación
OS Pre-Bundle Maneja el contenido de los recursos de la aplicación
OS Security Providencia los API requeridos para la cámara de seguridad
Mobile AppFeedback Permite la integración con la app feedback, que es una app interna de outsystems que coge el feedback del usuario y permite al usuario disponga de una herramienta para dar feedback en tiempo real.
NetworkStatus Permite que la aplicación sepa cuando el dispositivo esta online, offline o cual es el tipo de red disponible (3G, Wifi, 4G).

 

2. Creación de plugins

En Outsystems, es posible crear plugins Apache Cordova al envolver los plugins en módulos que se pueden referenciar en las aplicaciones. ¿Pero cómo crearlos?

1. Clonar Template Plugin

Para empezar, es necesario clonar el Template Plugin que está en la Forge que ya tiene toda su configuración para integrarse con todos los plugins Cordova que se puede customizar.

 

Reglas de Creación de un Plugin:

  • Es necesario tener en cuenta que es necesario envolver cada plugin en su propio modulo y aplicación, o que significa que se necesitamos de crear múltiplos plugins hay que crear una aplicación para cada plugin, cada una conteniendo un único modulo.
  • Las acciones relevantes y las entidades del módulo necesitan que sean publicadas para que se pueda referenciar en otras aplicaciones.
  • El módulo debe tener un nombre con significado (por ejemplo, “Sample Plugin”).
  • Un módulo con un plugin no puede referenciar otro modulo que tenga un plugin también.
2. Crear el modulo con el plugin Cordova

Un Plugin Cordova se puede envolver con la Referencia a la propiedad del módulo llamada Extensibility Configuration. Se puede especificar el plugin usando una de las siguientes keys dentro de una configuración JSON:

  • Repositorio público URL (el valor de la llave URL)
  • El identificador Cordova (el valor de la llave identifier)
  • El fichero ZIP de la carpeta de Recursos del separador data de Service Studio (valor de la llave del Recurso)

 

A no ser que sea un plugin soportado por Outsystems y se use un repositorio público para referenciar el plugin, es recomendable que se bifurque el repositorio del plugin o que se use una versión con un tag (por ejemplo, https://example.com/sampleplugin/sampleplugin.git#1.1.0).

Esto previene que existan cambios en el plugin y rompa la aplicación. Si no se utiliza los tags, es posible que dos builds puedan producir resultados diferentes.

Algunos ejemplos de JSON

Estos JSON se ponen en la propiedad Extensibility Configuration del módulo. Solo se puede utilizar una de las referencias del plugin en la llave del plugin: URL/identificador/recurso.

1. Un plugin de un registro npm

2. Un plugin de un repositorio git

3. Un plugin de un fichero ZIP

Para utilizar un fichero ZIP (my-plugin.zip), hay que descargarlo en Resources, dentro de la tab de Data en Service Studio. Se selecciona “Do Nothing” en el atributo de Deploy Nothing de las propiedades del Recurso. Si el plugin tiene argumentos adicionales, se puede hacer el emparejamiento de esos atributos definiendo el nombre de valor de esos atributos.

3. Como estructurar el modulo

Cada plugin tiene una acción de validación de nombre CheckPlugin (ej. “CheckCamaraPlugin”) con un output llamado IsAvailable de tipo booleano. Esto permite saber si el plugin está disponible en los otros módulos donde se referencia.

Después, hay que crear la acción dentro del módulo y agregar un elemento JavaScript al flujo con las variables. Es necesario que la acción sea pública para que esté disponible en las aplicaciones.

Un ejemplo de cómo se debe configurar el javascript:

4. Referenciar el módulo en la aplicación

Con las acciones concluidas, todo lo que tenemos que hacer es referenciar la misma acción en la aplicación que queremos usar e implementarla en el código.

5. Pruebas y uso del plugin

Es necesario generar la aplicación de nuevo y volver a instalar la nueva versión en el dispositivo móvil y está lista para usar.

Conclusión

La plataforma Outsystems como plataforma integradora de tecnologías, permite que su integración con los cordova plugin sea hecha de una manera rápida, fácil y con utilización inmediata en las aplicaciones. Soporta aplicaciones para iOS y Android y tiene un Marketplace donde es posible descargar plugins ya hechos para su utilización inmediata. Pero en caso de no existir, es también posible crear plugins personalizados de una manera rápida y sencilla para que se integren con nuestras aplicaciones.

Tags