Movilidad
Velneo vClient está disponible para su uso tanto en dispositivos con sistema operativo Android como iOS. Están disponibles para su descarga en Apple Store y Play Store.
Instalación en Android
Se trata del componente Velneo vClient de la plataforma que permite la conexión a servidores de Velneo desde dispositivos móviles con sistema operativo Android™.
Para facilitar el uso de Velneo vClient en tu Android, lo podrás obtener a través de Google play de Google, donde podrás descargar e instalar Velneo vClient. Además, disfrutarás del servicio de actualización de Google play que puedes configurar para que te avise de nuevas versiones y te actualice de forma automática.
Se recomienda realizar la instalación conectado a una red Wifi, mejor que una conexión móvil. Esto agilizará el proceso de instalación y optimizará el uso de nuestros recursos de Datos móviles, en caso de disponer de los mismos.
Política de desconexión Wi-Fi para el uso posterior del cliente. En este aspecto debemos tener en cuenta que si durante la ejecución de Velneo vClient se produce un corte permanente en las comunicaciones, esto provocará una expulsión del cliente por parte del servidor al que estemos conectados. En este parámetro podemos configurar tres valores distintos:
Al apagarse la pantalla: esta opción apagará la Wi-Fi cada vez que se apague la pantalla, provocando el corte mencionado.
Nunca si se está cargando la batería: esta opción apagará la Wi-Fi, sólo en el caso de estar funcionando con la batería.
Nunca: esto evitará que el servidor desconecte la sesión de Velneo vClient, por este motivo.
Instalación en iOS
Se trata del componente Velneo vClient de la plataforma que permite la conexión a servidores de Velneo desde dispositivos móviles con sistema operativo iOS.
Para facilitar el uso de Velneo vClient en tu iPhone o iPad, lo podrás obtener a través de Apple Store, donde podrás descargar e instalar Velneo vClient. Además, disfrutarás del servicio de actualización automática de tu dispositivo.
Política de desconexión Wi-Fi para el uso posterior del cliente. En este aspecto debemos tener en cuenta que si durante la ejecución de Velneo vClient se produce un corte permanente en las comunicaciones, esto provocará una expulsión del cliente por parte del servidor al que estemos conectados.
Ejecución de instalable
Al comenzar la instalación de Velneo vClient en Android, lo primero que nos solicita el sistema es la asignación de permisos a la aplicación para los distintos recursos de que hará uso. Una vez aceptado el formulario para la asignación de permisos, podemos pulsar la opción Instalar, que realizará el proceso correspondiente.
Al finalizar la instalación, el instalable nos mostrará un mensaje indicando que el proceso ha finalizado correctamente. En el mismo formulario del mensaje de instalación finalizada tenemos la posibilidad de Abrir la aplicación. También podemos ejecutarlo desde los distintos accesos que nos ofrece Android (organizador de aplicaciones, accesos directos en escritorios, ajustes de aplicaciones, etc.)
Cuando lo ejecutemos, se mostrará la ventana de conexiones:
En ella podremos configurar la conexión a uno o varios servidores. Para configurar una conexión haremos clic sobre el botón + que aparece en la parte superior derecha de la ventana. Tendremos que especificar los datos siguientes:
Nombre: en este parámetro podremos especificar el nombre que queramos darle a la conexión (Ejemplo: servidor de desarrollo, servidor de producción…).
Servidor: en este parámetro especificaremos la VRL (Velneo Resource Locator) del servidor, que deberá tener la estructura siguiente:
vatp[s]://IPSERVIDOR[:NUM_PUERTO]
Donde:
vatp[s]:// indica el esquema de conexión. Si el servidor con el que nos vamos a conectar tiene activado el protocolo VATPS, el esquema será vatps://. Si no lo tiene, será vatp://.
IPSERVIDOR será el nombre o la IP del servidor donde se encuentra a la escucha el servicio de Velneo vServer.
[:NUM_PUERTO]: será el número de puerto en el que el servidor está a la escucha. Velneo vServer por defecto usa el el puerto 690, por lo que, si el servidor al que nos vamos a conectar usa dicho puerto, podremos omitirlo. En caso de usar un puerto diferente, entonces tendremos que especificarlo.
Ejemplos
vatp://198.162.0.7 (conectará con un servidor de la red local cuya IP es 198.168.1.7 y que está a la escucha en el puerto 690).
vatps://c1.velneo.com:6900 (conectará con un servidor alojado en el cloud de Velneo, con protocolo VATPS activado y que está a la escucha en el puerto 6900).
Si al conectarnos con un servidor con el protocolo VATPS se produce un error de TLS/SSL, aparecerá en la barra de estado de la ventana de conexión una opción para ver las excepciones que se han producido y permitir ignorarlas, de este modo, el servidor se incluirá como excepción y ya podrá ser accedido desde esa máquina.
No es posible conectarnos usando VATPS contra un servidor que no admita conexión segura ni viceversa, conectarnos por VATP contra un servidor que requiera conexión segura.
Usuario: nombre de un usuario declarado en Velneo vServer.
Contraseña: contraseña del usuario declarado en el parámetro anterior.
Una vez definidos todos los parámetros, pulsaremos el botón “guardar” para guardar la conexión. En ese momento la conexión definida será añadida a la lista de conexiones de Velneo vClient:
Para conectarnos con el servidor, simplemente pulsaremos sobre la conexión:
Una vez hecho esto, nos mostrará la lista de instancias disponibles. Pulsar sobre la instancia que se desea ejecutar.
Si queremos editar una conexión definida para cambiar alguno de sus parámetros, lo que haremos será mantener la pulsación sobre la conexión durante unos segundos y se abrirá su ventana de propiedades.
Configuración de Velneo vClient
Para la administración de la aplicación en el sistema Android, debemos acceder al menú de ajustes, opción administrar aplicaciones y seleccionar Velneo vClient. Desde este menú podremos realizar las siguientes acciones:
Borrar datos
Esta opción realiza el borrado del historial de servidores a los que nos hemos conectado desde el dispositivo móvil y el cacheado local de aplicaciones a las que nos hemos conectado también. Es conveniente hacerlo regularmente, sobretodo en dispositivos con reducido espacio en disco, si nos conectamos a aplicaciones diversas.
Desinstalar
Con esta opción desinstalamos totalmente Velneo vClient de nuestro dispositivo móvil.
Forzar detención
Opción solo activa durante la ejecución de Velneo vClient que permite detener el proceso.
Recomendaciones programación para móviles
Dispositivos y High dpi
Aunque es cierto que los móviles de última generación vienen con una resolución de gran tamaño (1920×1080 o incluso más), nuestra recomendación es desarrollar siempre pensando en una resolución de 1024×768. Después, y gracias al sistema gráfico de Velneo y al high dpi, todos los controles son escalados a la resolución en la que estemos ejecutando nuestra aplicación.
Desde un punto de vista técnico, existe lo que se conoce como “Device pixel ratio”. Éste se calcula dividiendo los puntos por pulgada del dispositivo (dpi) entre 72. Por ejemplo, un móvil que tiene dpi de 144, el Device pixel ratio será 2. El sistema gráfico se encarga de escalar todos los controles en función al “Device pixel ratio” (en el caso de Android, en la versión actual, sólo escala las fuentes). De esta manera, ya sea el dispositivo de de 144dpi o 496dpi, la cantidad de controles que se muestran son los mismos, pero con más resolución.
En Velneo todo esto se calcula de forma automática. El desarrollador no tiene que hacer nada especial.
Si queremos tener más control en tiempo de ejecución, podemos obtener el “Device pixel ratio” de nuestro dispositivo usando las nuevas instrucciones incluidas en la versión 7.19: el comando de instrucción de proceso get información pantalla y la nueva clase VScreen.
Algunas otras recomendaciones sobre el diseño de la interfaz son:
Utilizar los controles con ajuste de layout por defecto, sin tamaño fijo. Esto permite al control adaptarse al contenido.
Utilizar las rejillas con alto 0 en cabeceras y filas, ya que así se adaptarán al tamaño de la fuente que contiene.
En css, cuando queramos que escale, utilizar el tamaño en pixeles. Si indicamos puntos, el control será específicamente de los puntos indicados.
Cuanto más queramos que nuestra aplicación se parezca a una aplicación nativa para Android o iOS, más aconsejable es tener un proyecto diferente para cada plataforma. Temas como la forma en que se muestra el menú o el ajuste de los controles aconsejan esta vía. De todas maneras siempre hay cosas que se pueden aprovechar para las dos plataformas y para eso podemos hacer uso de la clase vSysInfo, que nos permite saber entre otras cosas si estamos en un dispositivo iOS o Android.
Recomendaciones generales
Cuando adaptes tu aplicación para el uso en dispositivos móviles, ten en cuenta estas recomendaciones:
En dispositivos móviles no se usa el drag &drop. Tendrás que sustituirlo por un control más acorde con esos dispositivos.
De forma generalizada, los usuarios de dispositivos móviles están acostumbrados a salir de las aplicaciones con el botón Home del dispositivo. En ese momento la aplicación se queda en segundo plano. Esto provoca que si se supera el tiempo máximo de desconexión de enganche ( 5 mins), y el usuario vuelve a la aplicación, ésta está desconectada. Hay dos cosas que podemos hacer al respecto: una, dejar la barra de estado visible en la aplicación ya que es allí donde se informa de que se ha desconectado del vServer, y dos, subir el tiempo de desenganche, tal y como se indica en la documentación de Velneo vAdmin.
El directorio home en iOS tiene restringida la escritura, es de solo lectura. El programador deberá usar otra ruta alternativa si necesita escribir.
En iOS, los cuadros de diálogos que se lanzan con la instrucción Mensaje o con alert en vJavascript, siempre aparecen a pantalla completa.
Estructura de menú principal
En dispositivos móviles no es habitual el uso de pestañas, como en escritorio, así que es recomendable usar en el objeto marco AUTOEXEC el modo de arranque SDI.
Listas de registros
La mejor opción para mostrar listas en un dispositivo móvil, por usabilidad, es QML:
Permite mostrar imágenes.
Permite desplazamiento sobre la lista arrastrando un dedo, cuando no caben todos los registros en pantalla.
Permite juegos visuales más atractivos para el usuario.
Permite, como es común en móviles, hacer una capa de visualización y otra de edición.
Si optamos por usar el control rejilla, contamos con la cuentas con la opción Tap&Hold, es decir, si mantenemos presionada una fila, se abrirá el formulario tal y como hace el doble click en las versiones de escritorio.
Formularios
Es recomendable usar layouts y fuente de sistema en el diseño de los formularios, de forma que se adapten a las posiciones vertical y horizontal del dispositivo y los controles de edición tengan ancho y alto en layout por defecto para que adquieran el tamaño apropiado en función de la fuente.
Botones
Un ancho y alto de 9 mm es el tamaño recomendado (4,2 mm es el tamaño mínimo de un elemento para que pueda parecer pulsable).
Un espacio de 2 mm (al menos) de separación visual entre botones reduce la percepción de dificultad.
En resumen, los botones deben:
Tener un tamaño suficiente para ser pulsados cómodamente.
Alejarse de acciones peligrosas.
Tener aspecto de botón.
Edición de fechas
La edición de fechas se puede realizar perfectamente con el control fecha en un dispositivo móvil. Ahora, si queremos más versatilidad o incluso algo más de usabilidad a la hora de que el usuario final introduzca una fecha, podemos recurrir a esta alternativa:
Al pulsar con el dedo en la fecha (señal Ratón: botón soltado) se muestra un subformulario con los datos de día, mes y año por separado. Los botones + y – ejecutan manejadores de evento en los que se modifica la fecha con las funciones addDays, addMonths y addYears.
Edición de horas
La edición de horas se puede realizar perfectamente con el control hora en un dispositivo móvil. Ahora, si queremos más versatilidad o incluso algo más de usabilidad a la hora de que el usuario final introduzca este dato, podemos recurrir a esta alternativa:
Al pulsar con el dedo en la hora (señal Ratón: botón soltado) se muestra un subformulario con los datos de hora y minutos por separado. Los botones + y – ejecutan manejadores de evento en los que se modifica la hora.
Utilidades genéricas (Email, Teléfono, Mapas, Whatsapp y SMS)
Podemos aprovechar para completar la funcionalidad de nuestra aplicación con utilidades genéricas que son realmente sencillas de desarrollar:
Para enviar un email
Ejecutar documento ( "mailto:" + replaceString(#EML, " ", ""), )
Ejemplo:
mailto:velneo@velneo.com
Para marcar el teléfono
Ejecutar documento ( "tel:" + replaceString(#TEL, " ", ""), )
Ejemplo:
tel:902366382
Para abrir mapas
Ejecutar documento ( "geo:" + "0,0?q=" + replaceString(#DIR + " "+ #DIR_2 + " " + #PAI-NAME, " ", "+"), )
Ejemplo:
geo:0,0?q=Polígono+Industrial+Granxa+Rúa+D+Esquina+Paralela+3+36400+Porriño+(PONTEVEDRA)
Para enviar un WhatsApp
Ejecutar documento ("https://api.whatsapp.com/send?phone=" + #TEL + "&text=" + #TEXTO
Ejemplo:
Ejecutar documento ("https://api.whatsapp.com/send?phone=003466666666666>&text=Hola,%20estoy\%20interesado\%20en%20tu%20oferta."
Para enviar un SMS
Ejecutar documento( "sms:" + #TELEFONO + "?body=" + #EMAIL, )
Ejemplo:
sms:66655667788?body=Hola, un saludo
CSS
El uso de CSS es igual de recomendable que en las versiones de escritorio para dar un aspecto más adecuado a nuestras aplicaciones móviles.
Formulario popup
Se aconseja que los controles de edición de datos se realicen desde formularios a pantalla completa o cuadro de diálogo. En dispositivos móviles no se deben usar formularios popup para la edición de datos desde controles.
Problemas conocidos
iOS
No está disponible la impresión de informes ni la presentación preliminar de los mismos.
No está disponible el control visor html. Por cuestiones de limitación de licencia no es posible hacer uso del navegador propio de Velneo.
El teclado nos ofrece de forma automática las opciones para copiar, cortar y pegar textos con el portapapeles, pero desde un control de edición estas opciones no son funcionales.
En una rejilla si tenemos visible la multiselección de las filas, es posible que se vean algunos cuadrados negros en lugar de la imagen de selección o el cuadro para seleccionar.
Última actualización