Notificaciones estilo OS X en FileMaker

Creando un Sistema de Notificaciones estilo OS X en FileMaker

¿De que va?

La idea de este ejemplo es crear un sistema de notificaciones similar a las notificaciones del sistema operativo OS X Mavericks, como se muestra en la imagen inferior.

Ejemplo de Notificaciones en Mavericks

Intentando buscar una forma elegante de hacer saber a los usuarios si existe una nueva versión de Graphite. Me decanté por la idea de notificaciones que implementa el sistema operativo de los Macs.

Las notificaciones pueden tener múltiples usos como avisos de actualizaciones, notificar fin de acciones, fines publicitarios, etc…

Cada nueva versión de FileMaker agrega nuevas funciones, cada vez mas atractivas mejorando así la experiencia de usuario, los Controles Deslizables integrados en la versión 13 de FileMaker, serán los que se usarán para crear el efecto de Notificación.

Este ejemplo usa pocas notificaciones por lo que decidí usar un Control Deslizable (Sliders) con dos paneles por cada notificación, uno en estado oculto y otro con el contenido.

¿Cómo se hace?

Para crear el efecto necesitamos:

  • Un Control Deslizable con 2 Paneles por cada notificación.
  • Botones de Activación de la Notificación
  • Un Guión para la navegación del Control Deslizable.
Control Deslizable

Creamos un Control Deslizable del tamaño deseado y lo colocamos en la zona donde queremos que aparezca la notificación, en mi caso la parte superior derecha.

Usar Relleno Transparente para el fondo del Control Deslizable

Detalle de Notificaciones usando Controles Deslizables

Recordad anclar el Control Deslizable a las esquinas y nombrad los paneles con el siguiente patrón:

  • Panel 1: s_Notificacion01Off
  • Panel 2: s_Notificacion01
  • Panel 3: s_Notificacion02Off
  • Panel 4: s_Notificacion02
  • etc…

Los paneles 1 y 3 (acabados en Off) están vacíos, los paneles 2 y 4 son los que contienen la notificación. En el ejemplo puse unos gráficos simulando la notificación de OS X, pero se puede colocar lo que queráis, imágenes, visor web, campos, gráficos, etc…

Inspector Nombre y Tamaño Automático

Recordad desactivar los “Ticks” de “Habilitar gestos deslizantes” y “Mostrar puntos de navegación” al final.

Configuración del Control Deslizable

El Guión

Crearemos un guión llamado “Navegación Notificación” y añadiremos los siguientes pasos:

Establecer Variable [$Accion; Valor:LeftWords ( Get (ScriptParameter) ; 1 ) ]
Establecer Variable [$Notificacion; Valor:RightWords ( Get (ScriptParameter) ; 1 ) ]
If [$Accion = "Mostrar"]
    #Resetea el panel mostrando el primer panel.
    Establecer animación del guión [Inactivo]
    Ir a objeto [Nombre de objeto:"s_Notificacion01Off"]
    #Se mueve al panel correspondiente
    Establecer animación del guión [Activo]
    Ir a objeto [Nombre de objeto:"s_"&$Notificacion]
    #Tiempo que se mostrará la notificación
    Pausar/reanudar guión [Duración (segundos): 3]
    #Oculta la notificación
    Ir a objeto [Nombre del objeto:"s_"&Notificacion&"Off"]
    #Acciones del botón "Close" dentro de la notificación
Else If [$Accion = "Ocultar"]
    Ir a objeto [Nombre del objeto:"s_"&Notificacion&"Off"]
    #Detiene el Guión para saltarse el tiempo de pausa.
    Detener guión
End If

La acción Mostrar se ejecuta desde los botones de Activación de Notificación explicados más abajo. La acción “Ocultar” se ejecuta cuando el usuario presiona el botón “Close” dentro de la notificación.

Botones de Activación de la Notificación

Por último crearemos 2 botones para activar las notificaciones, uno para la notificación 1 y otro para la 2.

Lanzar Notificaciones

Los botones ejecutan el guión con un “Parámetro” formado por la palabra “Mostrar” + ” ” (espacio en blanco) + “s_NotificacionXX”,  reemplazando XX por el número de Notificación.

Nota que hay que cambiar la acción del Guión actual que por defecto es “Pausa” a “Detener” del menú desplegable.

Ejecutar Guión Parámetro Mostrar

 

Para los botones “Close” de la notificación se ejecuta el guión con el Parámetro formado por la palabra “Ocultar” + ” ” (espacio en blanco) + “s_NotificacionXX”, substituyendo también en este caso las XX por el número de notificación.

Ejecutar Guión Ocultar

Los espacios en blanco de los Parámetros son necesarios, ya que en el guión “Navegación Notificación” se capturan los parámetros por palabras siendo los espacios los que dividen las palabras.

 

Rizando el Rizo

Para múltiples notificaciones, ya habría que pensar en otro método más dinámico.

Se puede activar la navegación por gestos entre los paneles para los dispositivos iOS, pudiendo así mostrar y esconder las notificaciones con gestos si solo hay una notificación.

 

Limitaciones

En Windows no funcionan las animaciones de los Controles Deslizables, no me digáis por que… ;(

Este ejemplo solo funciona en la Versión FileMaker Pro 13 o superior o en FileMaker Go para iOS, ya que versiones anteriores no integran el Control Deslizable.

 

Archivo de Ejemplo

Como la mejor forma de entender el proceso es “destripando” un archivo, os lo dejo para que podáis revisar como está creado el sistema.

Tened en cuenta que necesitáis la versión 13 de FileMaker o FileMaker Go para iOS para poder ver el Control Deslizable, podéis descargar una versión de prueba gratis durante 30 días desde la web oficial de FileMaker aquí.

Descarga aquí el Archivo de Ejemplo
Resultado en Video

 

Estírate y Compártelo...Share on FacebookTweet about this on TwitterShare on LinkedInEmail to someoneBuffer this pageGoogle+
Publicada en Tutos & Trucos
Tarjetas , ,
4 comments on “Notificaciones estilo OS X en FileMaker
  1. Luis Guel dice:

    Excelente aporte!

    Pregunta: Pueden aparecer automaticamente sin los botones de NOTIF1 Y NOTIF2?

    Gracias.

    LG

    • Martin dice:

      Hola Luis!

      Claro que sí, puedes hacer que se ejecute el Guión con el criterio que tu elijas.

      Por ejemplo: Si deseas que salte una notificación tipo “Felicidades por tu nota!” cada vez que en el contenido del campo “TablaA::NotaExamen” sea igual o superior a 8, le puedes hacer lo siguiente:

      1. Crea un Campo NotaExamen y añádelo a la presentación.
      2. Asígnale un Guión presionando con el botón derecho del mouse encima del campo y elige: “Establecer activadores de guiones…”
      3. Selecciona “OnObjectSave” y elige del menú emergente el guión “Navegación Notificación” con el parámetro “Mostrar s_Notificacion01” (Como el primer botón por ejemplo)
      4. Edita el Guión “Navegación Notificación” cambiando If [$Accion = “Mostrar”] por If [$Accion = “Mostrar” and Interfaz::NotaExamen > 7]
      5. Guarda el Guión.
      6. Modifica el mensaje de la primera notificación en el Control deslizable, “Disk Not Ejected Properly” por “Felicidades por tu nota!”

      Pruébalo y si te lías te paso el archivo modificado!
      Saludos
      Martin!

  2. Moreno dice:

    Hola! Me gusto el script pero tenia la idea de hacer un metodo que cuando yo creo un nuevo record en una table, el script envia una notificacion a todos los usuarios en la solucion. Alguna idea de como hacer com que la notificion sea visible a todos los users al mismo tiempo?

    Gracias!

  3. Martin dice:

    Hola Moreno!
    Quizás es un poco complejo de lograr, ya que tendrías que poner los sliders en todas las presentaciones (ya que no sabes en que presentación estarán los usuarios en el momento en que quieras lanzar la notificación).

    Si todos tus usuarios usan Macs, puedes lanzar la notificación ejecutando un AppleScript
    Paso de Guión: Ejecutar AppleScript -> Con el cálculo tipo:

    “display notification \“” & “Se ha creado un Nuevo Registro” & “\” with title \”” & “Nuevo Registro”& “\” sound name \“default\” ” & “¶” & “delay 1”

    Pero el problema es lanzarlo a todos a la vez… quizás con algún guión que se ejecute al entrar en las presentaciones y que valide si se ha creado un nuevo registro, lance el guión para mostrar el AppleScript

    Habría que indagar un poco, ver que urgencia necesitas notificar a los usuarios que se ha creado un nuevo registro, (cada 5 minutos, al instante, cada vez que entran o salen de presentaciones, etc…)

    Por otro lado, quizás una notificación visual de la barra de estado, por ejemplo, usando un formato condicional, (con un contador de registros, y si no coinciden los datos del contador con el total de registros, que se ponga en “Rojo”, y al darle click, que se actualize el contador y el color vuelva al estado “Normal”.
    (Es una opción…)

    Bueno.. debáteme ideas a ver que solución te puede valer!

    Saludos
    Martin!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*