Etiqueta

31 de agosto de 2017

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 de agosto de 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.

25 de abril de 2017

Novedades Omnis Studio 8.1

Son muchas e interesantes las novedades que nos acercará la inminente aparición de la versión 8.1 de Omnis Studio

  • Soporte para repositorios de software distintos al VCS-OMNIS (Exportación e importación de librerías en formato JSON)
  • jsForms con soporte de diseño "responsive"
  • Nuevos controles jsClient
  • Correcciones y añadidos menores, en Web Services, el  Editor de métodos y el asistente de codificación

Pero de todas ellas quizás la más destacable sea el jsForm "responsive". El diseño "responsive" es una técnica utilizada para componer formularios que se ajustan de modo automático a los  diferentes tamaños de pantalla del dispositivo en uso, ya sea que se trate de teléfonos móviles, tablets u otras pantallas. La razón para su uso es la de poder disponer de un único formulario desde el cual y mediante unos pocos métodos de código, adaptar automáticamente los objetos al dispositivo en uso o bien tras un cambio en el tamaño de la ventana del navegador por acción del usuario. Cuando hablamos de páginas web estándar, el diseño "responsive" se implementa mediante el uso de técnicas CSS y puntos de interrupción, Omnis Studio 8.1 adopta un enfoque similar, permitiendo especificar los puntos de interrupción que se desee durante el diseño del jsForm. (formulario remoto JavaScript) Cada punto de interrupción se corresponderá con su correspondiente re-diseño o ajuste de objetos en el formulario. 


Los jsForm's confeccionados antes de la versión 8.1, podrán seguir haciendo uso de la ya conocida propiedad "$screensize" que (como ustedes saben) nos permite ajustar el diseño a los diferentes dispositivos, mientras que los jsForm's creados a partir de ésta versión podrán hacer uso del modo "responsive". Una nueva herramienta de migración, (disponible desde el menú "Tools>>Add-Ons") nos permitirá migrar los jsForm's creados con versiones anteriores de Omnis Studio, a los nuevos tipos "responsive".

Una nueva propiedad denominada "$layouttype", (sólo disponible para los nuevos jsForm's) permite especificar el modo de diseño soportado, podrá ser: kLayoutTypeResponsive, kLayoutTypeScreen (para versiones anteriores de Omnis Studio) o kLayoutTypeSingle (diseño no-resposive)

Los nuevos jsForm's son creados con una serie de puntos de interrupción preestablecidos: 320, 768 y 1024 que corresponderían de modo generalizado a teléfonos, tabletas y computadoras de escritorio. Pero podremos cambiar estos puntos de interrupción para adaptarlos a nuestras propias necesidades o tamaños que deseemos soportar en nuestras aplicaciones.

Aquí es donde yo quería llegar con éste artículo, pues llegados a éste punto, seguramente surja la pregunta: ¿Qué puntos de interrupción debo soportar en mi aplicación?

Naturalmente todo dependerá del uso o ámbito de actuación que queramos dar a nuestra aplicación, pero contestando de modo generalista, deberíamos crear al menos un punto de interrupción para el dispositivo más pequeño, de entre el conjunto de dispositivos que deseemos soportar, ya sea que se trate de teléfonos, tablets o escritorios. Por lo tanto, el valor del primer punto de interrupción sería el ancho físico del teléfono más pequeño, no deberemos confundir sus dimensiones físicas con la resolución de pantalla soportada.

Por ejemplo, las dimensiones físicas de la pantalla del iPhone 6 y 7 son 375x667, y el Samsung Galaxy S5 y S6 son 360x640, por lo que podría establecer el primer punto de ruptura de diseño a 360, o tal vez 350 para añadir un margen de seguridad y así dar soporte a ambos teléfonos.

Del mismo modo, para fijar el punto de interrupción para tabletas, deberíamos tener en cuenta el ancho mínimo de entre la gama de tabletas que deseemos  soportar. Como ya hemos mencionado, los puntos de interrupción predeterminados son (320, 768 y 1024) están pensados para dar soporte a la mayoría de dispositivos, tanto en su orientación vertical como horizontal, pero podemos cambiar éstos ajustes según nuestras propias necesidades.