Etiqueta

31 agosto 2017

Notificaciones "Push" con Omnis Studio 8.1

La versión 8.1 de Omnis Studio, permite el uso de notificaciones "push" en el desarrollo de aplicaciones para Android, iOS y Windows 10 (necesitaremos hacer uso de los "wrappers" versión 2.0 o posteriores).

Para quienes no estén familiarizados con el uso de notificaciones "push", mencionar que ésto significa que ahora podremos enviar mensajes a cualquier cliente que tenga instalada nuestra aplicación para dispositivos móviles, aunque (en ese momento) no la esté ejecutando. En este sentido, la capacidad de enviar notificaciones "push" otorga a nuestras aplicaciones una funcionalidad muy potente e interactiva, ya que permite animar proactivamente a los usuarios finales a abrir y usar la aplicación.

Una notificación o mensaje enviado de éste modo al cliente, podría (por ejemplo) incluir una noticia importante, un mensaje acerca de una nueva entrada en la base de datos o cualquier otra cosa que deseemos. Incluso es posible la inclusión de información útil, que se adjuntará a la notificación y que se pasará al "remote-form" de la aplicación, permitiendo al usuario interactuar con la aplicación a partir de la notificación recibida.

El soporte para éste tipo de notificaciones es proporcionado a través del servicio de mensajería en la nube o servicio de notificación "push", para cada plataforma respectiva y deberá haber sido habilitada para nuestro proyecto de aplicación móvil, mediante el SDK y el "JavaScript Wrapper" correspondiente. Para configurar el uso de notificaciones para Android e iOS, necesitaremos activar el servicio "Firebase" de Google y en caso de Windows 10 necesitaremos configurar los servicios de notificación "push" del "Store Dashboard".


Herramienta de administración de notificaciones push


Para administrar las notificaciones, podemos optar por crear grupos de dispositivos, a fin de enviar notificaciones a determinados grupos o bien a dispositivos concretos. Toda esta funcionalidad puede ser manejada desde el propio código Omnis (mediante el uso de nuevas propiedades y métodos), o bien mediante una nueva herramienta de administración, denominada: "Push Notifications", localizable bajo el menú de opciones "Tools≥≥Add Ons" de Omnis. Tenga en cuenta que la herramienta es en si misma una librería Omnis (un fichero .lbs) ubicado en la carpeta "startup", por lo que deberá estar presente para que la funcionalidad de notificaciones "push" pueda ser usada con nuestras aplicaciones para móviles, además de nuestro código Omnis y también es necesaria para configurar el servidor de aplicaciones de Omnis.

Métodos y nuevo "Client Command"


Un nuevo "clientcommand" nos permite habilitar y deshabilitar el uso de notificaciones "push" en nuestras aplicaciones móviles:

$clientcommand(“enablepushnotifications”, row(bEnable))

bEndable: Es booleano - Si es "true" habilita las notificaciones push, "false" las deshabilita.
returns: (Booleano) - Indicará si el comando ha terminado con éxito. (método client-execute)

Además de éste comando, disponemos de un nuevo método denominado "$pushnotifycommand" que podremos utilizar para configurar las "Notificaciones Push".

Para obtener más información sobre la configuración de notificaciones "push" en nuestras aplicaciones para móviles, así como el uso de comandos y métodos, consulte el nuevo documento "Push Notifications" que podrá encontrar bajo el siguiente enlace:


Aplicaciones Omnis Studio 8.1 firmadas (signed code) para MacOS

La nueva versión de Omnis Studio 64Bits para MacOS, requiere que todos los archivos actualizables, sean instalados de modo separado a la propia aplicación y bajo un directorio perteneciente al usuario principal, MacOS ya dispone de un directorio con éste propósito y es el usado por Omnis durante su instalación, el directorio o carpeta se denomina "Application Support", localizable en:

~/Library/Application Support/Omnis/

Para ello, (cada vez que Omnis es ejecutado) comprueba la existencia de una carpeta llamada "firstruninstall" localizable bajo el directorio raíz de instalación, del paquete Omnis. Los elementos en ella contenidos, son copiados de forma predeterminada en una sub-carpeta de "Application Support" que tendrá el mismo nombre que el paquete Omnis, por ejemplo:

~/Library/Application Support/Omnis/Omnis Studio 8.1 x64

La copia no llevará a cabo si la carpeta de destino ya existe, evitando así que se sobrescriban los archivos.

De éste modo se nos proporciona un eficaz método para colocar todas nuestras carpetas de datos y elementos propios de nuestra aplicación terminada, sobre la carpeta de instalación "firstruninstall", (tales como "icons", "studio" o "startup"). Una vez trasladados a "Application Support", posteriormente sólo necesitará actualizar los archivos de esa ubicación, sin necesitar realizar cambio alguno sobre la carpeta original de instalación, manteniendo así válida la firma de su aplicación para MacOS.

Tenga en cuenta que con la versión firmada de Omnis Studio, se deberán agregar o actualizar componentes externos o JavaScript sobre la carpeta de datos del usuario, permitiendo así que la parte de código firmada de Omnis permanezca inalterada,. Por ejemplo, un componente estándar podría ubicarse del siguiente modo:

~/Library/Application Support/Omnis/\Omnis\ Studio\ 8.1\ x64/xcomp

Y si se trata de un componente JavaScript podría ser así:

~/Library/Application Support/ Omnis/\Omnis\ Studio\ 8.1\ x64/jscomp/

Si la carpeta requerida no existe, deberá ser ser creada manualmente por el usuario.

La carpeta de datos de usuario siempre es cargada en primer lugar, por lo que si un componente con el mismo nombre ya existe bajo el directorio principal de instalación Omnis, la version del usuario será la elegida.

28 agosto 2017

Componentes JSON&JS (Parte 1 de 12)

Otra interesante característica que incorpora la versión 8.1 de Omnis, es la de poder definir nuestros propios controles para formularios remotos (remote-form) mediante JSON y JavaScript, dejándolos listos para ser usados en cualquier momento con nuestras aplicaciones web y móviles. Seguramente, pasando el tiempo veremos muchos componentes de éste tipo ya construidos por terceros, abriendo infinitas posibilidades a la incorporación de nuevos controles, listos para usar en nuestras aplicaciones.

Este nuevo método proporciona una alternativa real al uso de C++ y el SDK JavaScript. (método actualmente en uso para la creación de componentes JavaScript) Sin duda una buena noticia, pues tan sólo necesitaremos poseer conocimientos de JSON y JavaScript, para crear y usar nuestros propios controles JavaScript en aplicaciones web o móvil o bien como contribución a la nuestra y cada vez más amplia comunidad de desarrolladores Omnis.

Tras la creación de un "JSON Component", bastará con reiniciar Omnis para que aparezca sobre el "Component Store", bajo un nuevo grupo denominado "JSON". Su uso será muy similar al de cualquier otro componente, lo arrastraremos sobre nuestro formulario remoto y estableceremos sus propiedades mediante el "Property Manager".

La representación (en modo de diseño) de los controles JSON en un formulario remoto es muy básica y no refleja el control real, su presentación real sólo la obtendremos en tiempo de ejecución, aunque para aquellos controles que no requieran de una interfaz visual ésto no será un problema, si que está previsto que en futuras versiones de Omnis, pueda mejorarse ésta cuestión.

En ésta serie de 12 artículos breves, intentaré explicar como hacer uso de ésta nueva característica.

Sigan atentos a éste blog.